Kullandığımız sistemlerde ne gibi arızalar, problemler, yavaşlıklar ve beklemediğimiz anda renkli renkli ( genellikle beyaz olur ) ekranlar yaşamamızın sebepleri ve çözümlerine üstün körü şu linkte olan yazımda değinmiştim. Şimdi biraz daha profesyonelmiş gibi düşünerekten adım atalım.
Standart yapılarda, sistemlerde genellikle Web Engine / Proxy Engine / MYSQL Engine / Firewall vb. tüm bize lazım olan araçları tek bir sunucuya yerleştirip, sonra kırbaçlaya kırbaçlaya çalıştırmaya çalışırız. Çalışır. Hemde teknoloji ötesi bir hızla. Fakat ne zaman ? Tabi ki : Geliştirme aşamasında, test, yayın öncesi son reklamlar. Bu giriş, gelişme ve sonuç kısmında genellikle gerçekten hızlı çalışırlar. Doğru !
“Canlıya alma” / “Run ettik” gibi tabirler kullanırız. İşte tam o noktada. Ter bir taraftan akıp yerini bulurken bir bakmışsınız CPU %98-99 ( 100 olunca görüntü gelmiyor zaten 🙂 ) . RAM sistemci ne kadar verdiyse. vs. vs. Çakılır kalır elimizde sistem. Şimdi tüm bir işi zavallı bir sunucuya / sisteme yaptırmak yerine aşağıdaki gibi bir yöntemle denemeye ne dersiniz ? Bu yönteme yük dengeleme, iş dağıtımı vs. derler. “Bana göre ise herkes kendi işini yapsın kardeşim” modu.
Nasıl mı ? Çok basit : PHP-MYSQL ile çalışan bir Web sitesi senaryosuna göre düşünecek olursak;
- MYSQL için çalışan ayrı bir veya daha fazla sunucu.
- PHP için ayrı çalışan bir veya daha fazla çalışan sunucu.
- Firewall için ayrı çalışan bir sunucu veyahut işe yarar bir firewall veya gerçekten profesyonel bir NETWORK.
Yukarıdaki şema anlatmak istediğimi açıklığa kavuşturur gibi. Şemaya bakacak olursak 1 adet Database Server ve 2 Adet Web Server mevcut. Dışarıdan gelenleri karşılayan ise Firewall.
Burada durumu şöyle yapabiliriz. Kafada canlandırmak için senaryo olarak ;
Bir Ofis malzemeleri satan firma Hem internet üzerinden E-Ticaret hemde Perakende sattığını düşünelim. Bu durumda canlı bir stok takip ve E-Ticaret olduğunu düşünürsek ve tek bir mağaza olduğunu varsayarsak bu durumda bize iki adet sistem gerekiyor;
1-Tükkanda kullanılan sistem.
2-E-Ticaret için kullanılan sistem.
Çok yüksek ziyaretçi ve işlemleri mevcut ise tek bir database / firewall vs yetmeyecektir, unutmayın.!
1 ve 2. seçenekler için yazılmış 2 ayrı sistem olduğunu düşündüğümüzde ise, ve evet. Şema yukarıdaki gibi olacaktır. Hele birde platform farklılıkları oluştuğunda dadından yenmez bir tad alır. Bu yüzdendir ki sistemin yükünü paylaştırmak adına 2 farklı web server , database ve firewall ile yola koyuluyoruz. Yük paylaştırma / dengeleme sonuçları doğru analiz edilip, doğru bir şekilde çözüme ulaştırılır ise mutlaka işe yarayacaktır. Böylece database server ın CPU su Web servera onun ki buna tokat atıyor diye olaylar yaşanmayacak. 🙂
Hal böyle olunca biraz cep / muhasebe yakacaktır fakat bundan sonrası için anlatacaklarım için bir sonraki yazıda devam edeceğim.
Diyeceksiniz ki ne gerek var, Çok pahalı, İhtiyaç yok, Gereksiz, Cache ile daha hızlı çalışır. Bu soruları zamanında sorduğum için şimdi cevapları az çok biliyorum. Sizinle paylaşıncaya kadar görüşmek üzere.