Türkçe karşılığında ‘yük dengeleyici’ olarak bilinen web terimi olan load balancer, ziyaretçi trafiğinin fazla olduğu site veya uygulamaları için kullanılır. Bu işlev sayesinde artan ziyaret sayısı sonucunda sitenin yavaşlamasının, açılırken kesinti yaşamasını ve kötü bir izlenim oluşmasını engellenmiş olur. Bu kullanımla gelen fazla site trafiği yükü, sunucular arasında paylaştırılır, bu da “load balancer nedir” sorusunun cevabıdır. Eğer bu teknoloji kullanılmazsa işlemler tek bir sunucu üzerinde işler, bu da artan trafik sonucunda erişilmeyen siteye neden olabilir.
Load Balancing Nedir?
Web sayfaları işlemlerini temelde sunucu aracılığıyla gerçekleştirebilir. Barındırdığı medya ve diğer tüm işlemler bunlar sayesinde işleme alınır. Eğer ki siteye fazla bir ziyaret gerçekleştirilirse kapasite bunu karşılamayabilir. Sonucunda sitenin açılmaması, resimlerin yüklenmemesi, geç açılma vb. sorunlar yaşanabilir. Bunun önüne geçebilmek adına load balancing teknolojisinden faydalanılır. Tam olarak load balancing nedir ve hangi işlemlerle bütününü ifade eder? Burada sitenin sunucu temelinde çalışma prensiplerine hakim olmak gerekir. Eğer siteye fazla bir ziyaret gerçekleşirse ve hepsi tek bir sunucuda toplanmışsa bu işlemleri kalitesiz hale getirir. Dağıtma ve yük dengeleme işlemi gösteren load balancing ile ziyaretçiler, sunucu grubu içerisinde belirli kriterlere göre dağıtılır. İşlemi hem veritabanı hem de uygulama arasında yapılan yük dengeleme sistemi olarak da nitelendirebiliriz.
Load Balancing (Yük Dengeleme) Nasıl Çalışır?
Sunucular arasında dengeleme işleminin yapılabilmesi için iki farklı yöntem bahsedilebilir. İlk aşama daha çok bu işlemin uygunluğunun kontrolü üstünedir. İkinci aşamaya geçiş halinde ise sunucu tercihleri yapılır. Bu işlemi ters proxy işlemi olarak da anımsayabilirsiniz.
İlk aşamada gerçekleştirilen uygunluk kontrolleri sırasında eğer ki sunucu başarısız sonuç çıkarsa ya da işleme cevap vermezse, direkt olarak havuzdan kaldırılmaktadır. Uygun kontrolü için hazır hale geldiğinde, işlemlere cevap verir hale gelene kadar da bu sunucuya herhangi bir trafik yönlendirilmez.
Load Balancing ile Hangi Trafik Türleri Dengelenebilir?
Bu işlevin kullanılacağı 4 farklı trafik türünden bahsedilebilir.
- HTTP: Standart http dengelemesine göre gelen istekleri http özelliklerine göre yönlendirmektedir.
- HTTPS: Burada http işleminden farklı olarak şifreleme süreci vardır. Şifreleme sürecinde de ilk olarak SSL ile backend sunumu yapılabilir. İkinci aşamada da şifreleme yükleri load balancer’a yüklenir.
- TCP: Eğer sunucuda http, https uygulamaları yoksa TCP ile yük veya dağıtım işlemi dengelenebilmektedir.
- UDP: DNS veya UDP temel internet protokollerine yönelik de bu işlem kullanılır hale getirildi.
Load Balancing Algoritmaları
Bu işlemlerde kullanılan load balancer algoritmaları siteye gelen trafiğin hangi sunucuya yönlendirileceğini belirler. Farklı seçenekleri olsa da en fazla tercih edilen üç algoritmaya değinebiliriz;
- Source Algoritması
Yük dengeleme sistemi IP adresinin, hangi sunucudan istek alacağını belirlemeye yönelik algoritmadır. - Round Robin Algoritması
Bu algoritmada sunucular belirli bir sıralamaya göre işleme alınır. Site trafikleri sıralı olarak bu sunuculara yönlendirilir. - Least Connection
Eğer sitede işlemler daha uzun sürede gerçekleştiriliyorsa, bu algoritmayla yük dengeleyici işlem en az bağlantıyı almış olan sunucuyu tercih eder.
Neden Load Balancing Kullanılmalı?
Eğer fazla trafik alan bir site ise bu işlem sayesinde erişilebilirliğiniz sekteye uğramaz. Bu en başlı neden olmakla birlikte
- Sunucular her zaman hazır halde işlem yapabilirler.
- Belirli dönemlerde sitede ziyaretçi trafiği artıyorsa bu işlemle aksaklıkların yaşanması önlenir.
- Sitenizin kullanıcı deneyimi artar. Eğer tersi bir durum olsaydı sitenizin otoriterliği azalabilir hem sıralamada hem de pazar payında düşüşe geçebilirsiniz.
- Tek bir arıza noktası (single point of failure) alma durumu da ortadan kalkmış olur.
Load Balancer’ın Avantajları Nelerdir?
Yük dengeleyici sisteminin kullanılmasının sistemde sistem yöneticilerine de kullanıcılara da avantajı çok fazladır.
- Güvenilir bir sistemdir.
- Load balancer kurulumu da kolay ve basittir.
- Site performansını artırır.
- Site trafiğini önbelleğe alır,
- Site trafiğinin sıkıştırarak, ziyaretçilerin sitedeki deneyimlerini zenginleştirir.
- SSL aktarımını da gerçekleştirir.
- Güvenlik sistemleri gelişmiştir. DDos gibi çeşitli saldırılara karşı koruma sağlar, işlemlerde kullanıcı erişimi özelliğiyle kullanıcı adı ve şifre talebinde bulunur.
- PCI uyumluluğu da basitleştirilmiştir.
- Başarısız sunuculara kesintisiz hizmetini sürdürür.
- Meşgul olan sunucu varsa yük dengeleyici işlemi daha müsait olan sunucuya yönlendirir.
- Ek sunucular kolayca oluşturulabilir.
- Site bulut sisteminde ise otomatik ölçeklendirme uygulanır.
- Ek sunucu hizmeti sayesinde ekstra maliyetler de olmamış olur.
Hangi Durumlarda Load Balancing Kullanmak Gereklidir?
Yazımızın en başında ele aldığımız “load balancer ne işe yarar” sorusunda trafiği yüksek siteleri örnek vermiştik. Veya belirli bir dönemde sitelerde yaşanan ziyaretçi yoğunluğu bulunabilir. Eğer sitenin bağlı olduğu tek bir sunucu varsa bu ziyaret yoğunluğu siteyi kullanılamaz, açılamaz veya yavaş açılır hale getirebilir. Yük dengeleme işlemi kullanılarak bu önlenir. Ancak burada da farklı yük dengeleyici türlerinden bahsedilebilir. Eğer ki hızlı bir çözüm gerekirse network load balancing tercih edilebilir. Peki network load balancer nedir, diğerlerinden farkı nedir dersek de bu L4 sistemi temel alınarak ağ trafiğinin nereye gönderileceği belirlenir. En hızlı yük dengeleyicilerden biridir.