Co to jest load balancing?

Co to jest load balancing?

Load balancing to technologia pozwalająca na równoważenie obciążenia i rozdzielanie ruchu pomiędzy serwerami i aplikacjami. Celem load balancingu jest optymalizacja wydajności, efektywności i przepustowości infrastruktury.

Load Balancer OVHcloud

Load balancer: definicja

Od około dziesięciu lat ruch internetowy rośnie wykładniczo. Internauci stają się coraz bardziej wymagający - oczekują szybkiego dostępu do serwisów i bezpieczeństwa. Dlatego serwery internetowe są bardzo obciążone. Aby temu zaradzić, wdrożono strategię optymalizacji obciążenia serwerów, czyli load balancing. Dzięki tej strategii grupa serwerów (klaster) jest w stanie obsłużyć wzrosty ruchu, ale także zapewnić rozwiązanie awaryjne w przypadku incydentu. Do tego celu wykorzystywany jest load balancer. Równoważy on obciążenie pomiędzy serwerami i pozwala utrzymać ich wydajność na optymalnym poziomie. Jeśli zainstalujesz stronę WWW na serwerach OVHcloud z load balancerem, strona będzie mniej narażona na spowolnienia lub przerwy w działaniu.

Load balancer instalowany jest na dedykowanej infrastrukturze fizycznej lub wirtualnej. W przypadku platformy fizycznej w charakterze load balancera zostanie użyty serwer, co wymaga stosownej inwestycji. Oprogramowanie służące do równoważenia obciążenia może być zainstalowane na wirtualnej maszynie (VM). Przyjmuje wówczas postać kontrolera dostarczania aplikacji (application delivery controller, ADC). W wersji wirtualnej load balancer będzie bardziej elastyczny. Pozwoli użytkownikom na automatyczne równoważenie obciążenia, w zależności od przewidywanego ruchu.

W obu przypadkach load balancer zidentyfikuje w czasie rzeczywistym najbardziej odpowiedni serwer, który odpowie na żądanie. Dzięki temu klaster zachowa stabilny poziom wydajności. W przypadku awarii maszyny load balancer przełączy obciążenie na inny serwer.

Gdy użytkownik wysyła żądanie załadowania strony WWW, load balancer włącza się między komputerem użytkownika a serwerem. Następnie analizuje, która maszyna jest najodpowiedniejsza, aby odpowiedzieć na to żądanie, po czym przesyła je do niej. Może również dodawać lub usuwać serwery w zależności od obciążenia i bieżących potrzeb.

Jak działa load balancer?

Równoważenie obciążenia realizowane jest za pomocą algorytmu bazującego na DNS (Domain Name System). Użytkownik uzyskuje dostęp do stron internetowych za pośrednictwem adresu URL powiązanego z adresem IP. IP kontaktuje się z load balancerem, który przekazuje żądanie do serwera. Rozdzielenie ruchu zależy wówczas od rodzaju użytego algorytmu. Cztery najbardziej znane algorytmy to: Round Robin, Weighted Round Robin, Least Connections i Weighted Least Connections.

 

Round Robin

Algorytm ten tworzy kolejkę żądań przychodzących. Zarządza nimi load balancer, który rozdziela je między serwery klastra. Zapytania są przydzielane sekwencyjnie, w zależności od dostępności maszyn. Round Robin nie bierze pod uwagę, jak pilne jest dane żądanie ani jakie obciążenie będzie ono stanowić dla serwera. Dlatego jest on odpowiedni dla środowisk, w których serwery dysponują identycznymi zasobami. W infrastrukturze zbudowanej z różnych zasobów load balancer może przypisać nieodpowiednie obciążenia do mniej wydajnych maszyn, co może doprowadzić do przeciążenia.

Metoda ta jest najbardziej tradycyjna i służy jako model dla pozostałych algorytmów.

 

Weighted Round Robin

W przeciwieństwie do klasycznej metody Round Robin, Weighted Round Robin działa w oparciu o system przypisywania wag. Każdemu serwerowi w klastrze przypisywana jest waga w zależności od jego wydajności i mocy. Na przykład, najbardziej wydajny serwer będzie miał wagę 10, a najmniej wydajny - wagę 1. Ruch zostanie skierowany na serwer, któremu przypisano większą wagę. Metoda ta jest zatem bardziej odpowiednia dla środowiska, w którym zasoby serwerów są różne - obciążenie jest optymalizowane w zależności od ich wydajności.

 

Least Connections

Dwie poprzednie metody nie biorą pod uwagę liczby połączeń, którymi serwery klastra muszą zarządzać podczas rozdzielania zadań przez load balancer. W takiej sytuacji na serwerze może się czasem kumulować kilka połączeń i powodować jego przeciążenie. Algorytm Least Connections rozwiązuje ten problem. Uwzględnia żądania już istniejące na serwerze internetowym podczas dystrybucji. Maszyna z najmniejszą liczbą żądań otrzymuje następne żądanie od load balancera. Należy jednak pamiętać, że algorytm ten nie uwzględnia możliwości technicznych serwerów. Jest on zatem bardziej odpowiedni dla środowisk, w których zasoby są identyczne.

 

Weighted Least Connections

Weighted Least Connections uzupełnia algorytm Least Connections. W infrastrukturze, w której zasoby serwera są niejednorodne, bierze on pod uwagę liczbę zapytań dla każdej maszyny oraz ich wagę określoną przez administratora. Podobnie jak w przypadku Weighted Round Robin, serwer o większej mocy otrzymuje wyższą wagę. Pozwala to na zachowanie optymalnego rozdzielenia żądań w klastrze. Każde nowe żądanie jest przypisywane do serwera o najniższym stosunku liczby aktywnych połączeń do wagi.

Zalety i znaczenie load balancera

Główną zaletą load balancera jest skrócenie czasu odpowiedzi strony na zapytania użytkowników. Optymalizacja obciążenia serwerów ogranicza ryzyko awarii związanych z przeciążeniem. Jeśli dana maszyna stanie się niedostępna, użytkownicy zostaną przekierowani na inny serwer i nadal będą mieli dostęp do stron. Dzięki stałej jakości usług: elastycznemu hostingowi, wysokiej dostępności, skalowalności użytkownicy zyskują optymalne doświadczenie. OVHcloud nie nakłada ponadto limitów w zakresie przepustowości i miesięcznego ruchu.

Load balancer jest szczególnie przydatny w sektorze e-commerce, gdzie znaczne wahania ruchu mogą prowadzić do przeciążeń. Pozwala on utrzymać prawidłowe działanie funkcji na stronach WWW i zachować pozytywny wizerunek firmy, a klientom zapewnia komfort użytkowania. W praktyce oznacza to spadek liczby porzuconych koszyków i niedokończonych transakcji.