Load Balancing
Cloud

Load Balancing

7 czerwca 2021

Z sukcesem aplikacji internetowej wiąże się wzrost ruchu i większe potrzeby co do zasobów obliczeniowych. Jak wytłumaczyliśmy ostatnio, takie zasoby można 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, z dodatkowymi korzyściami wiążą się wyzwania. Na szczęście ścieżka jest już przetarta.

 

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 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).

 

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 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.

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 po równi obciążone (stąd nazwa), a następnie zwraca odpowiedzi użytkownikom. Co stanie się jeśli nasz przykładowy użytkownik zdecyduje się na zakup produktu? 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ą nie do przecenienia.

 

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. Taka funkcja jest dostępna bezpłatnie, jako wbudowana część chmury.

 

Jak w praktyce skonfigurować Load Balancer? Pokazuje to odcinek 12 Wideo Przewodnika po Integrated Computing Standard

Tagi

Mogą Cię również zainteresować

  • Chmura elastyczna w wielu wymiarach, w skrócie: IaaS

    Chmura elastyczna w wielu wymiarach, w skrócie: IaaS
    Chmura elastyczna w wielu wymiarach, w skrócie: IaaS

    Cloud

    Cloud

    Budując firmową serwerownię, trudno przewidzieć zasoby, jakich będziemy potrzebowali za pięć lat czy nawet za rok. Oczywiście, można stworzyć serwerownię „z zapasem”, ale czy warto […]

  • Warsaw Data Hub – najnowocześniejsze w Polsce Centrum Obliczeniowe

    Warsaw Data Hub – najnowocześniejsze w Polsce Centrum Obliczeniowe
    Warsaw Data Hub – najnowocześniejsze w Polsce Centrum Obliczeniowe

    Cloud

    Cloud

    Centrum Obliczeniowe, Data Center, Chmura – wszyscy o tym mówią, niewielu miało okazję poznać. Choć są niewidoczne, w praktyce są „kręgosłupem” chmury […]