Co to jest Load Balancing i jak może pomóc w Twoim biznesie?
sukcesem aplikacji internetowej wiąże się wzrost ruchu i większe potrzeby co do zasobów obliczeniowych. Jak wytłumaczyliśmy ostatnio, można je dodać do tego samego „pojemnika” na aplikacje (skalowanie wertykalne – wzwyż), albo powołać do życia kolejne (skalowanie horyzontalne – wszerz), co niesie ze sobą wiele zalet. Jak to zwykle bywa, dodatkowe korzyści generują wyzwania. Tym może jednak sprostać Load Balancer. Co to jest?
Skalowanie aplikacji bywa problematyczne
O ile czasochłonność czynności administracyjnych i aspekt finansowy przemawiają na rzecz skalowania horyzontalnego, to pozostaje jeszcze dostosowanie samego oprogramowania. Tu niestety nie ma niespodzianki – jest to praca, którą trzeba wykonać. Programy napisane dłuższy czas temu mogą wymagać gruntownych zmian, czasem kończących się przepisaniem ich fragmentów od nowa.
Często usługa skalowania horyzontalnego rozbita jest na wiele programów składowych, z których część będzie podlegać skalowaniu wszerz, a część nie. Na szczęście współczesna informatyka wypracowała gotowe podejścia tworzenia aplikacji w pełni korzystających z dobrodziejstw chmury (tzw. cloud native).
Load Balancer działa niczym krupier przy karcianym stoliku
Niezależnie, czy mamy do czynienia z aplikacją przebudowaną w kierunku skalowania horyzontalnego, czy też nową, od początku pisaną w tym duchu – potrzebny jest sposób podziału zadań pomiędzy wiele instancji aplikacji. Wyobraźmy sobie, że jest uruchomionych dziesięć kopii aplikacji obsługującej sklep internetowy.
Klient chce wyświetlić stronę interesującego go produktu. Do której z dziesięciu instancji skalowanej aplikacji powinno trafić to zapytanie? To zagadnienie na tyle powtarzalne, że doczekało się gotowego narzędzia: Load Balancer. A w zasadzie kategorii narzędzi, bo jest wiele implementacji dających się stosować zamiennie, chociaż każdy ma swoje mocne strony i dodatkowe funkcjonalności. Ale czym jest Loadbalancer i Load Balancing?
Load Balancer – co to jest?
W najprostszym scenariuszu taki Load Balancer odbiera zapytania od użytkowników strony internetowej i kieruje na przemian do różnych instancji aplikacji, żeby były na równi obciążone (stąd nazwa), a następnie zwraca odpowiedzi użytkownikom. Co się stanie, jeśli nasz przykładowy użytkownik zdecyduje się na zakup produktu, gdy Load Balancing „pracuje”? Kliknięcie przycisku „kup” wygeneruje nowe żądanie, które Load Balancer może skierować do innej instancji niż poprzednio.
Zapewnienie spójnego stanu wiedzy o użytkowniku, w tym o zawartości jego koszyka pomiędzy wieloma kopiami aplikacji – to już wspomniane wcześniej jej dostosowanie z odpowiednim użyciem bazy danych. Na marginesie dodajmy jeszcze, że Load Balancer może również kontrolować „stan zdrowia” instancji aplikacji – w razie gdyby któraś kopia programu się zawiesiła, nie będzie jej przydzielał nowych żądań. Odporność na błędy oprogramowania jest zaletą Load Balancingu nie do przecenienia.
Load Balancing to rozwiązanie dla każdego
Jak wspomnieliśmy, chmura Integrated Computing Standard do skalowania wertykalnego oferuje funkcję „hot add”. Natomiast dla właścicieli aplikacji używających skalowania horyzontalnego miłym zaskoczeniem może być fakt, że nie trzeba instalować własnego Load Balancera. Load Balancing jest dostępny bezpłatnie, jako wbudowana część chmury.