Równoważenie obciążeń serwerów webowych

Urządzenia i oprogramowanie do inteligentnej optymalizacji ruchu sieciowego mogą zwiększyć efektywność systemu i ograniczyć koszty.

Kontrolery przyspieszające dostarczanie aplikacji, akceleratory, systemy do zarządzania ruchem sieciowym lub równoważenia obciążeń to praktycznie te same określenia rozwiązań do skalowania i zwiększania wydajności serwerów webowych oraz udostępnianych przez nie aplikacji.

Jeszcze 5, 6 lat temu tego typu systemy były sprzętem kosztującym nawet 100 000 USD i dostępnym tylko dla dużych korporacji. Obecnie są to urządzenia, na które może sobie pozwolić większość średnich, a nawet małych firm, gdyż ceny najprostszych modeli spadły do poziomu nawet 2000 USD.

Jednocześnie jest to sprzęt oferujący takie same, a nawet lepsze funkcje jak drogie rozwiązania sprzed kilku lat: możliwość budowania konfiguracji redundantnych, translację adresów sieciowych NAT, mechanizmy automatycznej kontroli poprawności działania systemu, a często także akcelerację przetwarzania SSL lub przełączania adresów URL.

Na rynku jest dostępna szeroka oferta tego typu systemów, o bardzo różnej funkcjonalności i wydajności. Są to zarówno oprogramowanie, jak i urządzenia (appliance) lub systemy zintegrowane w przełącznikach sieciowych.

Jednak technologie równoważenia obciążeń (load balancing) nie są dobrze znane i popularne wśród potencjalnych użytkowników, którzy przez lata przyzwyczaili się do tego, że są to drogie rozwiązania przeznaczone tylko dla najbogatszych i największych firm. Oprócz tego wybór najlepszych rozwiązań i ich efektywne wdrożenie nie jest rzeczą prostą, ponieważ wymaga zaawansowanej wiedzy o sieciach oraz mechanizmach zarządzania serwerami i aplikacjami.

Do czego służy load balancing

Równoważenie obciążeń serwerów webowych

BIG-IP 8800 to przedstawiciel najbardziej zaawansowanej serii przełączników warstw 4-7 oferowany przez F5 Networks. Producent podkreśla, że sprzęt ten jest wyposażony w praktycznie wszystkie funkcje, które mogą być przydatne dla jego użytkowników.

W najprostszej formie, load balancer to urządzenie przekierowujące żądania TCP/IP do kilku różnych serwerów i tworzące klaster webowy, który od strony użytkownika funkcjonuje jak jedna strona WWW.

Tego typu podstawowy mechanizm równoważenia obciążeń można łatwo wdrożyć, odpowiednio konfigurując serwer DNS przez dodanie do niego odpowiedniego zestawu adresów IP. Ale jest to mało użyteczne i efektywne rozwiązanie, bo żądania są przesyłane na adres IP niezależnie od tego, czy serwer pracuje czy nie, a droga zapytań nie jest optymalizowana.

Technologia load balancing była więc rozwijana w kierunku optymalizacji przepływu żądań, tak by jak najszybciej trafiały one do odpowiedniego serwera. Wykorzystywane są do tego algorytmy, które decydują gdzie skierować zapytanie, np. czy do serwera najmniej obciążonego przez aktualną liczbę obsługiwanych połączeń, czy też do tego, który najszybciej odpowiada na ping.

Producenci systemów load balancing opracowali wiele własnych zaawansowanych algorytmów i programów agenckich, które są w stanie dostarczyć szczegółowych i dokładnych informacji, w jakim stanie znajduje się serwer, jak bardzo jest aktualnie obciążony, a więc jakiej reakcji na zapytania można od niego oczekiwać.

Do diagnostyki wykorzystywane są zarówno standardowe polecenia ping - sprawdzające, czy łącze sieciowe serwera jest aktywne, jak i bardziej zaawansowane mechanizmy pozwalające kontrolować dostępność i prawidłowość odpowiedzi usług stosujących protokół HTTP lub udostępnianych przez serwery SQL.

Ale liczba funkcji, które są udostępniane przez systemy typu load balancing, może być znacznie większa. Na przykład mechanizmy zabezpieczające przed przepełnieniem bufora, atakami DoS i innymi zagrożeniami, przekierowywanie ruchu do odpowiednich klastrów serwerowych lub kompresja HTTP, buforowanie i konsolidacja żądań TCP/IP.

Równoważenie obciążeń serwerów webowych

Coyote Equalizer E550si to urządzenie do równoważenia obciążeń oferowane przez Coyote Point Systems, firmę która już w połowie lat 90. ub. wieku wprowadziła pierwsze komercyjne modele tego typu sprzętu.

Pojawia się tu pytanie, czy warto skorzystać z takich funkcji zintegrowanych w urządzeniu do równoważenia obciążeń, zwłaszcza gdy użytkownik już wcześniej zainstalował je niezależnie w swoim systemie. Generalnie, funkcje związane z optymalizacją ruchu WAN, a także obsługi protokołu SSL, są niewątpliwie przydatne. Natomiast użyteczność funkcji zapory firewall, filtrowania spamu lub akceleracji transmisji danych między różnymi lokalizacjami jest mniejsza, ponieważ z reguły można je lepiej i wydajniej wdrożyć, korzystając z innych specjalizowanych urządzeń i oprogramowania.

Systemy do równoważenia obciążeń można podzielić na dwie podstawowe kategorie: oprogramowanie oferowane również w formie appliances, wykorzystujących standardowe platformy programowe i sprzętowe (Linux, Windows, i86), oraz rozwiązania zintegrowane z przełącznikami, pracujące pod kontrolą firmowych systemów operacyjnych.

Zaletą tych pierwszych jest łatwiejsza możliwość modyfikacji lub dodawania nowych funkcji, a wadą z reguły mniejsza wydajność.

W przypadku oprogramowania zintegrowanego z przełącznikami, funkcje load balancing są dostępne na wszystkich portach, toteż wydajność zależy od ich liczby. Poza tym producent z reguły tak dopasowuje moc przetwarzania sprzętu, aby mechanizmy równoważenia obciążeń nie były jego wąskim gardłem.

Zamiast kupować urządzenia appliance lub przełącznik, można zainstalować w serwerze oprogramowanie load balancing, takie jak WSLB (Windows Server Load Balancing), IPVS (IP Virtual Server) lub BalanceNG dla Linux. Jak jednak zauważają specjaliści, czas pracy administratora niezbędny do prawidłowej konfiguracji i zarządzania takim systemem jest często więcej wart niż sam load balancer.

Najważniejsze rodzaje funkcji

Równoważenie obciążeń serwerów webowych

Urządzenia Citrix NetScaler oferują chyba największą liczbę funkcji wśród urządzeń do równoważenia obciążeń dostępnych na rynku.

Urządzenia do równoważenia obciążeń serwerów mogą być wyposażone w dużą liczbę różnego rodzaju funkcji, np. przechowywanie plików cookie, przetwarzanie nagłówków HTTP w czasie rzeczywistym itp. Dlatego też przed wyborem sprzętu lub oprogramowania warto przeanalizować, które mają największe znaczenie w konkretnym systemie, poza oczywiście typowymi funkcjami, w które są wyposażane praktycznie wszystkie urządzenia, takimi jak dystrybucja pakietów z wirtualnych portów i adresów IP czy kontrola czasu odpowiedzi serwerów na żądania.

Kontrola plików cookie

Równoważenie obciążeń serwerów webowych
Jest to bardzo ważna funkcja (cookie persistence), która umożliwia zwiększenie szybkości dostępu do internetu, bo większość żądań użytkowników może zostać obsłużona przez pojedynczy serwer webowy, bez konieczności ich przełączania na inne strony.

W przypadku interaktywnych serwisów WWW jest ona w praktyce niezbędna do efektywnej pracy, ponieważ serwery mogą wówczas przechowywać informacje dotyczące sesji, takie jak login i hasło, nie udostępniając ich innym serwerom. Bez niej, gdyby użytkownik został przełączony na stronę obsługiwaną przez inny serwer, musiałby potem ponownie się logować.

Dwie podstawowe metody obsługi połączeń wykorzystywane przez urządzenia do równoważenia obciążeń, polegają na kontroli źródłowych adresów IP lub właśnie plików cookie. W pierwszym przypadku load balancer śledzi nadchodzące żądania na podstawie ich adresu IP, a w drugim sprawdza pliki HTTP cookie, by odróżnić użytkowników serwisu.

W ruchu z użyciem HTTP ta druga metoda jest z reguły najlepsza, bo względnie łatwa w konfiguracji i nie stwarza problemów związanych ze śledzeniem adresów IP dużych routerów lub serwerów proxy, które mogą obsługiwać tysiące użytkowników identyfikowanych przez jeden adres IP. Ale jeśli obsługiwane mają być inne protokoły niż HTTP, to kontrola adresów IP jest jedyną skuteczną metodą.

Nawet jeżeli kontrola ruchu HTTP nie jest aktualnie ważną funkcją, to warto żeby load balancer ją obsługiwał, bo z jednej strony może się już wkrótce okazać przydatna, a z drugiej - praktycznie nic nie kosztuje (ceny urządzeń wyposażonych w nią są prawie takie same jak innych). Niektórzy producenci twierdzą jednak, że obsługa plików cookie nie jest potrzebna, a tworzenie aplikacji, które ich wymagają, jest przykładem złego projektowania.

Podstawowe kryteria wyboru systemu do równoważenia obciążeń serwerów

Zestaw funkcji

Jakie funkcje systemu mogą być potrzebne w praktyce i czy oferuje je dany producent.

Rzeczywista cena systemu

Warto przeanalizować, ile kosztuje samo urządzenie, a jaki jest koszt wsparcia technicznego i utrzymania systemu.

Wydajność i skalowalność

Przed decyzją zakupu należy sprawdzić i upewnić się nie tylko, czy urządzenie będzie w stanie obsłużyć obecny ruch sieciowy, ale również czy umożliwi skalowanie wydajności w miarę jego wzrostu w przewidywalnej przyszłości.

Integracja z istniejącą infrastrukturą

Warto upewnić się, czy dane urządzenie będzie współpracować z istniejącym systemem IT oraz oprogramowaniem, a także czy nie pojawią się problemy dotyczące wsparcia ze strony producentów sprzętu i aplikacji.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200