Odporność chmury Flashcards

1
Q

Resilience - Odporność

A

Zdolność do obsługi niespodziewanych sytuacji:
• Bez zauważenia tej sytuacji przez użytkownika (najlepszy przypadek)
• Z łagodną degradacją usługi (najgorszy przypadek)

Zdolność systemu do łagodnego obsługiwania awarii i przywracania działania (recovery) po awariach

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Znaczenie odporności chmury

A

W aplikacjach chmurowych - większe prawdopodobieństwo powstania usterek
• przejściowych
• bardziej trwałych usterek.

Gdyż aplikacje chmurowe
• Są najemcami zasobów chmury (multi -tenant)
• Korzystają z wspólnych usług
• Rywalizują o zasoby i przepustowość,
• Komunikują się przez Internet
• Działają na rynkowym sprzęcie

Niezbędne jest szybkie wykrywanie awarii i
szybkiego przywracanie aplikacji do działania w celu utrzymania odporności

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Azure - Resiliency Design Pattern

A
  1. Ponowienie (Retry) – Ponowienie operacji przy założeniu, że awaria jest przejściowa
  2. Bezpiecznik automatyczny (Circuit Breaker) –chwilowe wyłączenie operacji
  3. Kompensacja transakcji (Compensating Transaction)
  4. Wybór lidera (Leader Election)
  5. Dyspozytor – Agent – Nadzorca (Scheduler Agent Supervisor)
  6. Grodzie (Bulkhead)
  7. Queue-Based Load Leveling
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Retry pattern – Ponowienie operacji przy

założeniu, że awaria jest przejściowa

A

• Obsługa chwilowych awarii podczas łączenia się z usługą lub zasobem sieciowym
-> ponowne wznowienie operacji w oczekiwaniu, że niepowodzenie jest przejściowe
• Ten wzorzec może poprawić stabilność aplikacji
• Wrażliwość na przejściowe awarie, np.:
- Chwilowa utrata połączenia sieciowego
- Czasowa niedostępność usługi
- Przeterminowanie (Timeouts), które pojawiają się, gdy usługa jest zajęta.
• Jeśli żądanie nie powiedzie się po uprzednio określonej liczbie prób
- Aplikacja powinna traktować awarię jako wyjątek i odpowiednio postępować

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Retry Pattern - strategie

A

Cancel
• Błąd nie jest przejściowy lub jest mało prawdopodobne, aby powiodło się, to
• aplikacja powinna anulować operację i zgłosić wyjątek. Na przykład błąd uwierzytelniania

Retry.
• Błąd jest nietypowy lub rzadki, może to być spowodowane niezwykłymi okolicznościami
• Aplikacja może ponowić żądanie natychmiast, ponieważ niepowodzenie powtórzenia jest mało prawdopodobne

Retry with delay.
• Jeśli usterka spowodowana dużym obciążeniem, to sieć lub usługa może wymagać krótkiego okresu, w którym problemy z połączeniem są poprawione lub zaległości
• praca jest wyczyszczona. Aplikacja powinna odczekać

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Resiliency Design Pattern

A

Wyłącznik automatyczny (Circuit Breaker) – chwilowe wyłączenie operacji
• Obsługa błędów może wymagać sporo czasu na poprawienie połączenia z usługą zdalną lub zasobem.
• Ten wzorzec może poprawić stabilność i odporność aplikacji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Circuit Breaker

Wyłącznik automatyczny

A

Automatycznie uruchamiany przełącznik
elektryczny
• Przeznaczone do ochrony obwodu elektrycznego
• Od uszkodzeń przeciążeniowych

Jego podstawową funkcją jest przerwanie
przepływu prądu po wykryciu usterki przez przekaźniki zabezpieczające.

W przeciwieństwie do bezpiecznika, który działa raz, a następnie musi być wymieniony,
• Wyłącznik automatyczny może zostać zresetowany (ręcznie lub automatycznie), aby wznowić normalną pracę.

W chmurze możliwe są awarie operacji
spowodowane przejściowymi problemami, np.:
• Powolne połączenia sieciowe
• Limity czasu
• Zasoby są przepełnione lub czasowo niedostępne

Te usterki zazwyczaj poprawiają się po krótkim czasie
• Aplikacja akceptuje, że operacja nie powiodła się i odpowiednio obsługuje tą awarię
• Wzorzec ten umożliwia wykrycie, czy usterka została naprawiona
• Jeśli tak, aplikacja może próbować wywołać operację

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wzorzec Circut breaker różni się od wzorca Retry.

A
  • Wzorzec retry umożliwia aplikacji ponowne działanie w oczekiwaniu, że odniesie sukces.
  • Wzorzec Circuit Breaker zabrania aplikacji wykonywania operacji, które prawdopodobnie nie powiodą się
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Maszyna stanu wyłącznika automatycznego

Stany

A
  • Zamknięty (Closed)
  • Otwarty (Open)
  • Pół-otwarty (Half-Open)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Zamknięty (Closed)

A
  • Żądanie z aplikacji jest przekierowywane do operacji.
  • Pośrednik utrzymuje liczbę ostatnich niepowodzeń, a jeśli połączenie z operacją nie powiodło się, to serwer zwiększy tę liczbę.
  • Jeśli liczba ostatnich awarii przekracza określoną wartość progową w danym przedziale czasowym, serwer proxy zostanie umieszczony w stanie otwartym.
  • W tym momencie serwer proxy uruchamia timeout timer, a gdy ten timer wygasa, proxy zostanie umieszczone w stanie Half-Open.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Otwarty (Open)

A

• Żądanie od aplikacji natychmiast kończy się niepowodzeniem, do aplikacji zwracany jest wyjątek

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Pół-otwarty (Half-Open)

A

• Ograniczona liczba żądań może zostać przekazana
• Jeśli te żądania zakończyły się sukcesem
- Przyjmuje się, że usterka powodująca awarię została naprawiona
- Wyłącznik zostanie przełączony w stan zamknięty (licznik awarii jest resetowany).
• Jeśli żądanie nie powiedzie się, wyłącznik zakłada, że błąd jest nadal obecny
- Powraca do stanu otwartego
- Uruchamia ponownie licznik czasu, aby dać systemowi dodatkowy okres czasu do odzyskania z awarii.
• Stan pół-otwarty jest przydatny, aby uniemożliwić nagły dostęp do usług z wieloma żądaniami
• W miarę odzyskiwania sprawności usługi, może ona obsługiwać ograniczoną liczbę żądań do czasu zakończenia odzyskiwania
pełnej sprawność
• W w czasie, gdy trwa naprawa, duża liczba żądań może spowodować, że usługa przestanie działać w zadanym czasie lub przestanie działać ponownie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Kompensacja transakcji - Compensating Transaction

A

• Cofa pracę wykonaną przez szereg kroków, które razem definiują ostatecznie (eventually) spójną operację, jeśli jedna lub więcej operacji nie powiedzie się.
• Operacje, które podążają za ostatecznym modelem spójności, są powszechnie dostępne w aplikacjach obsługiwanych przez chmury, które
implementują skomplikowane procesy biznesowe i przepływy pracy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Kompensacja

A
  • zrównoważenie określonego działania innym działaniem, które znosi lub wyrównuje początkowe działanie
  • Umowa barterowa
  • Umowa kompensacyjna
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Umowa barterowa

A

• wymiana towarów i/lub usług na inne, równowartościowe towary i/lub usługi bez przekazania jakichkolwiek kwot pieniędzy
pomiędzy kupującym a sprzedającym.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Umowa kompensacyjna

A

• kontrakt, w ramach którego sprzedający zgadza się przyjąć część ceny towaru w pieniądzach, a pozostałość w towarach lub usługach

17
Q

Transakcja w informatyce

A

• Zbiór operacji na bazie danych, które stanowią w istocie pewną całość i jako takie powinny być wykonane wszystkie lub żadna z nich.
• Zasady transakcji
- ACID (Atomicity, Consistency, Isolation, Durability
- Atomowość, Spójność, Izolacja, Trwałość).
• W systemach bazodanowych istotne jest, aby transakcja trwała jak najkrócej
- ponieważ równolegle może być dokonywanych wiele transakcji i część operacji musi zostać wykonana w pewnej kolejności.

18
Q

Eventual consistency

Końcowa spójność

A

Ostateczna spójność jest cechą charakterystyczną rozproszonych systemów komputerowych, np.:
• Wartość konkretnego elementu danych,
- nie będzie aktualizowana natychmiast
- pozostanie bez aktualizacji przez pewien czas

19
Q

Commit/rollback mechanism

A

• Commit - zatwierdzenie
• Rollback - cofnięcie
- technologia stosowana w bazach danych do przywracania struktury bazy danych do stanu sprzed określonego przedziału czasowego.
- przydatna w wypadkach np. uszkodzenia struktury bazy danych lub przypadkowego usunięcia istotnego znacznika.
- Działanie tej technologii polega na nadpisaniu zawartości danej bazy danych obrazem kopii zapasowej zapisanym na dysku twardym komputera, z którego jest przeprowadzana operacja rollbacku bazy danych.

20
Q

Kompensacja transakcji

Compensating Transaction

A

• Każda transakcja może składać się z kilku pojedynczych operacji, jako całość, przenosi system pomiędzy spójnymi stanami.
• Dwie grupy systemów do stosują kompensację transakcji:
- W kontekście bazy danych często uzyskuje się to często przy użyciu transakcji i mechanizmu commit /
rollback
- W przypadku systemów bez mechanizmu zatwierdzania / wycofywania można „odkręcić” uszkodzoną transakcję poprzez kompensacje, która przywróci system do stanu początkowego.

21
Q

Compensating Transaction Pattern

A

• Aplikacje w chmurze często modyfikują dane.
• Dane mogą być rozproszone w różnych lokalizacjach geograficznych.
• Aby uniknąć sporów (contention) i poprawić wydajność
- Aplikacja nie powinna zapewniać silnej spójności transakcji
- Aplikacja raczej powinna wdrożyć ostateczną spójność
• Działanie składa się z serii autonomicznych kroków
- Podczas wykonywania kroków ogólny widok stanu systemu może być niespójny
- Ale po zakończeniu operacji system powinien być spójny

22
Q

Resiliency Design Pattern

Wybór lidera (Leader Election)

A

• Koordynuje działania wykonywane przez zbiór współpracujących instancji zadań w rozproszonych aplikacjach, wybierając jedną instancję jako lider, która przyjmuje odpowiedzialność za zarządzanie innymi instancjami.
• Ten wzorzec może pomóc w zadbaniu o to, aby zadania nie były ze sobą w konflikcie, powodowały sprzeciwu na udostępniane zasoby lub niechcący ingerować w pracę wykonywaną przez inne instancje zadań.
• W przypadku komputerów rozproszonych wybór liderów jest procesem wyznaczania pojedynczego procesu jako organizatora niektórych zadań rozproszonych między kilkoma komputerami (węzłami).
• Po uruchomieniu algorytmu wyboru liderów każdy węzeł całej sieci rozpoznaje konkretny, unikalny węzeł jako lider zadania.
• Typowa aplikacja w chmurze składa się z wielu zadań działających w sposób skoordynowany
- Zadania te wymagają dostępu do tych samych zasobów lub mogą współpracować równolegle z poszczególnymi częściami złożonych obliczeń.
- Instancje zadań mogą działać autonomicznie przez większość czasu, ale może okazać się konieczne także koordynowanie ich działań
• Należy wybrać pojedynczą instancję na lidera, a instancja ta powinna koordynować działania innych instancji zadań podrzędnych

23
Q

Blob (ang. binary large object)

A

• typ danych, który umożliwia przechowywanie dużych ilości
danych binarnych jako pojedynczy obiekt w bazie danych,
• stosowany w szczególności do przechowywania danych multimedialnych, takich jak grafika, muzyka czy filmy.

24
Q

Scheduler Agent Supervisor

Dyspozytor – Agent - Nadzorca

A

• Koordynuje zestaw działań w rozproszonym zestawie usług i innych odległych zasobach, próbuje przezwyciężać awarie, jeśli którekolwiek z tych działań się nie powiedzie, lub cofnąć efekty pracy, jeśli system nie może powstać (recover) z błędu.
• Ten wzorzec może zwiększyć odporność systemu rozproszonego, umożliwiając jej odzyskanie (recover) i ponawianie działań, które są spowodowane przejściowymi wyjątkami, długotrwałymi błędami i awariami procesu.
• Aplikacja wykonuje zadania składające się z kilku etapów, z których niektóre mogą wywoływać usługi zdalne lub uzyskać dostęp do zdalnych zasobów.
- Poszczególne kroki mogą być niezależne od siebie, ale są one skoordynowane z logiką aplikacji, która wykonuje zadanie.
• Harmonogram organizuje poszczególne
czynności, które obejmują ogólne zadanie, które ma być wykonywane i skoordynować ich działanie.
• Jeśli jest to możliwe, aplikacja powinna zapewnić, że zadanie zostanie ukończone i rozwiązane zostaną wszelkie błędy, które mogą wystąpić podczas uzyskiwania dostępu do zdalnych usług lub zasobów.
• Jeśli aplikacja wykryje bardziej trwały błąd, z którego nie można go łatwo odzyskać, musi być w stanie przywrócić system do stanu spójnego i zapewnić integralność całego procesu końcowego.

25
Q

Resilience tactics - Isolation (izolacja)

A
• System nie może ulec awarii jako
całość
• Podziel system na części i dokonaj izolacji części względem siebie
• Unikanie kaskadowych awarii
• Wymaga implementacji szeregu środków
26
Q

Resilience tactics

1. Isolation – Bulkheads (grodzie)

A

• Główny wzorzec izolacji
• Stosowany jako jednostki redundancji (jednostki skalowalności)
• Izoluj elementy aplikacji w pulach, aby w razie niepowodzenia pozostałe nadal działały.
• Kontekst
- Aplikacja oparta na chmurze może zawierać wiele usług, przy czym każda usługa ma jednego lub więcej klientów.
- Nadmierne obciążenie lub awaria usługi będą miały wpływ na wszystkich użytkowników usługi.
• Rozwiązanie
- Podział instancji usług na różne grupy w oparciu o wymagania dotyczące obciążenia i dostępności konsumenta. Ten projekt
• pomaga wyizolować awarie i pozwala utrzymać funkcjonalność usług dla niektórych konsumentów, nawet podczas awarii.

27
Q

Resilience tactics
1. Isolation – Bulkheads (grodzie)
• Zalety

A
  • Izoluje klientów i usługi od awarii kaskadowych. Problem może dotyczyć konsumenta lub usługi izolowany w obrębie własnej przegrody, zapobiegając awariom całego rozwiązania.
  • Pozwala zachować pewne funkcje w przypadku awarii usługi. Inne usługi i funkcje aplikacja będzie nadal działać.
  • Umożliwia wdrażanie usług, które oferują inną jakość usług do korzystania z aplikacji. Wysoki priorytet Konsumenci mogą być skonfigurowani do korzystania z usług o wysokim priorytecie.
28
Q

Bulkheads (grodzie)

Stosowanie

A
  • Izoluj zasoby używane do korzystania z zestawu usług zaplecza (back-end), zwłaszcza jeśli aplikacja może zapewnić pewien poziom funkcjonalności nawet wtedy, gdy jedna z usług nie odpowiada.
  • Izoluj krytycznych konsumentów od standardowych konsumentów.
  • Chroń aplikację przed kaskadowymi awariami.
29
Q

Kontenery

A

• Zainteresowanie kontenerami doprowadziło do utworzenia Open Container Initiative (OCI) w celu zdefiniowania standardów środowiska
wykonawczego kontenerów i formatów graficznych.
• Złożona architektura zajmująca się wieloma hostami i kontenerami działającymi w środowisku produkcyjnym wymaga zestawu narzędzi do zarządzania, najbardziej popularne
- Docker Datacenter
- Kubernetes
- Mesosphere DC / OS

30
Q

Docker

A
  • Docker zapewnia kontener do zarządzania obciążeniami oprogramowania w ramach współużytkowanej infrastruktury, przy jednoczesnym zachowaniu ich odizolowania od siebie.
  • Maszyny wirtualne, takie jak KVM, wykonują podobną pracę, tworząc kompletny stos systemu operacyjnego wszystkich urządzeń systemu operacyjnego (za pośrednictwem hiperwizora).
31
Q

Kubernetes

A

• System typu open source do zarządzania
kontenerowymi aplikacjami na wielu hostach, zapewniający podstawowe mechanizmy wdrażania, konserwacji i skalowania aplikacji.
• Pierwotnie zaprojektowany przez Google.
• Projekt open source jest hostowany przez Cloud Native Computing Foundation (CNCF).