Projeniz için kurduğunuz alt yapı, sisteminiz kullanılmaya başlandığında kaldıracak mı? Sunucular çökecek mi veya site yavaşlayacak mı? Sitelerim çok yavaş ne yapabilirim? Uygulamalarım çok yavaş, nasıl optimize edebilirim?
Tek sunucuda ben işi bitiririm diyenlerdenseniz yanılıyorsunuz. Birden fazla makine ile çalışmak hem maliyetler hem de kaynakların doğru ve düzgün kullanılması açısından oldukça önem kazanıyor. Ne demek istiyorum? 1 adet dedicated makineye aylık 500 ila 5.000 TL arası bir ücret ödeyip tüm sistemi içine atıp üzerinden çalıştırmaktansa, PaaS, CaaS, IaaS gibi servisleri kullanıp, dilediğiniz kaynaklara sahip makine grupları oluşturarak local ağ üzerinden bu makineleri kullanmak ve yazılımınızı buna göre geliştirmek daha az maliyetli olacaktır. 1 dakika, sadece maliyet mi?
PaaS gibi servisleri kullanmanın size faydaları şunlar olacaktır:
- Pay As You Go modeli ile kullandığın kadar öde,
- Dikey veya yatay makine genişleme imkanı,
- Anlık AUTO mod ile dikey genişleme,
- Dilediğiniz kadar CPU, RAM, Disk tanımlayabilme,
- Kalıcı lisans ücretleri ödememe,
- Load Balancing ile yük dağıtım imkanı (HAProxy, Nginx, Varnish, Apache Balancer seçenekleri),
- Ayrı storage diskleri oluşturabilme,
- Birçok hazır uygulamaları tek tık ile kullanabilme,
- PHP, Java, Ruby, Node.js, Python, Docker, .NET gibi alt yapılar,
- Yazılım dillerinde veya alt yapılarda versiyon seçebilme,
- Apache, Litespeed, Nginx web sunucuları oluşturabilme,
- Memcache vb cache sunucuları oluşturabilme
- Dev-Prod ortamlarını rahatlıkla oluşturabilme,
- SVN, Git ile Deployment yapabilme vb bir çok esnek ortamını hazır halde sizlere sunuyor.
Tüm bu saydıklarımı özetleyen bir videoyu izleyebilirsiniz.
Kimler PaaS Servislerini Kullanmalı?
Büyük ölçekli tüm sistemler bu tarz alt yapıları kullanmaktadır. Kimileri bu tarz hazır servisleri tercih ediyor kimileri ise bu alt yapıları kendileri kurup oluşturuyorlar. Kendiniz de bu tarz alt yapıları çeşitli farklı sunucular alarak da kurabilirsiniz. Ayrıca çok güçlü tek makine üzerinden sanallaştırma çözümleri ile de farklı makineler oluşturup ağ kurarak da yapabilirsiniz. Bu konuda destek almak isterseniz iletişime geçebilirsiniz.
Nasıl Bir Alt Yapı Kurabilirsiniz?
Yatay ve dikey genişleyebilen sunucu mimarisi mi? Hemen bununla ilgili bir örnek oluşturabiliriz. Projenizin yoğun SQL kullanımı yaptığını, verileri çok sık listelediğini, ziyaretçi sayısının yüksek olduğunu ön görüyoruz diyelim. Burada yükü dağıtarak servislerin takılmadan ve beklemeden çalışmasını sağlamak ana amacımız. Bu bir e-ticaret sitesi olabilir, yoğun kullanılan bir CRM olabilir veya yüksek ziyaretçisi olan websiteler olabilir. Kafanızda nasıl yoğun bir kullanım olacağını ve tek sunucu ile bunların çözülemeyeceğini hayal ettiyseniz hemen Jelastic ile bu yapıyı nasıl kurabileceğinizden bahsedelim.
Öncelikle http isteklerini arkadaki web sunucularına dağıtmak için öne Load Balancer kurmalısınız. Bu Varnish ya da HAProxy olabilir. Benim tercihim HAProxy üzerine. Ayarları yapmak oldukça kolay. Ayrıca bir sorun yaşadığınızda internette daha fazla kaynak bulabiliyorsunuz.
Size hızlıca Cluster yapısı şeması hazırladım. Bu örneklerdeki makinelerin her biri yatay ve dikey olarak N sayıda arttırılabilir. Yük zamanlarında makineleri çoğaltabilir, yük olmadığında kapatabilirsiniz.
Dilerseniz bu yapının bire bir kopyasını DEV ortamı için de oluşturabilirsiniz. Ya da daha yalın, sade, kısmen PROD ortamına bağlı olacak şekilde DEV ortamında çalışarak GIT & SVN ile PROD ortamına Auto Deploy veya Manuel Deploy ayarlayabilirsiniz.
Tüm bunlar projenizde neyi hedeflediğinize ve verilerin ne kadar büyük, ne kadar sıklıkla kullanılacağına ve ziyaretçi sayınıza bağlı olarak değişkenlik gösterir.
Bu tarz yapıların kurulması, sağlıklı ve güvenli çalışma ortamların ayarlanması için iletişime geçin.