Bilgisayar Ağları - Ağda Yük Dengeleme

    **Ağda Yük Dengeleme (Load Balancing)**, ağ trafiğini veya işlem yükünü birden fazla sunucu, bağlantı veya kaynak üzerinde dağıtarak **performansı artıran, güvenilirliği sağlayan ve hata toleransı** ekleyen kritik bir ağ hizmetidir.


---


### **1. Yük Dengelemenin Temel Amacı ve Faydaları**


*   **Performans Artışı:** Tek bir sunucunun kapasitesinin aşıldığı durumlarda, trafik birden fazla sunucuya dağıtılarak yanıt süreleri kısaltılır ve sistem performansı optimize edilir.

*   **Yüksek Erişilebilirlik (High Availability):** Bir sunucu veya bileşen arızalandığında, yük dengeleyici trafiği sağlıklı sunuculara yönlendirir. Kullanıcılar için kesintisiz hizmet sağlar.

*   **Ölçeklenebilirlik (Scalability):** Artan trafiği karşılamak için sunucu havuzuna (server pool/backend pool) yeni sunucular kolayca eklenebilir. Bu, yatay ölçeklendirme (scale-out) için temel mekanizmadır.

*   **Bakım Kolaylığı:** Sunuculara sırayla bakım yapılabilir. Yük dengeleyici, bakımdaki sunucuyu havuzdan çıkarır ve trafiği diğerlerine yönlendirir.


---


### **2. Yük Dengeleme Türleri ve Katmanları**


Yük dengeleyiciler, OSI modelinin farklı katmanlarında çalışabilir:


#### **2.1. Katman 4 (Transport Layer) Yük Dengeleme**

*   **Nasıl Çalışır?** TCP/UDP paket başlıklarındaki **kaynak ve hedef IP adresleri ile port numaralarına** bakarak karar verir.

*   **Avantajı:** Hızlı ve basittir. Paketin içeriğini (örneğin, URL'yi) incelemez.

*   **Dezavantajı:** Akıllı yönlendirme yapamaz. Örneğin, aynı kullanıcı oturumunu (session) farklı sunuculara gönderebilir.

*   **Kullanım Alanı:** DNS, SSH, FTP gibi protokoller.


#### **2.2. Katman 7 (Application Layer) Yük Dengeleme**

*   **Nasıl Çalışır?** HTTP/HTTPS gibi uygulama katmanı protokollerinin içeriğini inceler. **URL yoluna, host header'ına, çerez (cookie) bilgisine veya HTTP metoduna** göre karar verir.

*   **Avantajı:** Çok daha akıllı ve bağlamsal (context-aware) yönlendirme yapar.

    *   `/api` yolundaki istekleri bir sunucu grubuna, `/images` yolundakileri başka bir gruba yönlendirebilir.

    *   SSL/TLS terminasyonu yapabilir (SSL Offloading), böylece sunucuların şifreleme yükünden kurtulmasını sağlar.

*   **Dezavantajı:** Daha fazla işlem gücü gerektirir, Katman 4'e göre daha yavaş olabilir.

*   **Kullanım Alanı:** Modern web uygulamaları, API'lar, mikroservis mimarileri.


---


### **3. Yük Dengeleme Algoritmaları (Yönlendirme Metodları)**


Trafiği sunuculara dağıtmak için kullanılan akıllı yöntemlerdir:


| Algoritma | Açıklama | Kullanım Senaryosu |

| :--- | :--- | :--- |

| **Round Robin** | İstekleri sırayla tüm sunuculara dağıtır. | Tüm sunucuların aynı kapasitede olduğu basit senaryolar. |

| **Least Connections** | En az aktif bağlantıya sahip sunucuya yönlendirir. | Sunucu yüklerinin eşitsiz olduğu, bağlantı sürelerinin değişken olduğu durumlar. |

| **Least Response Time** | En düşük yanıt süresine ve en az bağlantıya sahip sunucuyu seçer. | Performansın kritik olduğu uygulamalar. |

| **IP Hash** | İstemci IP'sine göre bir hash değeri hesaplar ve aynı IP'den gelen istekler hep aynı sunucuya gider. | **Session Persistence (Sticky Sessions)** için idealdir. Kullanıcı oturum bilgilerinin bir sunucuda tutulduğu durumlar. |

| **Weighted Round Robin** | Sunuculara kapasitelerine göre ağırlık (weight) verilir. Daha güçlü sunucu daha fazla istek alır. | Sunucuların donanım kapasitelerinin farklı olduğu heterojen ortamlar. |


---


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


| Özellik | Donanım Tabanlı (F5, Citrix ADC) | Yazılım Tabanlı (HAProxy, NGINX) |

| :--- | :--- | :--- |

| **Performans** | Çok yüksek, özel ASIC çipleri. | Genel amaçlı CPU'da çalışır, yeterince hızlıdır. |

| **Maliyet** | Yüksek (CAPEX). | Düşük (genellikle OPEX, açık kaynak seçenekleri mevcut). |

| **Esneklik** | Daha az esnek, fiziksel cihaz. | Çok esnek, sanal makinelerde/container'larda çalıştırılabilir. |

| **Ölçeklenebilirlik** | Cihaz kapasitesi ile sınırlıdır. | Bulut ortamında otomatik ölçeklenebilir. |

| **Kullanım** | Geleneksel, yüksek hacimli kurumsal ağlar. | Modern bulut, DevOps ve mikroservis mimarileri. |


---


### **5. Bulut Yük Dengeleyicileri**


Bulut sağlayıcıları, yönetimi kendilerinde olan tam entegre yük dengeleyici hizmetleri sunar:


*   **AWS:** **Application Load Balancer (ALB - L7)**, **Network Load Balancer (NLB - L4)**, Classic Load Balancer.

*   **Azure:** **Azure Load Balancer (L4)**, **Azure Application Gateway (L7)**, Front Door.

*   **Google Cloud:** **Global Load Balancing**, Cloud Load Balancing.


**Avantajları:** Otomatik ölçeklenme, yerleşik güvenlik (WAF, DDoS koruması), yüksek kullanılabilirlik ve entegre sertifika yönetimi (SSL/TLS) sunarlar.


---


### **6. Health Checks (Sağlık Kontrolleri)**


Yük dengeleyicinin en önemli fonksiyonlarından biridir. Sunucu havuzundaki her bir sunucuya periyodik olarak istek göndererek (örneğin, bir HTTP `/health` endpoint'ine) çalışıp çalışmadığını kontrol eder. Yanıt alamadığı veya hata kodu aldığı sunucuyu havuzdan otomatik olarak çıkarır. Sağlıklı hale gelince geri ekler.


---


### **7. Kullanım Senaryoları**


1.  **Web Uygulamaları:** Binlerce eşzamanlı kullanıcı isteğini birden fazla web sunucusuna dağıtmak.

2.  **Mikroservis Mimari:** Farklı servisler için farklı yönlendirme kuralları (örneğin, `/users` istekleri User Service'e, `/orders` istekleri Order Service'e).

3.  **Yüksek Erişilebilirlik:** Kritik uygulamaları coğrafi olarak farklı veri merkezlerinde çalıştırıp trafiği sağlıklı olan bölgeye yönlendirmek (Global Server Load Balancing - GSLB).

4.  **SSL Offloading:** Gelen şifreli HTTPS trafiğinin yük dengeleyicide çözülmesi ve sunuculara şifresiz (HTTP) olarak iletilmesi. Sunucuların işlem yükünü azaltır.


    Sonuç

Yük dengeleme, modern ve ölçeklenebilir herhangi bir ağ veya uygulama mimarisinin **olmazsa olmaz** bir bileşenidir. Sadece performans için değil, aynı zamanda **hata toleransı ve sistemin dayanıklılığı** için de kritik öneme sahiptir. Doğru algoritma ve çözümün seçimi, uygulamanın ihtiyaçlarına (session durumu, trafik türü, ölçeklenebilirlik gereksinimi) bağlıdır.


Yorumlar

Sitedeki popüler yayınlar:

Bilgisayar Ağları - Bulut Tabanlı Ağlar

Bilgisayar Ağları - Yazılım Tanımlı Ağlar (SDN)

Bilgisayar Ağları - Ağ Kurulumu ve Yönetimi