Artykuł pochodzi z wydania: Wrzesień 2021
Dostępność i skalowalność aplikacji to podstawowe aspekty, które należy wziąć pod uwagę podczas projektowania systemu IT. Temat równoważenia obciążeń i rozkładania ruchu zyskał na popularności głównie za sprawą tego typu usług dostępnych na platformach chmurowych, choć tradycyjne rozwiązania mają się równie dobrze.
Idea zarządzania ruchem sieciowym w kontekście rozkładania obciążenia na większą liczbę urządzeń końcowych świadczących różnego rodzaju usługi nie jest nowa. W dobie IT-as-a-Service, wszechobecnej automatyzacji, orkiestracji i inteligentnego reagowania na zmiany obciążenia, a także przejścia z modelu zakupowego CAPEX na model OPEX i dalej pay-per-use optymalizacja wykorzystania zasobów obliczeniowych stanowi najważniejszy czynnik dla osób planujących budżet działu IT. Przetwarzanie w chmurze publicznej oraz koszty z tym związane tylko potęgują potrzebę automatycznego reagowania na wszelkiego rodzaju zmiany w zapotrzebowaniu na moc obliczeniową. Jednym z elementów układanki pozwalającej na dynamiczne zmiany w infrastrukturze IT są load balancery. Funkcjonowanie rozwiązań tego typu opiera się po części na idei działania odwróconego proxy, które jest w stanie przekazać żądania przychodzące od użytkowników końcowych do więcej niż jednego serwera hostującego wybrane aplikacje w sposób dla nich niewidoczny. Głównym zadaniem takiego pośrednika jest zatem: zapewnienie niemal nieograniczonej skalowalności, elastyczności podczas dynamicznego zwiększania lub zmniejszania puli zasobów, automatyczne reagowanie na przerwy w działaniu i awarie pojedynczych serwerów w puli świadczącej usługi oraz ułatwione zarządzanie dostępem do aplikacji, certyfikatami szyfrowania itp. Współczesne rozwiązania tego typu dysponują znacznie szerszą listą funkcji, oferując także dodatkowe aspekty bezpieczeństwa oraz uwierzytelniania użytkowników. Możliwości tego typu rozwiązań spowodowały, iż określa się je współcześnie nazwą Application Delivery Controller (ADC). Reprezentantem tej grupy jest testowany w tym numerze LoadMaster firmy Kemp. Ostatnim ich produktem analizowanym na łamach „IT Professional” był kolektor informacji o ruchu sieciowym działający na podstawie protokołu Netflow i IPFIX – Flowmon („IT Professional” 01/2015, s. 50). Pora zatem sprawdzić możliwości load balancera.
> FUNKCJONALNOŚĆ
Balansowanie ruchu w podstawowym scenariuszu opiera się na dość prostej koncepcji – w zależności od tego, dla jakich usług chcemy rozrzucać obciążenie, konieczne jest odpowiednie rozdystrybuowanie pakietów pomiędzy urządzenia „schowane” za load balancerem. Operacja zazwyczaj opiera się na warstwie 4. modelu OSI lub w przypadku aplikacji webowych – warstwie 7. W najprostszym scenariuszu wystarczy w zasadzie dowolna dystrybucja Linuksa oraz aplikacja iptables popularnego pakietu jądra netfilter. W przypadku rozwiązań takich jak LoadMaster mamy do czynienia ze znacznie bardziej rozbudowanymi możliwościami, nie tylko w prostym balansowaniu ruchem. Lista możliwości LoadMastera jest długa i w zależności od tego, jakie aplikacje mają być obsługiwane, do dyspozycji administratora jest cała paleta opcji wymagających niekiedy eksperckiej wiedzy z zakresu działania wybranych aplikacji sieciowych. Na szczęście producent robi wszystko, aby maksymalnie ułatwić wdrożenie LoadMastera.
Najistotniejszym z ułatwień jest rozbudowana biblioteka gotowych szablonów do pobrania ze strony producenta. Każdy z szablonów zawiera predefiniowany zestaw ustawień balancera dobrany pod kątem wybranej aplikacji. Lista dostępnych rozwiązań jest pokaźna i znajdziemy tu między innymi marki takie jak: Microsoft, VMware, Citrix, Oracle, IBM czy Apache. Dla każdego producenta znaleźć można szablony przeznaczone dla różnych aplikacji, jak chociażby różne wersje serwera poczty MS Exchange czy VMware Horizon. Poza podziałem na twórców dostępne są też szablony charakteryzujące produkty branżowe, jak chociażby Moodle, popularny w szeroko rozumianej edukacji. Wśród innych gotowców znajdziemy szablon dla Splunka, SAP Business Suite czy chociażby BMC Remedy. Jeśli wśród szablonów nie znajdziemy własnej aplikacji, a ręczna konfiguracja wszystkich dostępnych parametrów sprawia problemy, zawsze można poprosić o pomoc dział wsparcia producenta. O ile w przypadku redakcyjnych testów nie mieliśmy okazji sprawdzić działania supportu, o tyle podczas analizy dokumentacji i materiałów na temat LoadMastera w oczy rzucają się wysokie oceny w rankingach zadowolenia klientów, a także nagrody, którymi chwali się Kemp. Nacisk na łatwość obsługi widać także w innych obszarach – ogólnodostępna i wyczerpująca dokumentacja, a także repozytorium zarejestrowanych webinarów i filmów instruktażowych to ten rodzaj wsparcia, który lubimy najbardziej, a z którym nie zawsze mamy do czynienia, testując zróżnicowane produkty zarówno z obszaru oprogramowania, jak i sprzętu. Nawet pierwsze kroki w webowej konsoli administracyjnej okraszone są interaktywnymi podpowiedziami prowadzącymi krok po kroku przez podstawową konfigurację pierwszej wirtualnej usługi sieciowej.
W ramach podstawowego zestawu funkcji LoadMaster dysponuje aż 10 algorytmami balansowania ruchu sieciowego, począwszy od najprostszego i zarazem najpopularniejszego round robin, poprzez weighted round robin, least connection, weighted least connection, agent-based adaptive balancing, resource-based (SDN adaptive), fixed weighted, weighted response time, source IP hash, na url hash kończąc. Większość algorytmów jest dobrze znana, chociażby z zastosowania w sieciach komputerowych przy agregacji linków czy routingu tras o tym samym koszcie. Proste algorytmy sprawdzą się w środowiskach, w których serwery świadczące usługi dysponują identyczną mocą obliczeniową. Algorytmy umożliwiające przypisanie wagi do konkretnego serwera pozwalają z kolei na przydzielenie wyższego priorytetu bardziej wydajnym zasobom sprzętowym. Na uwagę zasługują agent-based adaptive balancing oraz SDN adaptive. Pierwszy z nich dostosowuje sposób rozrzucania połączeń na podstawie informacji zwrotnej pobieranej z serwerów obsługujących ruch, dzięki czemu realne obciążenie każdego z nich jest czynnikiem decydującym podczas przydzielania konkretnego ruchu sieciowego. W przypadku drugiego algorytmu wśród przesłanek decydujących o przydzielenie nowych połączeń znajdują się również informacje z warstwy 2. i 3. pochodzące z poziomu kontrolera SDN, który ma pełny wgląd w obciążenie infrastruktury sieciowej.
[…]
Marcin Jurczyk
Autor jest architektem w międzynarodowej firmie z branży IT. Zajmuje się infrastrukturą sieciowo-serwerową, wirtualizacją infrastruktury i pamięcią masową.