Jak obliczyć złożoną umowę o gwarantowanym poziomie usług (SLA) dla usług w chmurze?


27

Usługi w chmurze w serwisie Amazon Web Services , Azure , Google i większość innych publikuje S erwis L Evel A greement lub SLA dla poszczególnych usług, które świadczą. Architekci, inżynierowie platform i programiści są następnie odpowiedzialni za połączenie ich w celu stworzenia architektury zapewniającej hosting aplikacji.

W oderwaniu, usługi te zazwyczaj zapewniają coś w zakresie od trzech do czterech dziewięciu dostępności:

  • Azure Traffic Manager: 99,99% lub „cztery dziewiątki”.
  • SQL Azure: 99,99% lub „cztery dziewiątki”.
  • Usługa Azure App Service: 99,95% lub „trzy dziewięć pięć”.

Jednak w połączeniu ze sobą w architekturze istnieje możliwość, że dowolny komponent może ulec awarii, powodując ogólną dostępność, która nie jest równa usługom składowym.

Dostępność związku szeregowego

Szeregowa dostępność

W tym przykładzie istnieją trzy możliwe tryby awarii:

  • SQL Azure nie działa
  • Usługa aplikacji jest wyłączona
  • Oba są wyłączone

Dlatego ogólna dostępność tego „systemu” musi być niższa niż 99,95%. Moim uzasadnieniem dla takiego myślenia jest to, że umowa SLA dla obu usług była następująca:

Usługa będzie dostępna 23 godziny na dobę

Następnie:

  • Usługa aplikacji może być niedostępna między 0100 a 0200
  • Baza danych od 0500 do 0600

Obie części są objęte umową SLA, ale cały system był niedostępny przez 2 godziny z 24.

Dostępność szeregowa i równoległa

Dostępność szeregowa i równoległa

W tej architekturze istnieje wiele trybów awarii, ale przede wszystkim:

  • Serwer SQL w regionie A jest wyłączony
  • Serwer SQL w regionie B jest wyłączony
  • Usługa aplikacji w regionie A nie działa
  • Usługa aplikacji w regionie B nie działa
  • Menedżer ruchu jest wyłączony
  • Kombinacje powyżej

Ponieważ Traffic Manager jest wyłącznikiem, jest w stanie wykryć awarię w obu regionach i kierować ruch do regionu roboczego, jednak nadal występuje jeden punkt awarii w postaci Traffic Manager, więc całkowita dostępność „systemu” nie może być wyższy niż 99,99%.

W jaki sposób można obliczyć i udokumentować złożoną dostępność dwóch powyższych systemów dla firmy, potencjalnie wymagając ponownej analizy, jeśli firma chce wyższego poziomu usług niż jest w stanie zapewnić architektura?

Jeśli chcesz adnotować diagramy, wbudowałem je w Lucid Chart i stworzyłem link wielokrotnego użytku, pamiętaj, że każdy może to edytować, więc możesz utworzyć kopię stron do adnotacji.


Najniższe SLA od SPOF, zakładając, że Twoja aplikacja jest w stanie poradzić sobie z przerwaniem sesji?
— Tensibai

1
@Tensibai - nie sądzę, że tak może być, w oparciu o mój pierwszy przykład, jeśli umowa SLA dla obu usług będzie dostępna 23 godziny na 24, wtedy usługa aplikacji może być niedostępna między 0100 a 0200, a baza danych pomiędzy 0500 i 0600, obie części są objęte umową SLA, ale cały system był niedostępny przez 2 godziny z 24. Ma to sens?
— Richard Slater

Tak, ma sens, ale w tym przypadku wynik powinien być produktem wszystkich nie?
— Tensibai

Mam na myśli, że ogólna dostępność grupy powinna wynosić około 99,95 x 99,95 sql
— Tensibai

Pamiętaj również, że możesz zbudować system bardziej niezawodny niż jego komponenty, poprzez ponawianie prób lub przełączanie awaryjne lub degradację zamiast pełnej awarii.
— Xiong Chiamiov

Odpowiedzi:


19

Uznałbym to za problem matematyczny, ponieważ w umowie SLA istnieje prawdopodobieństwo, że wszystko będzie OK.

W takim przypadku możemy polegać na regułach prawdopodobieństwa, aby uzyskać wynik ogólny.

W pierwszym przypadku prawdopodobieństwo, że usługa App Service (A) i Sql Service (B) spadną w tym samym czasie, jest iloczynem ich prawdopodobieństwa:

P(A)*P(B) = 0.0005 * 0.0005 = 0,00000025

Prawdopodobieństwo, że jeden z nich spadnie, jest sumą ich prawdopodobieństwa:

P(A)+P(B) = 0.001

Gdy dwa zdarzenia są niezależne, wynikowa formuła, która bierze pod uwagę prawdopodobieństwo, że oba będą wyłączone, jest następująca:

P(A,B) = P(A) + P(B) - P(A)*P(B) = 0.001 - 0,00000025 = 0,00099975

Tak więc ogólna umowa SLA byłaby 1 - 0,00099975 = 0,99900025procentowa99.900025 %

Uproszczenie jest produktem pierwszej prawdopodobieństwa: 0.9995 * 0.9995 = 0,99900025.

W przypadku przerwy 1h / 24h (4,166666% dziennie) daje to (miejsca dziesiętne są skracane):

0.0416 + 0.0416 - (0.0416 * 0.0416) = 0,081597222

Prawdopodobieństwo bycia OK jest więc wyrażone 1 - 0.0816 = 0.9184procentowo:91,84%

24 * 0.0816 = 1.95 h

To mniej niż najgorszy przypadek 2 godzin, ponieważ istnieje szansa, że ​​obie są jednocześnie.

Mając to na uwadze, możesz zauważyć dostępność każdego z nich, 95,84%a 0,958333333 * 0,958333333 = 0,918402778to jest nasze 91.84%z góry (przepraszam za pełne miejsca po przecinku tutaj, ale są one potrzebne do demonstracji)

Teraz w drugim przypadku zaczniemy korzystać z naszego złożonego prawdopodobieństwa dla każdego regionu (przepraszam, odrzuciłem zmianę SQL, aby zachować rozsądność), zakładając, że nie ma niezależnego prawdopodobieństwa dla samego regionu i że każdy region jest izolowany i jako taki awaria DB powoduje obniżenie tylko regionu.

Mamy prawdopodobieństwo OK menedżera ruchu P(T) = 0.9999i każda aplikacja + DB łączy się z prawdopodobieństwem OK P(G) = 0,99900025od

Ile regionu mamy do odegrania, ponieważ musimy zastosować iloczyn prawdopodobieństwa awarii tylko po to, aby uzyskać prawdopodobieństwo, że oba regiony spadną w tym samym czasie:
0,00099975 * 0,00099975 = 0,0000009995000625co oznacza ogólną dostępność co najmniej jednego regionu99,049375 %

Teraz mamy ogólną dostępność regionów, produkt z menedżerem ruchu daje nam ogólną dostępność systemu:

0.9999 * 0,9999990004999375 = 0,99989900059988750625

Ogólna dostępność wynosi 99.989900 %

Inne źródło jako wyjaśnienie jest dostępne w dokumentacji Azure (link dzięki uprzejmości Raj Rao )


Ogólna dostępność wydaje się bardzo niska - w rzeczywistości poprzez dodanie dodatkowego regionu i menedżera ruchu SLA jest o rząd wielkości niższy niż w przypadku pojedynczego regionu. Próbuję wykopać, jak to robiłem dla sieci z głębi mózgu.
— Richard Slater

Uff! Byłem pewien, że oszaleję.
— Richard Slater

@RichardSlater matematyka poprawiona
— Tensibai

2
@BruceBecker prawdopodobnie tak, na pewno wydaje się, że IEEE opublikowało badania na ten temat, podejrzewam jednak, że biorąc pod uwagę cel obliczania tych liczb, chodzi bardziej o konkretny „dowód”, że potrzebujesz lub nie potrzebujesz możliwości wysokiej dostępności dodane do systemu - tj. wykorzystujemy te liczby do podejmowania decyzji dotyczących kosztów i korzyści w oparciu o apetyt na ryzyko firm. Budowanie modelu bayesowskiego może nie reprezentować najlepszego wykorzystania naszego czasu.
— Richard Slater

1
@BruceBecker Tak, część probu jest powiązana (samo centrum danych się wyłącza i obie usługi są w nim, co musi być niskie), dla reszty myślę, że możemy bezpiecznie założyć, że usługi aplikacji i usługi sql działają na różnych systemach i jest mało prawdopodobne, aby zawieść w tym samym czasie z tego samego powodu . Zagłębianie się w matematykę wymagałoby dokładnej dokumentacji, w jaki sposób jest wykonana architektura platformy Azure, a zatem może na nią odpowiedzieć tylko ktoś z firmy Microsoft.
— Tensibai

18

Po przeczytaniu doskonałej odpowiedzi Tensibai zdałem sobie sprawę, że kiedyś mogłem to obliczyć dla celów analizy sieci. Wykopałem moją kopię High Availability Network Fundamentals autorstwa Chrisa Oggerino i miałem problem z wypracowaniem tego, nie całkiem pierwszymi zleceniodawcami.

Wzięcie mojego seryjnego przykładu bezpośrednio z odpowiedzi Tensibai jest po prostu pomnożeniem prawdopodobieństwa, że ​​każdy komponent będzie dostępny przez drugi:

Szeregowa dostępność

Więc

99,95% * 99,95% = 99,9%

Obliczanie go równolegle jest nieco bardziej skomplikowane, ponieważ musimy zastanowić się, jaki będzie procent braku dostępności:

Dostępność szeregowa i równoległa

Obliczenia wykonuje się w następujący sposób:

  1. Pomnóż dostępność un dwóch regionów razem.

    0,1% * 0,1% = 0,0001%

  2. Przekształć to z powrotem w dostępność

    100% - 0,0001% = 99,9999%

  3. Pomnóż dostępność Traffic Manager przez dostępność dwóch regionów.

    99,99% * 99,9999% = 99,9899%

  4. Rezultatem jest dostępność całego systemu.

    99,9899% jest zbliżone do 99,99%

Skończyłem używać Excela do wykonywania obliczeń, oto wartości:

Wartości Excel

... i formuły ...

Formuły Excel


1
To wszystko, w prostszy sposób niż mój (czułem potrzebę wykazania matematyki za sobą :))
— Tensibai

Zgadzam się, twoja odpowiedź jest naprawdę dobra dla matematyki.
— Richard Slater

SQL Azure to 99,99%, a nie 99,95%
— Jeffery Tang

1
@JefferyTang to (prawdopodobnie) był w czasie pisania pytania / odpowiedzi (nie do końca pamiętam), a faktyczna wartość nie zmienia metodologii, aby uzyskać odpowiedź na „Jak obliczyć złożoną SLA z poszczególnych części SLA”, która to prawdziwe pytanie.
— Tensibai
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.