Load Balancer Nedir (Yük Dengeleyici) ve Nasıl Çalışır?
Birden fazla sunucusu olan büyük şirketlerde trafik yükünün sadece bir sunucuda olması ve diğer sunucularda fazla aktivite olmaması mümkündür. Böyle bir durumda çözüm bir load balancer veya yük dengeleyici kullanmaktır. Yük dengelemenin ne olduğunu kendinize soruyor olmalısınız? Acele etmeyin, Load balancing veya Yük dengelemenin tanımına ulaşmak için bizimle kalın.
Load Balancing (Yük Dengeleme) Nedir?
Yukarıda kısaca bahsedildiği üzere Load balancing teknolojisi, günümüz sanal ortamında bilgi alışverişinin temel faktörlerinden biridir. Ne yazık ki, bu teknoloji şu anda çoğu insan için yabancı ve çoğu durumda ağ mühendisliğinde bir ilke olarak kabul edilmiyor.
Load balancing veya Yük dengeleme ifadesinde yük, kaynaklar üzerindeki yük veya baskı miktarı anlamına gelir ve denge, bu yükün tüketiminin dengelenmesi anlamına gelir.
Bu yazımızda Load balancing tekniğini daha yakından incelemeyi ve bu teknolojiden daha fazla yararlanmanızı sağlamayı amaçlıyoruz.
Load Balancer Veya Yük Dengeleyici Nasıl Çalışır?
Bu soruyu cevaplamak istersek, Öncelikle Load balancing tarihçesinden bahsetmeliyiz.
Load balancing ilk olarak BT dünyasındaki rolüne ağ tabanlı trafik yükü dengeleme donanımı şeklinde başladı ve şimdi Uygulama Teslim Denetleyicisi (ADC) yöntemlerinin kritik bileşenlerinden biri.
Ağlarda yük dengelemenin ilk kullanımından sonra, daha gelişmiş cihazlar olarak ikinci önemli kullanımları, aslında bugünün ADC yöntemlerinin babası rolünü oynayan ağ yük dengeleyiciydi. Bu cihazlar bağımsız olarak ve uygulama sunucusu dışında çalışabildikleri için Yalın ağ tekniklerini kullanarak yük paylaşımı görevini doğru bir şekilde yerine getirebiliyorlardı.
Bu cihazlar başlangıçta istenen sunucuların sanal adresini dış dünyaya gösteriyordu ve bunu yaparak kullanıcılar sunucuya bağlanmak için bir istek gönderdiklerinde akıllı ve otomatik olarak en iyi ve en az trafik yolunu kullanabiliyorlardı.
Sınırlı ölçeklenebilirlik, yavaş yükleme hızı ve güvenlik endişeleri çevrimiçi başarınızı engelleyebilir. Web sitenizin performansı ve kullanıcı deneyimi, gelişiminizi ciddi şekilde sınırlayabilir.
Güvenilirlik ve hızlı performans dünyasını kucaklayın. Sağlam altyapımız, web sitenizin artan trafiği kaldırabilmesini ve artan ihtiyaçlarınıza uyum sağlayabilmesini sağlar. Artık depolama sınırlarını aşma veya içeriğinizin kalitesinden ödün verme konusunda endişelenmenize gerek yok. O halde hemen şimdi Cloud hosting açılış sayfasına girin ve Mavihost’un eşsiz planlarından birini seçin ve seçiminizin keyfini çıkarın.
Load Balancing veya Yük Dengelemenin Önemi Nedir?
Trafik yükü dengelemenin temel amacı, herhangi bir sunucunun aşırı yüklenmesini ve muhtemelen çökmesini önlemektir. Başka bir deyişle, yük dengeleme hizmet kullanılabilirliğini artırır ve çökmelerin önlenmesine yardımcı olur.
Load Balancer Kullanmanın Avantajları
Birden çok sunucuyu yöneten kuruluşlar, ağ trafiğinin yük dengelemesinden büyük fayda sağlayabilir. Aşağıdakiler, load balancers kullanmanın ana avantajlarıdır.
Geliştirilmiş Ölçeklenebilirlik
Load balancer veya Yük dengeleyiciler, hizmetleri etkilemeden ağ gereksinimlerine bağlı olarak sunucu altyapısını istek üzerine ölçeklendirebilir. Örneğin, bir web sitesi çok sayıda ziyaretçi çekmeye başlarsa, trafikte ani bir artışa neden olabilir. Web sunucusu bu ani trafik akışını yönetemezse, web sitesi çökebilir. Yük dengeleme, ekstra trafiği birden çok sunucuya yayarak bunun olmasını engelleyebilir.
Verimliliği Arttırmak
Her sunucudaki trafik yükünün azalması nedeniyle, ağ trafiği daha iyi akar ve yanıt sürelerini iyileştirir. Bu sonuçta site ziyaretçileri için daha iyi bir deneyim sağlayacaktır.
Azaltılmış Duruş Süresi (Downtime)
Küresel varlığı ve farklı saat dilimlerinde birden çok konumu olan şirketler, özellikle sunucu bakımı söz konusu olduğunda, yük dengelemeden yararlanabilir. Örneğin, bir şirket bakım gerektiren sunucuyu kapatabilir ve trafiği hizmet kesintilerine veya kesintilere neden olmadan mevcut diğer yük dengeleyicilere yönlendirebilir.
Tahmine Dayalı Analiz
Yük dengeleme, arızaların erken tespitini sağlayabilir ve başka kaynakları etkilemeden bunların yönetilmesine yardımcı olabilir. Örneğin, yazılım tabanlı load balancers, trafik darboğazlarını gerçekleşmeden önce tahmin edebilir.
Verimli Arıza Yönetimi
Bir arıza durumunda, yük dengeleyiciler (load balancers) trafiği otomatik olarak işlevsel kaynaklara ve yedekleme seçeneklerine yönlendirebilir. Örneğin, posta sunucusu gibi bir ağ kaynağında bir arıza algılanırsa, load balancer, hizmet kesintisini önlemek için kaynakları etkilenmeyen diğer alanlara yeniden dağıtabilir.
Geliştirilmiş Güvenlik
Load balancer, ek değişiklik veya kaynak gerektirmeden ekstra bir güvenlik katmanı ekler. Daha fazla bilgi işlem buluta taşındıkça yük dengeleyiciler, boşaltma işlevi gibi güvenlik özellikleriyle donatılıyor. Bu, saldırı trafiğini kurumsal sunucudan bir genel bulut sağlayıcısına aktararak bir kuruluşu dağıtılmış hizmet reddi saldırılarına karşı korur.
Server Load Balancing Uygulamanın Çeşitli Yöntemleri
Server Load Balancing, ağda aşağıda örnekleri verilen farklı şekillerde uygulanabilir:
DNS Based Load Balancing
En eski yöntemlerden biri, Round-Robin olarak yapılan, birkaç sunucu için bir ad (A Record) ve birkaç IP’nin kullanıldığı sunucular üzerindeki yükü dağıtmak ve dengelemektir.
IP Anycast
Yük dengeleme modu oluşturmanın basit yöntemlerinden biri, WAN ağlarındaki sunucuların fiziksel konumudur. Bu yöntemde yönlendirme teknikleri ile kullanıcı istekleri coğrafi konum olarak en yakın sunucuya gönderilir. Bu yöntemde aynı IP farklı noktalardan routerlar tarafından duyurulur ve bunun sonucunda kullanıcıların istekleri kendisine metrik olarak daha yakın olan bir adrese gönderilir.
Server Based Load Balancing
Yük dengeleme, özel bir yazılım kümesinde kurulan ve farklı algoritmalarla yük dengeleme yapan sunucuların kendileri tarafından yapılır. Microsoft NLB ve Microsoft CLB bu modun örnekleridir.
Network Based Load Balancing
Ağ özelliklerine göre sunucular üzerinde yük dengeleme ve dağıtım da yapılabilir. Bu yöntemde, diğer yöntemlere göre daha verimli olan Yük Dengeleme modları ve algoritmaları oluşturmak için bir donanım kullanılır. Örneğin, ACE veya F5 donanımını kullanabilirsiniz.
Layer 4 Load Balancing
IP adresi ve TCP bağlantı noktaları gibi Aktarım ve Ağ katmanlarından alınan verilere dayalı trafik yönlendirme.
Layer 7 Load Balancing
Bu tür Yük Dengeleme, dördüncü katmandan çok daha gelişmiş ve güçlüdür ve aynı zamanda yedinci katmanın protokollerine ve bu protokollerin özelliklerine dayalı olarak istekleri yönlendirme kararları veren İçerik Değiştirme olarak da adlandırılır, örneğin, veri paylaşımı ve sunuculardaki istekler, HTTP Başlığı, URL adresi ve SSL Oturum Kimliği ve hatta HTML ile ilgili veriler aracılığıyla yapılır.
Global Server Load Balancing (GSLB)
Dördüncü katman ile yedinci katmanın yeteneklerinin birleşiminden oluşan en gelişmiş yük dengeleme türüdür ve Load Balancer’a farklı coğrafi bölgelerde bulunan sunucuların bile yerleştirilebilmesine olanak sağlar ve talepler kendilerine iletilebilir.
Load Balancer Türleri Nelerdir?
Load balancing, yüksek düzeyde kullanılabilir altyapıların önemli bir bileşenidir. Bir ağın ihtiyaçlarına bağlı olarak, farklı depolama kapasiteleri, işlevleri ve karmaşıklıkları ile çeşitli tipte load balancers devreye alınabilir.
Bir load balancer, fiziksel bir araç, bir yazılım örneği veya her ikisinin birleşimi olabilir. İki tür load balancer vardır.
Hardware Load Balancer
Hardware load balancer, çok büyük miktarda uygulama trafiğini işlemek için tasarlanmış, özel ve tescilli yerleşik yazılıma sahip bir donanım aygıtıdır. Bu yük dengeleyiciler, yerleşik bir sanallaştırma yeteneğine sahiptir ve tek bir cihazda birden çok sanal load balancer örneğinin kullanılmasını sağlar.
Geleneksel olarak satıcılar, özel donanıma özel yazılım yüklediler ve bunu kullanıcılara bağımsız cihazlar olarak sattılar. Büyüyen ağlar, bir kuruluşun ek veya daha büyük cihazlar satın almasını gerektirir.
Software Load Balancer
Software load balancer, büyük olasılıkla bir uygulama teslim denetleyicisi (ADC) işlevi olarak sanal makinelerde (VM’ler) veya beyaz kutu sunucularında çalışır. ADC’ler tipik olarak önbelleğe alma, sıkıştırma ve trafik şekillendirme gibi ek özellikler sunar. Bulut ortamlarında popüler olan sanal load balancer, yüksek derecede esneklik sunabilir. Örneğin, kullanıcıların trafik artışlarını veya azalan ağ etkinliğini yansıtmak için ölçeği otomatik olarak artırmasına veya azaltmasına olanak tanır.
Bulut Tabanlı Load Balancing
Bulut yük dengeleme, bulut bilgi işlem ortamlarını dengelemek için temel altyapısı olarak bulutu kullanır.
Aşağıda, bulut tabanlı yük dengeleme modellerinin örnekleri verilmiştir.
Network Load Balancing
Bu, mevcut en hızlı yük dengeleme seçeneğidir. OSI modelinin Dördüncü Katmanında çalışır ve ağ trafiğini taşımak için ağ katmanı bilgilerini kullanır.
HTTP Güvenli Load Balancing
Bu, ağ yöneticilerinin trafiği HTTP adresinden gelen bilgilere dayalı olarak dağıtmasını sağlar. L-7’yi temel alır ve en esnek yük dengeleme seçeneklerinden biridir.Devamını oku: “HTTP nedir”
Dahili Yük Load Balancing
Bu, ağ yük dengelemeye benzer, ancak dahili altyapı genelinde trafik dağıtımını da dengeleyebilir.
Load Balancing (Yük Dengeleme) Algoritmaları
Load-balancing algoritmaları, hangi sunucuların belirli gelen istemci isteklerini alacağını belirler. İki ana yük dengeleme algoritması türü vardır: statik ve dinamik.
Statik Load Balancing Algoritmaları
- IP karmasına dayalı yaklaşım, belirli bir müşterinin tercih ettiği sunucuyu, HTTP başlıkları veya IP adresi bilgileri gibi atanmış anahtarlara dayalı olarak hesaplar. Bu yöntem, e-ticaretteki ödeme sepetleri gibi kullanıcıya özel depolanmış durum bilgilerine dayanan uygulamalara fayda sağlayan oturum sürekliliğini veya yapışkanlığı destekler.
- Round-robin yöntemi, mevcut tüm sunucuları sıralı bir sırayla gözden geçirir ve trafiği, alan adı sistemini (DNS) kullanarak dönüşümlü olarak bir sunucular listesine dağıtır. Yetkili bir ad sunucusu, farklı “A” kayıtlarının bir listesini taşır ve her DNS sorgusuna yanıt olarak bir tane sağlar.
- Ağırlıklı Round-robin yaklaşımı, yöneticilerin her sunucuya farklı ağırlıklar atamasına olanak tanır. Bu sayede daha fazla trafiği kaldırabilen sunucular ağırlıklarına göre biraz daha fazla trafik alırlar. Ağırlıklandırma, DNS kayıtları içinde yapılandırılır.
Dinamik Load Balancing Algoritmaları
- En az bağlantı yöntemi, en az devam eden işleme sahip sunucuları tercih eder ve trafiği en az açık bağlantıya sahip sunuculara kontrol eder ve gönderir. Bu algoritma, tüm bağlantıların neredeyse eşit işlem gücü gerektirdiğini varsayar.
- Ağırlıklı en az bağlantı yöntemi, bazı sunucuların diğerlerine kıyasla daha fazla trafiği işleyebileceğini varsayar. Böylece yöneticilerin her sunucuya farklı ağırlıklar atamasını sağlar.
- Ağırlıklı yanıt süresi yaklaşımı, trafik göndermek için en iyi hedefi bulmak üzere her sunucunun yanıt süresi ortalamalarını kullanır ve bunları her sunucunun açık bağlantı sayısıyla birleştirir. Bu algoritma, trafiği en hızlı yanıt süresine sahip sunuculara gönderdiği için daha hızlı hizmet sağlar.
- Kaynak tabanlı algoritma, yükü o anda her sunucudaki kaynakların kullanılabilirliğine göre dağıtır. Trafik dağıtımından önce, merkezi işlem biriminin ve belleğin kullanılabilirliğini ölçmek için her sunucuda çalışan ve aracı adı verilen özel bir yazılımı sorgular.
Hardware vs. Software Load Balancer
Hem hardware (donanım) hem de software (yazılım) yük dengeleyicilerin belirli kullanım durumları vardır. Donanım load balancer, raf ve yığın aygıtları gerektirirken, yazılım load balancer standart x86 sunucularına, VM’lere veya bulut örneklerine kurulur. Donanım yük dengeleyicileri, yoğun trafik yüklerini kaldıracak şekilde boyutlandırılmıştır. Yazılım ürünleri genellikle bant genişliği tüketimine göre lisanslanır.
Aşağıda, hardware ve software tabanlı yük dengeleyicilerin bazı artıları ve eksileri yer almaktadır.
Hardware Load Balancer
Artıları
- Yazılım özel işlemciler üzerinde çalıştırıldığı için hızlı verim sağlarlar.
- Bu load balancers, herhangi bir üçüncü şahıs tarafından değil, yalnızca kuruluş tarafından yönetildiğinden daha iyi güvenlik sunar.
- Satın alma sırasında sabit bir maliyeti var.
Eksileri
- Hardware load balancer, yapılandırmak ve programlamak için ekstra personel ve uzmanlık gerektirir.
- Birkaç bağlantıda belirlenen bir sınıra ulaşıldığında ölçeklenemezler. Bu olduğunda, bağlantılar ya reddedilir, kesilir ya da bozulur ve tek seçenek ek makineler satın alıp kurmaktır.
- Satın alma ve bakım maliyetleri daha yüksek olduğundan daha pahalıdırlar. Bir donanım yük dengeleyiciye sahip olmak, onu yönetmek için danışmanların işe alınmasını gerektirebilir.
Software Load Balancer
Artıları
- Bir ağın değişen ihtiyaçlarına ve gereksinimlerine uyum sağlama esnekliği sunarlar.
- Daha fazla yazılım örneği ekleyerek, başlangıçtaki kapasitenin ötesine ölçeklenebilirler.
- Elastik bir sunucu ağı üzerinde çalışabilen tesis dışı seçenekler sağlayan bulut tabanlı yük dengeleme sunarlar. Bulut bilgi işlem, şirket içi konumlarla hibrit gibi çeşitli kombinasyonlarda seçenekler de sunar. Örneğin, bir şirketin ana yük dengeleyici şirket içinde olabilir ve yedek yük dengeleyici bulutta olabilir.
Eksileri
- Kapasitenin üzerinde ölçeklendirme yaparken, yazılım yük dengeleyicileri bir ilk gecikmeye neden olabilir. Bu genellikle yük dengeleyici yazılımı yapılandırılırken olur.
- Sabit bir ön maliyetle gelmedikleri için yazılım yük dengeleyiciler, yükseltmeler için devam eden maliyetler ekleyebilir.
Son Söz
Load Balancer kullanmanın önemi, gelen ağ ve uygulama trafiğinin birden çok sunucuya dağıtılmasıyla ilgili sorunları gidermeye yöneliktir. Dakikada yüzlerce kullanıcı (veya istemci) isteğiyle, herhangi bir sunucunun her zaman yüksek kaliteli fotoğrafları, videoları, metinleri ve uygulama verilerini birçok kullanıcının alışık olduğu hızlarda göstermesi zordur.
Yük dengeleme teknikleri, uygulama ve ağ trafiğini sunucular arasında yönlendirir. Bu, herhangi bir sunucunun aşırı yüklenmesini önlemeye yardımcı olur, böylece uygulama ve ağ kullanılabilirliğini ve yanıt verme hızını optimize eder.
Umarız bu yazıda, Load Balancer (yük dengelemenin) ne olduğu hakkındaki sorunuzu tam olarak açıklayabilmişizdir. Ancak bu konuda bir sorunla karşılaşırsanız sorularınızı yorum kısmından bizimle paylaşın ki en kısa sürede cevaplayalım. Ayrıca Mavihost web hosting planlarına da göz atmanızı tavsiye ederim.
Sık Sorulan Sorular
En sık sorulan sorulardan bazılarının yanıtları.
Load Balancer Nedir ve Nasıl Çalışır?
Bir load balancer, sunucularınızın önünde oturan “trafik polisi” gibi hareket eder ve istemci isteklerini, hız ve kapasite kullanımını en üst düzeye çıkaracak ve hiçbir sunucunun performansını düşürebilecek şekilde fazla çalışmasını önleyecek şekilde bu istekleri yerine getirme yeteneğine sahip tüm sunucular arasında yönlendirir.
Neden Yük Dengeleyiciye (Load Balancer) İhtiyacımız Var?
Yük dengeleme, belirli bir kaynağın aşırı yüklenmesinden kaynaklanan arızaları önlemek için ağ trafiğini eşit şekilde dağıtmanıza olanak tanır. Bu strateji, uygulamaların, web sitelerinin, veritabanlarının ve diğer bilgi işlem kaynaklarının performansını ve kullanılabilirliğini artırır. Ayrıca, kullanıcı isteklerinin hızlı ve doğru bir şekilde işlenmesine yardımcı olur.
Load Balancer Bir Donanım mı Yoksa Yazılım mı?
Sunucular gibi, yük dengeleme araçları da fiziksel veya sanal olabilir. Fiziksel (donanım load balancer) ve sanal (yazılım load balancer) cihazlar, hem istemci isteklerini hem de sunucu kullanımını gerçek zamanlı olarak değerlendirir ve istekleri çeşitli algoritmalara dayalı olarak farklı sunuculara gönderir.