Zawsze, gdy Twój system się rozrasta, zwiększa się ruch, coraz więcej użytkowników korzysta z Twoich produktów, serwery zaczynają reagować wolniej, a przestoje pogarszają sytuację Twojego biznesu, zaczynasz myśleć o skalowaniu.
Istnieją dwie podstawowe strategie skalowania – pionowa i pozioma.
Skalowanie pionowe ma na celu zwiększenie mocy systemu, zazwyczaj poprzez dodanie do serwerów większej liczby procesorów i pamięci RAM.
Skalowanie poziome koncentruje się natomiast na duplikowaniu (lub klonowaniu) serwerów w puli zasobów.
Więcej na ten temat:
Skalowanie pionowe
Skalowanie pionowe jest najlepszą opcją dla systemu o niskim ruchu, ponieważ jest to najbardziej dostępne podejście do obsługi wzrostu bez wprowadzania dodatkowej złożoności. Nie musisz się martwić o wdrażanie strategii dla grupy zasobów, elastyczność puli zasobów, bezstanowość serwera, rozproszoną pamięć podręczną itd.
Jednakże skalowanie pionowe ma poważne wady
- Ograniczenie sprzętowe, ponieważ nie można dodawać zasobów w nieskończoność
- Brak funkcji failover i redundancji zwiększa ryzyko długotrwałego przestoju i utraty danych
Skalowanie poziome
Skalowanie poziome eliminuje te problemy poprzez klonowanie serwerów aplikacji i osadzanie komponentu, takiego jak moduł równoważenia obciążenia .
Moduł równoważenia obciążenia rozdziela ruch na serwerach, wykorzystując określone algorytmy, takie jak:
Każdy z każdym Ważony każdy z każdym - Podejścia oparte na haszu IP
- Metoda najmniejszego połączenia
- Metoda połączenia o najmniejszej wadze
- Metoda najmniejszej odpowiedzi i wiele innych.
Ma jednak kilka wad:
- Serwery muszą być bezstanowe
- Sesje muszą być przechowywane w scentralizowanym magazynie danych
- Bardziej skomplikowane
wdrażanie strategii może być wymagane - Moduł równoważenia obciążenia może stać się wąskim gardłem wydajności, jeśli jest nieprawidłowo skonfigurowany i zasoby są niewystarczające
- Wprowadza dodatkową złożoność do systemu i stanowi potencjalny pojedynczy punkt awarii, co wymaga zastosowania strategii przełączania awaryjnego
Moduły równoważenia obciążenia L4/L7
Aby dwa urządzenia w Internecie mogły się ze sobą komunikować, systemy bazowe muszą przestrzegać określonych protokołów. Każdy słyszał o modelu OSI, który opisuje siedem warstw, których systemy komputerowe używają do komunikacji w sieci. Chociaż współczesny Internet opiera się na prostszym modelu stosu protokołów TCP/IP, model OSI jest szeroko stosowany, ponieważ pomaga wizualizować i komunikować, jak działają sieci, a także pomaga izolować i rozwiązywać problemy sieciowe.
Większość rozwiązań równoważenia obciążenia w branży posługuje się terminami L4 i L7, gdzie L4 odnosi się do warstwy transportowej w modelu OSI, a L7 do warstwy aplikacji.
Moduł równoważenia obciążenia L4 jest nadal modułem L2/L3, ponieważ używa danych z dolnych warstw, takich jak adres IP i numer portu.
Główne zalety modułu równoważenia obciążenia L4
Rozwiązanie to jest bezpieczniejsze i wydajniejsze, ponieważ przy podejmowaniu decyzji o routingu nie jest uwzględniana zawartość danych
To samo połączenie TCP obowiązuje pomiędzy klientem a serwerem, co pomaga zapobiegać przekroczeniu limitu dostępnych połączeń TCP na module równoważenia obciążenia
Główne wady modułu równoważenia obciążenia L4
- Inteligentne kierowanie jest niemożliwe, ponieważ zawartość nie jest odszyfrowywana
- Protokół stanowy wprowadza dodatkową złożoność
- Mapowanie pomiędzy adresami publicznymi i prywatnymi
- Brak buforowania, ponieważ zawartość jest niedostępna na tym poziomie
- Nie można używać w architekturze mikrousług, ponieważ przekierowanie ruchu nie jest dostępne na podstawie ścieżki URL
Z drugiej strony moduł równoważenia obciążenia L7 działa na poziomie aplikacji w modelu OSI
Główne zalety modułu równoważenia obciążenia L7
Można podejmować mądre decyzje na podstawie ścieżki URL, nagłówków i treści
Buforowanie
Główne wady modułu równoważenia obciążenia L7
- Dodatkowe obciążenie wynikające z utrzymywania dwóch połączeń TCP, jednego między klientem a modułem równoważenia obciążenia, drugiego między modułem równoważenia obciążenia a serwerem. Należy również wziąć pod uwagę limit połączenia TCP modułu równoważenia obciążenia
- Mniej bezpieczne, ponieważ moduł równoważenia obciążenia musi znać certyfikaty, aby móc odszyfrować dane i podejmować decyzje dotyczące routingu
Wniosek
Load balancer jest kluczowym elementem, gdy skalowanie poziome jest stosowane do obsługi systemów o dużym ruchu. Istnieją dwa główne typy load balancerów L4 i L7.
Moduł równoważenia obciążenia L4 jest znacznie bezpieczniejszy i wydajniejszy ze względu na ograniczenia związane z podejmowaniem inteligentnych decyzji
Moduł równoważenia obciążenia L7 działa w sposób umożliwiający inteligentne podejmowanie decyzji dotyczących routingu ze względu na koszty wydajności i bezpieczeństwa
Wybór odpowiedniego typu zależy od wymagań systemowych i należy go starannie rozważyć, zachowując równowagę między stosowaniem zasad bezpieczeństwa a eliminowaniem wąskich gardeł wydajnościowych.
Opublikowano również tutaj.