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:
- Metryki, takie jak użycie CPU, liczba żądań na cel lub długość kolejki, zbierane co minutę lub szybciej.
- 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.
- Limity: minimum zapewniające dostępność i maksimum ograniczające koszt.
- Provisioning z szablonu lub obrazu, aby nowe instancje były identyczne i szybko startowały.
- 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 czasowy | Wzrost długoterminowy | Minuty do godzin |
| Kierunek | Głównie w górę | Na zewnątrz i z powrotem do wewnątrz |
| Typowy wyzwalacz | Rozwój biznesu, nowe rynki | Skoki ruchu, wzorce dzienne i sezonowe |
| Główna korzyść | Brak przebudowy przy wzroście | Wydajność 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

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