e
sv

Load Balancing (Yük Dengeleme) Nedir ve Nasıl Çalışır?

16 Ekim 2020 12:56
avatar

Deniz Pekdaş

  • e 0

    Mutlu

  • e 0

    Eğlenmiş

  • e 0

    Şaşırmış

  • e 0

    Kızgın

  • e 0

    Üzgün

load balancing illustration citrix adc

Yük Dengeleme, bir sunucu grubundaki birden çok sunucu arasında ağ veya uygulama trafiğinin kurallı ve verimli dağıtımı olarak tanımlanır. Her bir Yük Dengeleyici, client cihazları ile arka backend sunucuları arasında konumlanır ve gelen istekleri yerine getirebilecek herhangi bir sunucuya dağıtır.

Buraya kadar olan kısım tanımdı. Bundan sonrasında çeşitlerinden ve yöntemlerinden bahsedeceğim.

Yük Dengeleyici Nedir ve Nasıl Çalışır?

Bir Yük Dengeleyicide şunlar olabilir;
  • Sanallaştırılmış bir makine (Virtual Appliance) veya fiziksel bir cihaz olabilir,
  • Nerede host edildiklerine bakılmaksızın, three-tier web ve mikro hizmet tabanlı uygulamaların performansını ve güvenliğini daha kapsamlı bir şekilde iyileştirmek için tasarlanmış application delivery denetleyicilerine (ADC’ler) dahil edilmiştir.
  • Mevcut gereksinimler doğrultusunda trafiği dağıtmak için round robin, server response time ve en az bağlantı yöntemi dahil olmak üzere birçok olası yük dengeleme algoritmasından yararlanılabilir.

 

load balancing illustration citrix adc
 
İster donanımsal ister yazılımsal olsun veya herhangi bir algoritma kullanımına bakılmaksızın, bir yük dengeleyici, tek bir sunucunun aşırı çalışıp daha sonra erişilemez hale gelmemesini sağlamak için kaynak havuzundaki farklı web sunucularına trafiği dağıtır. Yük dengeleyiciler, sunucu yanıt süresini etkili bir şekilde azaltır ve verimi en üst düzeye çıkarır. Aslında tam olarak bir yük dengeleyicinin görevi budur. Tabii bunun farklı varyasyonları vardır.
 
Yük Dengeleyicileri bir trafik polisi gibi düşünebiliriz. Gelen talepleri anlık ve sistematik bir şekilde doğru konumlara yönlendirme görevini üstlenir. Bu sayede yüksek maliyetlere sebebiyet verebilecek tıkanıklıkları ve öngörülemeyen sorunların önlenmesini sağlar. Yalnızca karmaşık BT ortamlarında yönetici ve yönlendirici rolü üstlenmez; aynı zamanda gerekli performansı ve güvenliği de sağlar.
 
Yük Dengeleme, çok uygulamalı ve çok cihazlı iş akışlarında, gelen sayısız talebin yönetilebilmesi için en uygun metodolojidir. Günümüzün dijital çalışma ortamlarında çok sayıda farklı uygulamaya, dosyaya ve masaüstüne sorunsuz erişim sağlayan platformlarla birlikte yük dengeleme, çalışanlar için daha stabil ve güvenilir bir son kullanıcı deneyimini destekler.

Donanım vs. Yazılım Tabanlı Yük Dengeleyiciler

Yük Dengeleyicilerin hem donanımsal hem de yazılımsal olabildiğinden bahsetmiştim. Şimdi ikisi arasındaki farklara değinmek istiyorum.
 
Donanım Tabanlı Yük Dengeleyiciler Şu Şekilde Çalışır;
  • Bu cihazlar, çeşitli uygulama türlerinden gelen birden çok gigabit trafiği güvenli bir şekilde yönetebilen yüksek performanslı cihazlardır. Aynı donanım üzerinde çok sayıda sanal yük dengeleyici aşamalarını birleştiren yerleşik sanallaştırma yeteneklerine de sahiptir.
  • Diğer avantajlarının yanı sıra, çok kullanıcılı yapılarda tam anlamıyla bir izolasyon sağlar.

Yazılım Tabanlı Yük Dengeleyiciler Şu Şekilde Çalışır;

  • Aynı işlevselliğe sahiptir ve bir yük dengeleme donanımının yerine tercih edilebilir.
  • Bilindik hipervizörler üzerinde, containerlarda veya fiziksel sunucularda minimum ek yük ile Linux işlemi olarak çalışır ve ihtiyaç duyulan kullanım durumlarına ve teknik gereksinimlere bağlı olarak oldukça yapılandırılabilir sanal cihazlardır.
  • Donanım harcamalarını azaltırlar ve fiziksel alandan tasarruf sağlarlar.

Evet, yazılım tabanlı yük dengeleyiciler de en az donanımsal olanlar kadar iyidir lakin bu konuda deneyimlediğim birtakım durumlardan dolayı şunu söyleyebilirim ki karmaşık, trafiğin yoğun olduğu, çok kullanıcılı ve çok fazla uygulamanın kullanıldığı yapılarda sanal load balancerlar bir yere kadar iyi bir çözümdür. Hatta bazı firmalar dahi n kadar kullanıcı için uygundur ve destek veriyoruz. Fazlasını da dengeleyebilir lakin herhangi bir sorun yaşadığınızda destek veremeyiz gibi notlar düşer. Bu aşamada devreye network konusunda tecrübeli arkadaşların oluşturdukları topoloji giriyor. Yazılım 300 kullanıcıya kadar destek veriyordur, yapıda 1000 kullanıcı vardır, sanal load balancer kullanılmak isteniyordur, o zaman şema üzerindeki akış izlenerek karar verilebilir. Hayır olmaz deyip kesip atmak yanıltıcı olacaktır.

 
Yazının bu bölümüne kadar en yalın haliyle anlatmaya çalıştım, bundan sonrasında varyasyonlardan bahsedip, teknik birtakım konulara gireceğim.
 

 

tcp load balancer app servers

 

L4, L7 ve GSLB Yük Dengeleyiciler

 

Çalışanın dijital bir çalışma ortamındaki günlük deneyimi değişkenlikler gösterebilir. Verimliliği, hesap güvenlik önlemleri, kullandığı birçok uygulamanın değişen performansına kadar her şey bir response olarak algılanabilir. Örneğin, satış personelinin %70’inden fazlası, birden çok farklı uygulamadan gelen verileri işlerken response kaynaklı gecikmeler yaşayabilir. Bu durum genelde yetersiz yük dengelemesi sonucu daha da kötüleşebilen bir durumdur.
Diğer bir deyişle, dijital çalışma ortamları büyük ölçüde uygulamaya dayalıdır. Özellikle hizmet SaaS uygulamalarına yönelik talebin arttığı şu günlerde, bu uygulamaları son kullanıcılara güvenilir ve hızlı bir şekilde ulaştırmak, yük dengeleme bulunmayan bir yapıda yeterli verim sağlamayacaktır. Bu durum performans düşüklüğüne sebebiyet verecek ve dengelenmemiş bu yükün bir kısmını kullanıcılara yükleyecektir.
Daha fazla tutarlılık sağlamak ve sürekli gelişen kullanıcı talebine ayak uydurmak için, sunucu kaynaklarının hazır olması ve Open Systems Interconnection (OSI) modelinin 4. ve / veya 7. katmanlarında yük dengelemesi gerekir:
layer 4 l4 load balancing yuk dengeleme

 

Layer 4 (L4) yük dengeleyicileri, taşıma seviyesinde çalışır. Bu, paketlerin kaynak ve hedef IP adresleriyle birlikte kullandıkları TCP veya UDP bağlantı noktalarına göre yönlendirme kararları verebilecekleri anlamına gelir. L4 yük dengeleyicileri, Network Adress Translation ağ adresi Çevirisi gerçekleştirir, ancak her paketin gerçek içeriğini denetlemez.
Katman 7 (L7) yük dengeleyicileri, OSI modelinde en yüksek olan uygulama düzeyinde çalışır. İsteklerin sunucu grubu genelinde nasıl dağıtılacağına karar verirken, HTTP üstbilgileri ve SSL oturum kimlikleri dahil olmak üzere L4 emsallerinden daha geniş bir veri aralığını değerlendirebilirler.

 

layer 7 l4 load balancing yuk dengeleme

 

 

 
Yük dengeleme, L7’de L4’e göre sayısal olarak daha yoğundur, ancak sunuculara yönelik istemci isteklerini anlama ve işleme bağlamında eklenen durumlar nedeniyle L7’de de verimli olabilir.
 
Temel L4 ve L7 yük dengelemeye ek olarak, global server load balancing (GSLB), her iki katmanın yapabileceklerini birden çok veri merkezine yayabilir, böylece yüksek ölçekli trafik verimli bir şekilde dağıtılır ve son kullanıcıya ulaşması gereken hizmette herhangi bir aksama olmaz.

 

Uygulamalar, farklı coğrafyalarda bulunan bulut veri merkezlerinde daha fazla barındırıldıkça, GSLB, BT kuruluşlarına ait uygulamaları herhangi bir cihaza veya konuma daha güvenli ve daha düşük gecikme süresiyle ulaşılabilmesini sağlar. Bunu yapmak, dijital bir çalışma ortamında birden çok uygulama ve hizmette gezinirken son kullanıcılar için daha stabil bir deneyim sağlar.

 

  • Site İçi Yorumlar

En az 10 karakter gerekli