Automatyczne skalowanie

Automatyczne skalowanie , pisane również jako automatyczne skalowanie lub automatyczne skalowanie , a czasami nazywane także automatycznym skalowaniem , to metoda stosowana w przetwarzaniu w chmurze , która dynamicznie dostosowuje ilość zasobów obliczeniowych w farmie serwerów - zazwyczaj mierzoną liczbą aktywnych serwerów - automatycznie na podstawie obciążenie w gospodarstwie. Na przykład liczba serwerów działających za aplikacją internetową może być automatycznie zwiększana lub zmniejszana w zależności od liczby aktywnych użytkowników w witrynie. Ponieważ takie wskaźniki mogą zmieniać się radykalnie w ciągu dnia, a serwery są ograniczonym zasobem, którego działanie kosztuje nawet w stanie bezczynności, często istnieje zachęta do uruchamiania serwerów „tylko tyle”, aby obsłużyć bieżące obciążenie, a jednocześnie nadal być w stanie wspierać nagłe i duże skoki aktywności. Automatyczne skalowanie jest pomocne w takich przypadkach, ponieważ może zmniejszyć liczbę aktywnych serwerów, gdy aktywność jest niska, i uruchamiać nowe serwery, gdy aktywność jest wysoka. Automatyczne skalowanie jest ściśle związane z ideą równoważenia obciążenia i na niej się opiera .

Zalety

Skalowanie automatyczne ma następujące zalety:

  • W przypadku firm posiadających własną infrastrukturę serwerów sieciowych automatyczne skalowanie zazwyczaj oznacza uśpienie niektórych serwerów w okresach niskiego obciążenia, co pozwala zaoszczędzić na kosztach energii elektrycznej (a także kosztów wody, jeśli woda jest używana do chłodzenia maszyn).
  • W przypadku firm korzystających z infrastruktury hostowanej w chmurze automatyczne skalowanie może oznaczać niższe rachunki, ponieważ większość dostawców chmury pobiera opłaty na podstawie całkowitego wykorzystania, a nie maksymalnej pojemności.
  • Nawet w przypadku firm, które nie mogą zmniejszyć całkowitej mocy obliczeniowej, którą obsługują lub za którą płacą w danym momencie, automatyczne skalowanie może pomóc, umożliwiając firmie uruchamianie mniej wrażliwych na czas obciążeń na maszynach, które są zwalniane przez automatyczne skalowanie w okresach małego ruchu.
  • Rozwiązania do automatycznego skalowania, takie jak oferowane przez Amazon Web Services, mogą również zająć się zastępowaniem niezdrowych instancji, a tym samym w pewnym stopniu chronić przed awariami sprzętu, sieci i aplikacji.
  • Automatyczne skalowanie może zapewnić dłuższy czas sprawności i większą dostępność w przypadkach, gdy obciążenia produkcyjne są zmienne i nieprzewidywalne.

Automatyczne skalowanie różni się od stałego dziennego, tygodniowego lub rocznego cyklu użytkowania serwera tym, że reaguje na rzeczywiste wzorce użytkowania, a tym samym zmniejsza potencjalne wady posiadania zbyt małej lub zbyt dużej liczby serwerów w stosunku do obciążenia ruchem. Na przykład, jeśli ruch jest zwykle mniejszy o północy, rozwiązanie do skalowania statycznego może zaplanować uśpienie niektórych serwerów w nocy, ale może to spowodować przestoje w nocy, kiedy ludzie częściej korzystają z Internetu (na przykład z powodu wirusa wydarzenie informacyjne). Z drugiej strony skalowanie automatyczne może lepiej radzić sobie z nieoczekiwanymi skokami ruchu.

Terminologia

W poniższym zestawieniu używamy terminologii używanej przez Amazon Web Services (AWS). Jednak alternatywne nazwy są odnotowywane, a terminologia specyficzna dla nazw usług Amazon nie jest używana w nazwach.

Nazwa (używana w AWS, o ile nie zaznaczono inaczej) Oznaczający Nazwy alternatywne (używane w Google Cloud Platform, Microsoft Azure lub innych platformach)
Instancja Pojedynczy serwer lub maszyna należąca do grupy maszyn podlegających autoskalowaniu
Grupa autoskalowania Zbiór instancji podlegających skalowaniu automatycznemu wraz ze wszystkimi powiązanymi zasadami i informacjami o stanie Zarządzana grupa instancji (Google Cloud Platform)
Rozmiar Liczba instancji należących obecnie do grupy skalowania automatycznego
Żądana pojemność (lub żądany rozmiar) Liczba wystąpień, które powinna mieć grupa skalowania automatycznego w dowolnym momencie. Jeśli rozmiar jest mniejszy niż żądany, grupa skalowania automatycznego spróbuje uruchomić (obsługiwać i dołączać) nowe instancje. Jeśli rozmiar jest większy niż żądany, grupa autoskalowania spróbuje usunąć (odłączyć i zakończyć) instancje
Minimalny rozmiar Liczba przypadków, poniżej których pożądana pojemność nie może spaść
Największy rozmiar Liczba przypadków, powyżej których pożądana pojemność nie może wzrosnąć
Metryczny Pomiar (taki jak wykorzystanie procesora, pamięci, sieci) powiązany z grupą autoskalowania, dla której regularnie generowany jest szereg czasowy punktów danych. Progi dla metryk mogą służyć do ustawiania zasad automatycznego skalowania. Metryki mogą być oparte na agregatach metryk dla instancji grupy autoskalowania lub na podstawie systemów równoważenia obciążenia powiązanych z grupą autoskalowania
Zasady skalowania (lub zasady automatycznego skalowania) Zasady, które określają zmianę pożądanej pojemności grupy skalowania automatycznego (lub czasami jej minimalnej i maksymalnej wielkości) w odpowiedzi na metryki przekraczające określone progi. Zasady skalowania mogą mieć skojarzone okresy przestoju, które uniemożliwiają wykonanie dodatkowych akcji skalowania natychmiast po określonej akcji skalowania. Zmiany żądanej pojemności mogą być stopniowe (zwiększać lub zmniejszać o określoną liczbę) lub określać nową wartość żądanej pojemności. Zasady, które zwiększają pożądaną pojemność, nazywane są zasadami „skalowania w poziomie” lub „skalowania w górę”, a zasady, które zmniejszają pożądaną pojemność, nazywane są zasadami „skalowania w górę” lub „skalowania w dół”
Kontrola zdrowia Sposób, w jaki grupa autoskalowania może określić, czy dołączone do niej instancje działają prawidłowo. Kontrola stanu może opierać się na tym, czy instancja nadal istnieje i jest osiągalna, lub może opierać się na tym, czy instancja jest nadal zarejestrowana i działa z powiązanym systemem równoważenia obciążenia
Uruchom konfigurację Opis parametrów i skryptów używanych podczas uruchamiania nowej instancji. Obejmuje to typ instancji, opcje zakupu (takie jak na miejscu lub na żądanie w przypadku AWS), możliwe strefy dostępności do uruchomienia, obraz maszyny i skrypty uruchamiane podczas uruchamiania Szablon instancji (Google Cloud Platform)
Skalowanie ręczne Akcja skalowania wykonywana ręcznie
Zaplanowane skalowanie Zasady skalowania, które są wykonywane w określonym czasie, na przykład o porze dnia, tygodnia, miesiąca lub roku. Zobacz #Zaplanowane skalowanie, aby uzyskać więcej informacji

Ćwiczyć

Usługi sieciowe Amazon (AWS)

Auto-scaling

Amazon Web Services uruchomił usługę Amazon Elastic Compute Cloud (EC2) w sierpniu 2006 r., która umożliwiła programistom programowe tworzenie i kończenie instancji (maszyn). W momencie pierwszego uruchomienia AWS nie oferował automatycznego skalowania, ale możliwość programowego tworzenia i kończenia instancji dawała programistom elastyczność w pisaniu własnego kodu do automatycznego skalowania.

Oprogramowanie do automatycznego skalowania innych firm dla AWS zaczęło pojawiać się około kwietnia 2008 r. Obejmowały one narzędzia Scalr i RightScale. RightScale był używany przez Animoto, który był w stanie obsłużyć ruch na Facebooku, przyjmując automatyczne skalowanie.

18 maja 2009 r. Amazon uruchomił własną funkcję automatycznego skalowania wraz z Elastic Load Balancing jako część Amazon Elastic Compute Cloud . Automatyczne skalowanie jest teraz integralną częścią oferty Amazon EC2. Automatyczne skalowanie w Amazon Web Services odbywa się za pomocą przeglądarki internetowej lub narzędzia wiersza poleceń. W maju 2016 autoskalowanie zostało również zaoferowane w usłudze AWS ECS.

Dostawca wideo na żądanie, Netflix, udokumentował wykorzystanie automatycznego skalowania w Amazon Web Services w celu zaspokojenia bardzo zmiennych potrzeb konsumentów. Odkryli, że agresywne skalowanie w górę oraz opóźnione i ostrożne zmniejszanie skali najlepiej służyło ich celom, jakim jest czas pracy bez przestojów i szybkość reakcji.

W artykule dla TechCrunch Zev Laderman, współzałożyciel i dyrektor generalny Newvem, usługi pomagającej zoptymalizować infrastrukturę chmurową AWS, zalecił startupom korzystanie z autoskalowania w celu utrzymania niskich kosztów Amazon Web Services.

Różne przewodniki po najlepszych praktykach dotyczących korzystania z AWS sugerują korzystanie z funkcji automatycznego skalowania nawet w przypadkach, gdy obciążenie nie jest zmienne. Dzieje się tak dlatego, że skalowanie automatyczne oferuje dwie inne korzyści: automatyczną wymianę wszelkich instancji, które z jakiegokolwiek powodu stają się niesprawne (takie jak awaria sprzętu, awaria sieci lub błąd aplikacji) oraz automatyczne zastępowanie instancji dodatkowych, które zostały przerwane z powodu ceny lub pojemności, dzięki czemu bardziej opłacalne jest używanie instancji dodatkowych do celów produkcyjnych. Wewnętrzne najlepsze praktyki Netflix wymagają, aby każda instancja znajdowała się w grupie autoskalowania, a jej małpa zgodności przerywa każdą instancję, która nie należy do grupy autoskalowania, aby wyegzekwować tę najlepszą praktykę.

Microsoft Windows Azure

27 czerwca 2013 r. Microsoft ogłosił, że dodaje obsługę automatycznego skalowania do swojej platformy przetwarzania w chmurze Windows Azure . Dokumentacja funkcji jest dostępna w witrynie Microsoft Developer Network .

Chmura Oracle

Oracle Cloud Platform umożliwia instancjom serwerów automatyczne skalowanie klastra w górę lub w dół poprzez zdefiniowanie reguły automatycznego skalowania. Reguły te są oparte na wykorzystaniu procesora i/lub pamięci i określają, kiedy dodawać lub usuwać węzły.

Platforma Google Cloud

17 listopada 2014 r. Google Compute Engine ogłosił publiczną wersję beta swojej funkcji automatycznego skalowania do użytku w aplikacjach Google Cloud Platform . Od marca 2015 r. narzędzie do automatycznego skalowania jest nadal w wersji beta.

Facebook

W poście na blogu w sierpniu 2014 r. inżynier Facebooka ujawnił, że firma zaczęła stosować automatyczne skalowanie w celu obniżenia kosztów energii. W poście na blogu odnotowano 27% spadek zużycia energii w godzinach o niskim natężeniu ruchu (około północy) oraz 10-15% spadek zużycia energii w typowym cyklu 24-godzinnym.

Kubernetes Poziome automatyczne skalowanie podów

Kubernetes Horizontal Pod Autoscaler automatycznie skaluje liczbę podów w kontrolerze replikacji , wdrożeniu lub zestawie replik na podstawie zaobserwowanego wykorzystania procesora (lub, z obsługą wersji beta, na podstawie innych wskaźników dostarczonych przez aplikację )

Alternatywne podejścia decyzyjne oparte na automatycznym skalowaniu

Automatyczne skalowanie domyślnie wykorzystuje reaktywne podejście decyzyjne do skalowania ruchu: skalowanie odbywa się tylko w odpowiedzi na zmiany metryk w czasie rzeczywistym. W niektórych przypadkach, zwłaszcza gdy zmiany następują bardzo szybko, takie reaktywne podejście do skalowania jest niewystarczające. Poniżej opisano dwa inne rodzaje podejść decyzyjnych opartych na automatycznym skalowaniu.

Zaplanowane podejście do automatycznego skalowania

Jest to podejście do skalowania automatycznego, w którym w określonych porach dnia wprowadzane są zmiany minimalnego rozmiaru, maksymalnego rozmiaru lub żądanej pojemności grupy skalowania automatycznego. Zaplanowane skalowanie jest przydatne na przykład wtedy, gdy znany jest wzrost lub spadek natężenia ruchu w określonych porach dnia, ale zmiana jest zbyt nagła, aby reaktywne podejście oparte na automatycznym skalowaniu mogło zareagować wystarczająco szybko. Grupy skalowania automatycznego AWS obsługują zaplanowane skalowanie.

Automatyczne skalowanie predykcyjne

To podejście do automatycznego skalowania wykorzystuje analizę predykcyjną . Pomysł polega na połączeniu najnowszych trendów użytkowania z historycznymi danymi użytkowania, a także innymi rodzajami danych w celu przewidywania użycia w przyszłości i automatycznego skalowania na podstawie tych prognoz.

W przypadku części ich infrastruktury i określonych obciążeń firma Netflix stwierdziła, że ​​Scryer, ich mechanizm analizy predykcyjnej, dał lepsze wyniki niż reaktywne podejście automatycznego skalowania firmy Amazon. W szczególności było to lepsze dla:

  • Identyfikowanie ogromnych skoków popytu w najbliższej przyszłości i przygotowywanie pojemności z pewnym wyprzedzeniem
  • Radzenie sobie z awariami na dużą skalę, takimi jak awarie całych stref dostępności i regionów
  • Radzenie sobie ze zmiennymi wzorcami ruchu, zapewniając większą elastyczność tempa skalowania w górę lub w górę w oparciu o typowy poziom i tempo zmian popytu w różnych porach dnia

20 listopada 2018 r. AWS ogłosił, że skalowanie predykcyjne będzie dostępne w ramach oferty automatycznego skalowania.

Zobacz też