Load Balancing (Yük Dengeleme)
Yük dengeleme, gelen ağ trafiğini bir sunucu grubu veya sunucu havuzu olarak adlandırılan sunucular arasında paylaştırma işlemidir.
Load Balancing (Yük Dengeleme)
Yük dengeleme, gelen ağ trafiğini bir sunucu grubu veya sunucu havuzu olarak adlandırılan sunucular arasında paylaştırma işlemidir. Paylaştırma işlemi eşit olabileceği gibi belli bir kurala göre gerçekleştirilebilir. Yük dengeleme işlemi ile web uygulaması, web sitesi, veri tabanı vb. hizmetlerin performans ve güvenirliliği arttırılır. Hem uygulama, hemde veritabanı sunucuları arası dengeleme işlemini gerçekleştiren sistemler “load balancer” olarak adlandırılır. Load balancer’lar ile HTTP, HTTPS, TCP ve UDP olmak üzere 4 temel trafik türü için dengeleme kuralları oluşturulabilmektedir.
Yük dengeleyici, sunucuya gelen istemci isteklerini hız ve kapasite bakımından en iyi performansı sağlayacak şekilde sunuculara yönlendirip trafiğin ana sunucuda yoğunlaşmasını engelleyecek şekilde müdahale eden bir trafik polisi gibi düşünülebilir. Bir sunucunun kapanması durumunda, yük dengeleyici trafiği çevrimiçi sunuculara yönlendirir. Sunucu grubuna yeni bir sunucu eklenmesi durumunda, yük dengeleyici otomatik olarak yeni sunucuya istek gönderir. Bu sistemde çalışan bir yük dengeleyicinin görevleri aşağıdaki gibidir: – İstemci isteklerini veya ağ trafiğini birden fazla sunucuya verimli bir şekilde dağıtmak – Sadece aktif olan sunuculara istek göndererek güvenlik ve verimliliğin arttırılması – Sunucu ekleme ve çıkarma esnekliği sunmak
Modern mimarilerinde artan trafiği karşılamak için mevcut kaynakları (CPU, memory) artırmak yerine yeni sunucu eklenmesi tercih edilmektedir. Mevcut kaynakları artırmak scale-up, yeni sunucular eklemekse scale-out olarak bilinir. Trafik sunucuların önüne konan bir yük dağıtıcı ile karşılanarak eşit oranda (veya belirli kurallara göre) asıl işi yapacak olan sunuculara dağıtılır.
Yük dengeleyiciler (LB — Load Balancer), yükü dağıttıkları sistemlerin sağlıklı olup olmadığını belirli aralıklarla kontrol ederek sağlıklı çalışmayan sunuculara trafiği yönlendirmekten imtina edebilirler. Bu sayede, yük dengeleyiciler sistemlerimizin ölçeklenmesini sağladıkları gibi yüksek erişilebilirliğini
(HA — High Availability) sağlamak için de kullanılırlar. Problemli sunucuya yeni istek gönderilmez ve kullanıcıların problemden etkilenmemesi sağlanır.Ek olarak, yük dengeleyiciler sayesinde uygulama güncellemeleri sistemde kesintiye sebep olmadan yapılabilir. HA durumuna benzer şekilde, öncelikle güncellenecek sunucuya LB’nin trafik yönlendirilmemesi sağlanır. Uygulama, sunucu üzerinde güncellendikten sonra LB tekrar sunucuya trafiği yönlendirmeye başlar. Bu süreç bütün sunucular için tekrarlandığında uygulamanın versiyonu servis kesintisine neden olmadan yükseltilmiş olur.