Opsio - Cloud and AI Solutions
Compliance5 min czytania· 1247 słów

Czym jest szybka elastyczność w chmurze obliczeniowej? Definicja NIST i przykłady

Fredrik Karlsson
Fredrik Karlsson

Group COO & CISO

Opublikowano: ·Zaktualizowano:
Przetłumaczone z angielskiego i zweryfikowane przez zespół redakcyjny Opsio. Zobacz oryginał →

Szybka elastyczność to zdolność chmury do szybkiego przydzielania i zwalniania zasobów, często automatycznie, tak aby zasoby rosły i malały zgodnie z popytem. NIST wymienia ją jako jedną z pięciu podstawowych cech chmury obliczeniowej. Dla użytkownika dostępne zasoby wydają się nieograniczone i można je pobrać w dowolnej ilości w dowolnym momencie, a potem oddać.

Najważniejsze wnioski

  • NIST SP 800-145 definiuje ją jako możliwości, które „mogą być elastycznie przydzielane i zwalniane, w niektórych przypadkach automatycznie, aby szybko skalować się na zewnątrz i do wewnątrz stosownie do popytu".
  • Liczą się oba kierunki. Zwalnianie zasobów, gdy popyt spada, zamienia elastyczność w oszczędności.
  • W praktyce dostarcza ją auto scaling: metryki, polityki skalowania, limity minimalne i maksymalne oraz load balancer.
  • Elastyczność jest krótkoterminowa i automatyczna; skalowalność to długoterminowa zdolność wzrostu. Obciążenie w chmurze potrzebuje obu.
  • Działa tylko wtedy, gdy aplikacja jest do tego zbudowana: bezstanowe serwery, zewnętrzne przechowywanie sesji i baza danych, która nadąży.

Definicja NIST słowo w słowo

Amerykański National Institute of Standards and Technology napisał definicję, z której korzysta większość podręczników i egzaminów certyfikacyjnych. W dokumencie NIST Special Publication 800-145, The NIST Definition of Cloud Computing brzmi ona (w tłumaczeniu):

„Możliwości mogą być elastycznie przydzielane i zwalniane, w niektórych przypadkach automatycznie, aby szybko skalować się na zewnątrz i do wewnątrz stosownie do popytu. Dla konsumenta możliwości dostępne do przydziału często wydają się nieograniczone i mogą być pobrane w dowolnej ilości w dowolnym momencie."

Pozostałe cztery podstawowe cechy to samoobsługa na żądanie, szeroki dostęp sieciowy, pula zasobów i mierzalna usługa. Każde sformułowanie w definicji ma praktyczne znaczenie:

  • „Przydzielane i zwalniane": zasoby wracają, nie tylko rosną. System, który tylko rośnie, jest skalowalny, ale nie elastyczny.
  • „W niektórych przypadkach automatycznie": automatyzacja jest częsta, ale nie wymagana. Osoba, która klika „dodaj pięć serwerów" i dostaje je w kilka minut, nadal spełnia definicję.
  • „Na zewnątrz i do wewnątrz": definicja opisuje skalowanie poziome, czyli dodawanie i usuwanie instancji, a nie zmianę rozmiaru jednej maszyny.
  • „Stosownie do popytu": zasoby powinny nadążać za rzeczywistym obciążeniem, a nie za prognozą sprzed miesięcy.
  • „Wydają się nieograniczone": pula dostawcy jest tak duża, że pojedynczy klient rzadko dochodzi do jej krawędzi, choć limity konta nadal obowiązują.

Jak to działa w praktyce?

Dostawcy chmury zapewniają elastyczność przez usługi auto scaling. Na przykład AWS Auto Scaling „monitoruje Twoje aplikacje i automatycznie dostosowuje zasoby, aby utrzymać stałą, przewidywalną wydajność przy możliwie najniższym koszcie". Azure i Google Cloud oferują równoważne usługi dla grup maszyn wirtualnych, kontenerów i baz danych.

Typowa konfiguracja ma pięć elementów:

  1. Metryki, takie jak użycie CPU, liczba żądań na cel lub długość kolejki, zbierane co minutę lub szybciej.
  2. Polityki, które mówią, kiedy działać: utrzymuj CPU około 50%, dodaj dwie instancje, gdy kolejka przekroczy próg, lub dodawaj zasoby w każdy dzień roboczy o 08:00.
  3. Limity: minimum zapewniające dostępność i maksimum ograniczające koszt.
  4. Provisioning z szablonu lub obrazu, aby nowe instancje były identyczne i szybko startowały.
  5. Load balancer, który kieruje ruch do nowych instancji po przejściu kontroli stanu i opróżnia je przed usunięciem.

Azure Well-Architected Framework Microsoftu wskazuje konsekwencję projektową: skalowanie maszyn wirtualnych na zewnątrz „wymaga oddzielnego load balancera, obsługi żądań klientów i stanu przechowywanego na zewnątrz". Elastyczność jest cechą projektu aplikacji w takim samym stopniu jak funkcją platformy.

Szybka elastyczność a skalowalność

Skalowalność to pytanie, czy system poradzi sobie z większym obciążeniem po dodaniu zasobów. Elastyczność to pytanie, czy zdobywa i zwalnia te zasoby szybko i automatycznie, gdy obciążenie się zmienia.

SkalowalnośćElastyczność
Horyzont czasowyWzrost długoterminowyMinuty do godzin
KierunekGłównie w góręNa zewnątrz i z powrotem do wewnątrz
Typowy wyzwalaczRozwój biznesu, nowe rynkiSkoki ruchu, wzorce dzienne i sezonowe
Główna korzyśćBrak przebudowy przy wzrościeWydajność w szczycie, niższy koszt poza nim

Widok na opcje z perspektywy przedsiębiorstwa, w tym grupy auto scaling maszyn wirtualnych, kontenery i serverless, znajdziesz w naszym przewodniku o elastycznej skalowalności w chmurze obliczeniowej.

Przykłady

  • Wyprzedaże w handlu detalicznym. Sklep internetowy skaluje warstwę webową i kasową na zewnątrz na kampanię Black Friday, a tydzień później wraca do normy.
  • Firmy sezonowe. Serwisy rezerwacji i kamer internetowych ośrodka narciarskiego obsługują większość ruchu w kilku zimowych miesiącach.
  • Premiery medialne. Serwis streamingowy lub informacyjny dodaje zasoby, gdy popularna premiera lub pilna wiadomość wywołuje skok ruchu.
  • Analityka wsadowa. Zespół finansowy uruchamia raporty na koniec miesiąca na setkach rdzeni przez godzinę zamiast na kilku serwerach przez kilka dni.
  • Rozwój i testy. Środowiska testowe startują na potrzeby testu obciążeniowego lub pull requesta i są potem usuwane.

Przypadek sezonowy jest prawdziwy dla klienta Opsio, Branäsgruppen, jednej z największych grup ośrodków narciarskich w Szwecji, z nawet 15 000 narciarzy dziennie w szczycie. Jej środowisko VMware on-premises trzeba było skalować ręcznie przed każdym szczytem popytu, a do tego czasu wydajność spadała. Po przeniesieniu do AWS studium przypadku Branäsgruppen opisuje warstwy frontendu webowego, middleware i bazy danych, które teraz rozszerzają się i kurczą automatycznie wraz z sezonowym popytem.

Korzyści i ograniczenia

Korzyści są bezpośrednie: płacisz za zasoby szczytowe tylko w szczycie, użytkownicy dostają stałe czasy odpowiedzi i nikt nie musi ręcznie dodawać serwerów przed kampanią.

Ograniczenia są równie praktyczne:

  • Czas uruchomienia. Nowe maszyny wirtualne potrzebują czasu na start i rozgrzanie. Bardzo gwałtowne skoki wymagają zapasu, wstępnie rozgrzanych zasobów lub serverless.
  • Warstwa danych. Serwery webowe skalują się łatwo; relacyjne bazy danych nie. Zaplanuj repliki odczytu, cache lub zarządzaną bazę danych, która się skaluje.
  • Limity. Limity konta na instancje lub współbieżność mogą zatrzymać skalowanie na zewnątrz. Podnieś je przed znanymi szczytami.
  • Niespodzianki kosztowe. Błąd lub ruch botów może szybko przeskalować Cię na zewnątrz. Zawsze ustawiaj maksimum i alerty budżetowe.
  • Licencje. Oprogramowanie licencjonowane na serwer lub rdzeń może nie dopuszczać krótko żyjących instancji.

Czy Twoje obciążenie to ma? Szybki test

  • Czy dowolny pojedynczy serwer można zakończyć bez utraty sesji lub danych przez użytkowników?
  • Czy istnieje polityka skalowania z przetestowanymi limitami minimalnymi i maksymalnymi?
  • Czy zasoby faktycznie maleją po szczycie? Sprawdź wykres liczby instancji z zeszłego miesiąca.
  • Czy baza danych była testowana obciążeniowo przy ruchu szczytowym, a nie tylko warstwa webowa?
  • Czy limity usług są wystarczająco wysokie na Twój największy spodziewany szczyt?

Jeśli kilka odpowiedzi brzmi „nie", obciążenie jest hostowane w chmurze, ale jeszcze nie jest elastyczne. Zespoły usługi zarządzanej AWS i doradztwa chmurowego Opsio przeglądają i usuwają te luki w ramach prac nad architekturą.

Najczęściej zadawane pytania

Czym jest szybka elastyczność w chmurze obliczeniowej?

To jedna z pięciu podstawowych cech chmury obliczeniowej zdefiniowanych przez NIST: zasoby można przydzielać i zwalniać szybko, czasem automatycznie, aby skalować się na zewnątrz i do wewnątrz zgodnie z popytem, a dla użytkownika wydają się nieograniczone.

Jaki jest przykład szybkiej elastyczności?

Sklep internetowy, który w zwykły dzień uruchamia cztery serwery webowe, w czasie kampanii wyprzedażowej automatycznie skaluje się do dwudziestu, a po jej zakończeniu wraca do czterech. Za dodatkowe szesnaście serwerów płaci tylko wtedy, gdy działają.

Jaka jest różnica między elastycznością a skalowalnością?

Skalowalność to zdolność obsługi większego obciążenia przez dodanie zasobów, zwykle w długim okresie. Elastyczność to dodawanie i usuwanie tych zasobów szybko, często automatycznie, gdy popyt rośnie i maleje.

Czy szybka elastyczność to to samo co auto scaling?

Nie do końca. Elastyczność jest cechą; auto scaling to najczęstszy sposób jej realizacji. Definicja NIST mówi, że przydzielanie odbywa się „w niektórych przypadkach automatycznie", więc szybkie skalowanie ręczne też się liczy, ale w praktyce zespoły chmurowe je automatyzują.

Dlaczego elastyczność jest ważna w chmurze obliczeniowej?

Ponieważ usuwa wybór między płaceniem za nieużywane zasoby a brakiem zasobów w szczycie. Dobierasz rozmiar do dzisiejszego popytu, skalujesz na zewnątrz, gdy rośnie, i z powrotem do wewnątrz, gdy maleje.

Powiązane artykuły

Autor

Fredrik Karlsson
Fredrik Karlsson

Group COO & CISO

Fredrik jest COO i CISO grupy w Opsio. Koncentruje się na doskonałości operacyjnej, ładzie korporacyjnym i bezpieczeństwie informacji, ściśle współpracując z zespołami dostawczymi i kierowniczymi w celu uzgodnienia technologii, ryzyka i wyników biznesowych w złożonych środowiskach IT. Kieruje praktyką bezpieczeństwa Opsio, obejmującą usługi SOC, testy penetracyjne i ramy zgodności.

Zasady redakcyjne: Artykuł napisał wskazany powyżej specjalista od chmury. Aktualizujemy go, gdy zmienia się opisywana technologia lub regulacja; daty na tej stronie pokazują ostatnią aktualizację. Opsio zachowuje niezależność redakcyjną.