Modern şirketlerin web siteleri ve uygulamaları, dakikada yüzlerce veya binlerce müşteri isteği alır. Yoğun sezonda trafik daha da artabilir. Bu tip senaryolarda sunucular, multimedya verileriyle istekleri karşılamak ve yanıtlamak için yüksek yük altındadır. Herhangi bir kesinti süresi, kötü hizmete ve kullanıcı kaybına yol açarak gelir kaybına neden olabilir.

Bu noktada load balancer devreye girer.

Load Balancer Nedir?

Load balancer yani yük dengeleme, iş yükünü birden fazla bilgi işlem kaynağına ve sunucuya dağıtmak için kullanılan bir tekniktir. Yük dengelemenin amacı, kaynak kullanımını optimize etmek ve tek bir kaynağın veya sunucunun aşırı yüklenmesini önlemektir. Bir web sitesi veya uygulama çok fazla istek/trafik alıyorsa, kullanıcılar için istikrarlı performans ve çalışma süresi sağlamak için yük dengeleme gerekir.

Yük dengelemeyi gerçekleştirmek için tümü bir yük dengeleyiciye bağlı bir sunucu havuzuna veya sunucu çiftliğine sahip olmak gerekir. Load balancer, web sitesi kullanıcılarından gelen istekler ile sunucular arasında aracı görevi görür. Yük dengeleyici yeni bir istek geldiğinde, kullanılan yük dengeleme algoritmasına (yöntemine) dayalı olarak bunu işlemek için en uygun sunucuya dağıtır.

Bir yük dengeleyici genellikle Katman 4’ü (L4) veya Katman 7’yi (L7) destekler. Katman 4, trafiği taşıma verilerine göre dağıtır (örn. IP adresi ve TCP bağlantı noktası). Katman 7, trafiği uygulama katmanı verilerine ve özniteliklerine göre dağıtır, (örn. HTTP başlığı, tek tip kaynak tanımlayıcısı ve HTML form verileri).

Load Balancer Nasıl Çalışır?

Uygulama trafiği arttıkça, yük dengeleyici farklı sunuculara bakar ve hangilerinin trafiği en iyi yönetebileceğini seçer. Bu, iyi bir kullanıcı deneyimi sağlar.

Bir yük dengeleyici, bir sunucu ile son kullanıcının cihazı arasında gönderilen bilgileri yönetir. Bu sunucu şirket içinde, bir veri merkezinde veya genel bir bulutta olabilir. Yük dengeleyiciler, istekleri işleyebileceklerinden emin olmak için sunucularda sürekli durum denetimleri de yapar. Gerekirse, yük dengeleyici sağlıksız sunucuları geri yüklenene kadar sunucu havuzundan kaldırır. Bazı yük dengeleyiciler, otomatik ölçeklendirme özelliği olan artan taleple başa çıkmak için yeni sanallaştırılmış uygulama sunucularının oluşturulmasını bile tetikler.

Yedi ağ katmanı vardır:

Yedi katmanlı Açık Sistem Bağlantısı (Open System Interconnection-OSI) modelinde, ağ güvenlik duvarları bir ila düzeyindedir (L1-Fiziksel Kablolama, L2-Veri Bağlantısı ve L3-Ağ). Yük dengeleme dördüncü ve yedinci katmanlar arasında gerçekleşir (L4-Transport ve L7-Application)

Yük Dengelemenin Avantajları Nelerdir? 

Yük dengelemenin avantajları aşağıdakileri içerir:

1. Güvenilirlik

Bir web sitesi veya uygulama, trafik yüksek olduğunda bile iyi bir UX sağlamalıdır. Yük dengeleyiciler, verileri verimli bir şekilde taşıyarak, uygulama teslimi için kaynak kullanımını optimize ederek ve sunucu aşırı yüklemelerini önleyerek trafik artışlarını yönetir. Böylece site performansı yüksek kalır.

2. Kullanılabilirlik

Ana makinelerden biri arızalanırsa, yük dengeleyici isteği diğer kullanılabilir cihazlara yönlendirir.

3. Güvenlik

Hizmet reddi (DDoS) saldırılarını önlemek için bir uygulama yük dengeleyici kullanılabilir. Bir uygulama yük dengeleyici ile kurumsal sunucudan gelen ağ ve uygulama trafiği bir genel bulut sunucusuna veya sağlayıcısına aktarılır ve böylece trafiği tehlikeli siber saldırılardan korur.

4. Tahmin

Yük dengeleme, trafik darboğazlarını tahmin edebilen ve işletmelerin bunları önlemesini sağlayan analitiği içerir. Tahmine dayalı analitik, otomasyonu kolaylaştırır ve işletmelerin gelecek için kararlar almasına yardımcı olur.

5. Ölçeklenebilirlik

Bir yük dengeleyici, işi sunucular arasında eşit bir şekilde dağıtacağından, bu, daha fazla ölçeklenebilirlik sağlar.

6. Global Sunucu Load Balancer

Global Sunucu Load Balancer, L4 ve L7 yeteneklerini farklı coğrafi konumlardaki sunuculara genişletir. Bu, onu farklı yerlerde bulunan veri merkezlerine sahip bulut yerel uygulamalar için harika kılar.

Load Balancer Türleri Nelerdir? 

Yük dengeleyiciler farklı türde depolama, karmaşıklık ve işlevselliğe sahiptir.

1. Donanım Tabanlı

Adından da anlaşılacağı gibi bir donanım tabanlı yük dengeleyici, uygulama ve ağ trafiğini dağıtmak için fiziksel, şirket içi donanıma dayanır. Bu cihazlar, büyük hacimli bir trafiğin üstesinden gelebilir, ancak genellikle yüksek maliyetlidir ve esneklik açısından oldukça sınırlıdır.

2. Yazılım Tabanlı

Genellikle bir ADC’nin (application delivery controllers) parçası olarak sanal makinelerde veya beyaz kutu sunucularında çalışır. Sanal yük dengeleme, fiziksel yük dengelemeye kıyasla üstün esneklik sağlar.

Yazılım yük dengeleyiciler, geleneksel hipervizörler, kapsayıcılar veya Linux süreçlerinde yalın donanım sunucusunda çok az ek yük ile çalışır.

3. Sanal

Bir sanal yük dengeleyici, yukarıda belirtilen iki türü birleştirmek için özel bir yük dengeleme yazılımını bir sanal makinedeki özel bir cihazdan dağıtır. Ancak sanal yük dengeleyiciler, sınırlı ölçeklenebilirlik ve otomasyonun mimari sorunlarının üstesinden gelemez.

4. Bulut Tabanlı

Bu tür yük dengeleme, bir bulut altyapısı kullanır. 

Bu tür yük dengeleme, bir bulut altyapısı kullanır. 

  • Ağ yükü dengeleme (network load balancing), L-4’ü temel alır ve ağ trafiğinin nereye gönderileceğini belirlemek için ağ katmanı bilgilerini kullanır. Bu, en hızlı yük dengeleme çözümüdür.
  • HTTP(S) yük dengeleme, L-7’yi temel alır. En esnek yük dengeleme türlerinden biridir ve yöneticilerin HTTP adresinden gelen herhangi bir bilgiye dayalı olarak trafik tahsisi kararları vermesini sağlar.
  • Dahili yük dengeleme, dahili altyapı genelinde dağıtımı dengeleyebilmesi dışında ağ yük dengeleme ile hemen hemen aynıdır.

Bulut Yük Dengeleme Algoritması Türleri

Yük dengeleme algoritmaları, kullanım durumuna bağlı olarak farklı avantaj ve karışıklıklar sunar. En yaygın yük dengeleme algoritmaları aşağıdakileri içerir:

1. Round Robin

Sunucular trafiği sırayla alır. Yük dengeleyici, listedeki ilk sunucuyu seçer ve ona ilk isteği gönderir, ikinci sunucu ikinci isteği alır ve bu şekilde devam eder.

2. Least connections

Dengeleyici, trafiğe hizmet vermek için en az meşgul sunucuyu seçer (yani, şu anda en az sayıda bağlantıya sahip sunucu). Bu algoritma, özellikle trafiğe hizmet vermek için uzun oturumlar gerektiğinde kullanışlıdır.

3. Hash

Yük dengeleyici, sunucuyu orijinal IP isteğinin karmasına göre seçer (örneğin, ziyaretçinin IP adresine göre). Bu durumda, aynı back end sunucusu, belirli bir kullanıcıdan gelen tüm istekleri yerine getirir.

4. Fixed Weighting

Fixed Weighting, yöneticinin uygulama sunucusunun trafik işleme yeteneğini göstermek için seçtikleri kriterlere göre her uygulama sunucusuna bir ağırlık atadığı bir yük dengeleme algoritmasıdır. En yüksek ağırlığa sahip uygulama sunucusu tüm trafiği alır. En yüksek ağırlığa sahip uygulama sunucusu başarısız olursa, tüm trafik bir sonraki en yüksek ağırlıklı uygulama sunucusuna yönlendirilir.