Elastyczność (przetwarzanie w chmurze)
W przetwarzaniu w chmurze elastyczność jest definiowana jako „stopień, w jakim system jest w stanie przystosować się do zmian obciążenia pracą poprzez dostarczanie i zwalnianie zasobów w sposób autonomiczny, tak aby w każdym momencie dostępne zasoby odpowiadały bieżącemu zapotrzebowaniu tak ściśle , jak to możliwe". Elastyczność to cecha definiująca, która odróżnia cloud computing od wcześniej proponowanych paradygmatów obliczeniowych, takich jak grid computing . Dynamiczna adaptacja pojemności, np. poprzez zmianę wykorzystania zasobów obliczeniowych, w celu sprostania zmiennemu obciążeniu pracą, nazywana jest „przetwarzaniem elastycznym”.
Przykład
Zilustrujmy elastyczność na prostym przykładzie usługodawcy, który chce uruchomić stronę internetową w chmurze IaaS . W chwili jest niepopularna, a pojedyncza maszyna (najczęściej maszyna wirtualna ) wystarcza do obsługi wszystkich użytkowników sieci. W witryna nagle staje się popularna, na przykład w wyniku flashowego tłumu , a maszyna nie wystarcza już do obsługi wszystkich użytkowników Biorąc pod uwagę liczbę użytkowników sieci jednocześnie uzyskujących dostęp do witryny oraz wymagania dotyczące zasobów serwera sieciowego , może być potrzebnych dziesięć komputerów. Elastyczny system powinien natychmiast wykryć ten stan i udostępnić dziewięć dodatkowych maszyn z chmury, aby responsywnie obsłużyć wszystkich użytkowników sieci.
W witryna ponownie staje się niepopularna Dziesięć maszyn, które są obecnie przydzielone do witryny, jest w większości bezczynnych, a jedna maszyna wystarczyłaby do obsługi kilku użytkowników, którzy uzyskują dostęp do witryny. System elastyczny powinien natychmiast wykryć ten stan i anulować aprowizację dziewięciu maszyn i zwolnić je do chmury.
Zamiar
Elastyczność ma na celu dopasowanie ilości zasobów przydzielonych do usługi z ilością zasobów, których faktycznie wymaga, unikając nadmiernej lub niedostatecznej alokacji. Należy unikać nadmiernej alokacji , tj. przydzielania większej ilości zasobów niż jest to wymagane, ponieważ usługodawca często musi płacić za zasoby przydzielone do usługi. Na przykład bardzo duża instancja Amazon EC2 M4 kosztuje 0,239 USD za godzinę. Jeśli usługa przydzieliła dwie maszyny wirtualne, podczas gdy wymagana jest tylko jedna, usługodawca marnuje 2095 USD rocznie. Stąd wydatki usługodawcy są wyższe niż optymalne, a jego zysk jest mniejszy.
niedostatecznej alokacji , tj. przydzielania mniejszej ilości zasobów niż jest to wymagane, w przeciwnym razie usługa nie może służyć swoim użytkownikom dobrą usługą. W powyższym przykładzie niewystarczająca obsługa administracyjna witryny internetowej może sprawić, że będzie ona wydawać się powolna lub nieosiągalna. Internauci ostatecznie rezygnują z dostępu do niego, przez co usługodawca traci klientów. dochód dostawcy spadnie, co również zmniejszy jego zysk.
Problemy
Czas udostępniania zasobów
Jednym z potencjalnych problemów jest to, że elastyczność wymaga czasu. Wirtualna maszyna w chmurze (VM) może zostać zakupiona przez użytkownika w dowolnym momencie; jednak może upłynąć kilka minut, zanim nabyta maszyna wirtualna będzie gotowa do użycia. Czas uruchamiania maszyny wirtualnej zależy od takich czynników, jak rozmiar obrazu, typ maszyny wirtualnej, lokalizacja centrum danych, liczba maszyn wirtualnych itp. Dostawcy usług w chmurze mają różną wydajność uruchamiania maszyn wirtualnych. Oznacza to, że każdy mechanizm kontrolny przeznaczony dla aplikacji elastycznych musi uwzględniać w procesie decyzyjnym czas potrzebny do zastosowania działań związanych z elastycznością, takich jak udostępnienie innej maszyny wirtualnej dla określonego składnika aplikacji.
Monitorowanie aplikacji elastycznych
Aplikacje elastyczne mogą na żądanie przydzielać i zwalniać zasoby (takie jak maszyny wirtualne) dla określonych składników aplikacji. To sprawia, że zasoby chmury są niestabilne, a tradycyjne narzędzia monitorujące, które kojarzą dane z monitoringu z konkretnym zasobem (np. maszyną wirtualną), takie jak Ganglia czy Nagios , nie nadają się już do monitorowania zachowania elastycznych aplikacji. Na przykład w okresie eksploatacji warstwa przechowywania danych elastycznej aplikacji może dodawać i usuwać maszyny wirtualne do przechowywania danych ze względu na wymagania dotyczące kosztów i wydajności, zmieniając liczbę używanych maszyn wirtualnych. W związku z tym potrzebne są dodatkowe informacje do monitorowania elastycznych aplikacji, takie jak powiązanie logicznej struktury aplikacji z bazową infrastrukturą wirtualną. To z kolei generuje inne problemy, takie jak agregowanie danych z wielu maszyn wirtualnych w celu wyodrębnienia zachowania komponentu aplikacji działającego na tych maszynach wirtualnych, ponieważ różne metryki mogą wymagać różnych agregacji (np. można podsumować transfer).
Wymagania dotyczące elastyczności
Wdrażając aplikacje w infrastrukturach chmurowych (IaaS/PaaS), należy wziąć pod uwagę wymagania interesariuszy, aby zapewnić odpowiednią elastyczność zachowania. Chociaż tradycyjnie starano się znaleźć optymalny kompromis między kosztami a jakością lub wydajnością, w przypadku rzeczywistych użytkowników chmury wymagania dotyczące zachowania są bardziej złożone i obejmują wiele wymiarów elastyczności (np. SYBL).
Wiele poziomów kontroli
Aplikacje chmurowe mogą mieć różne typy i złożoność, z wieloma poziomami artefaktów wdrażanych w warstwach. Sterowanie takimi strukturami musi uwzględniać różne kwestie, podejściem w tym sensie jest rSYBL . W przypadku kontroli wielopoziomowej systemy kontroli muszą uwzględniać wpływ kontroli niższego poziomu na kontrole wyższego poziomu i odwrotnie (np. sterowanie maszynami wirtualnymi, kontenerami sieciowymi lub usługami sieciowymi w tym samym czasie), a także konflikty, które mogą się pojawić między różnymi strategiami sterowania z różnych poziomów. Strategie elastyczne w chmurach mogą wykorzystywać metody teorii sterowania (np. kontrola predykcyjna była eksperymentowana w scenariuszach chmurowych, wykazując znaczne zalety w odniesieniu do metod reaktywnych).
Zobacz też
Linki zewnętrzne
- Definicja przetwarzania w chmurze według NIST . Peter Mell i Timothy Grance, Specjalna publikacja NIST 800-145 (wrzesień 2011). Narodowy Instytut Standardów i Technologii, Departament Handlu USA.