Well-Architected Framework

14 grudnia 2020

Well-Architected Framework

Well-Architected Framework to zbiór porad i drogowskazów, które mają nam pomóc w zaprojektowaniu infrastruktury chmurowej, która będzie najlepiej dopasowana do naszych potrzeb. Narzędzie to daje nam możliwość sprawdzenia, czy nasza infrastruktura spełnia wymagania zarówno te związane z potrzebami biznesowymi, jak i te, które ściśle związane są potrzebami technologicznymi. Stosowanie wskazówek, jakie znajdują się w materiałach Well Architected, pozwoli nam na budowanie lepszych rozwiązań!

 

Well Architected dzieli się na pięć filarów:

  • Optymalizacja kosztowa – ma na celu sprawdzenie, w jaki sposób zarządzamy kosztami, jaki model płatności został przez nas zastosowany i w jaki sposób możemy zoptymalizować i obniżyć koszty, które ponosimy.
  • Doskonałość operacyjna – to wszystkie procesy wchodzące w skład operacji, które utrzymują działanie naszego systemu w środowisku produkcyjnym.
  • Wydajność — sprawdzamy w jaki sposób system dostosowuje się do wprowadzanych zmian w obciążeniu.
  • Niezawodność – filar ten ma na celu sprawdzenie zdolności systemu do odzyskiwania sprawności po awarii i kontynuowanie działania.
  • Bezpieczeństwo – w jaki sposób ochraniana jest aplikacja oraz dane przez nas przetwarzane.

Dzięki tym filarom otrzymujemy dokładną analizę naszej infrastruktury oraz to, w jaki sposób możemy ją zmienić i dopasować do najlepszych praktyk.

 

Optymalizacja kosztów

Filar ten powinien być dla nas wskazówką od samego początku tworzenia infrastruktury. Na etapie przygotowywania projektu infrastruktury powinniśmy poznać modele płatności, jakie proponują nam dostawcy chmurowi. W zależności od tego, jaką aplikację tworzymy, będziemy potrzebować innego modelu.

  • Możliwości, jakie mamy to między innymi:
  • Płatność pay-as-you-go – w tym przypadku płatności dokonujemy za faktycznie wykorzystane zasoby, najczęściej wymagane jest podpięcie karty,
  • Rezerwacje – w tym przypadku zobowiązujemy się do wykorzystywania usług przez pewien określony czas. Rezerwacje pozwalają nam na oszczędności, które otrzymujemy jako gratyfikację za związanie się na dłuższy czas z danym dostawcą,
  • Przedpłaty i wprowadzenie Savings Plans
  • Korzystanie z maszyn w wersji spot – dają największą oszczędność, są jednak przeznaczone dla działań, które nie są związane ze środowiskiem produkcyjnym, które musi być stale dostępne dla użytkowników końcowych.

Należy zapoznać się z każdym modelem płatności, aby w świadomy sposób wykorzystywać możliwości, jakie dostajemy.

W dobrym i optymalnym planowaniu budżetów pomogą nam kalkulatory kosztów, które oszacują nasz koszt początkowy oraz koszty operacyjne.

W dobrym zarządzaniu kosztami pomoże nam między innymi:

  • Przegląd zasad dotyczących kosztów,
  • Opracowanie modelu kosztów,
  • Tworzenie własnych budżetów i alertów,
  • Utworzenie i przeglądanie listy kontrolnej optymalizacji kosztów.

Optymalizacja kosztowa pomoże nam uniknąć niechcianych i nieprzewidzianych opłat.

Doskonałość operacyjna

Obejmuje procesy operacji, które są związane z działaniem i utrzymaniem aplikacji w utworzonym wcześniej środowisku aplikacyjnym. Filar ten ma na celu sprawdzenie, czy nasza infrastruktura jest niezawodna i zautomatyzowana co będzie pozwalało na uniknięcie błędów ludzkich oraz czy wszystkie zmiany, jakie wprowadzamy, dzieją się szybko, aby nie spowalniać wprowadzania nowych funkcji. Ważna jest również możliwość szybkiego wycofania zmian, które powodują wystąpienie błędów. Rekomendowaną metodą jest wprowadzanie mały zmian, zamiast ogromnych rewolucji.

Doskonałość operacyjna wiąże się również monitoringiem i diagnostyką. Proces ten składa się z kilku etapów:

  • Generowania danych pierwotnych z dzienników aplikacji i serwera oraz diagnostyki wbudowanej w platformę,
  • Zbieranie i przechowywanie danych w jednym miejscu,
  • Analiza i diagnostyka na potrzeby rozwiązania problemów,
  • Wizualizacja i alerty.

Wydajność

Filar związany z wydajnością obejmuje informacje dotyczące zarządzaniem zasobami, gotowością do przejęcia obciążenia oraz zarządzeniu ilością zasobów. Obejmuje zagadnienia takie jak: dobór zasobów, wybór właściwej bazy danych, plan ciągłego doskonalenia, serveless oraz konteneryzacja. Dla wydajności jednym z kluczowych zagadnień jest autoskalowanie i automatyzacja procesów, które pozwalają nam na szybkie zmiany zasobów oraz ograniczają pracę naszego zespołu przy konfiguracji i zarządzaniu usługami. 

Niezawodność

Filar ten mówi o obciążeniu infrastruktury, na które system jest odporny – potrafi odzyskać sprawność po awarii i jest gotowy do kontynuowania działania. Jego celem jest przywrócenie, aplikacji do pełnej funkcjonalności po tym, jak wystąpi błąd. Należy określić potencjalne zagrożenia i ustalić dla nich plan działania. Przy projektowaniu infrastruktury chmurowej musimy określić czy nasza aplikacja wymaga HA (wysokiej dostępności). Jeśli tak należy rozważyć utworzenie infrastruktury w dwóch różnych lokalizacjach.

Aby spełnić warunki, związane z niezawodnością należy rozumieć swoje wymagania odnośnie dostępności. Odpowiedzieć na zasadnicze pytania takie jak: jak długi czas niedostępności jest dopuszczalny? Ile kosztuje nas każda minuta niedostępności?

Dla niezawodności kluczowe jest posiadanie i przetestowanie procedur związanych z odzyskaniem kopii zapasowych na wypadek awarii.

Bezpieczeństwo

Filar bezpieczeństwa skupia się na ochronie posiadanych zasobów, danych i systemów oraz analizie możliwość wystąpienia ryzyka. Obejmuje zagadnienia takie jak:

  • Zarządzanie tożsamościami.
  • Ochrona infrastruktury – kontrolowanie dostępu oraz przyznawanie członkom organizacji odpowiedniej ilości i zakresu dostępów w ramach infrastruktury. Pozwoli nam na utrzymanie pełnej kontroli nad tym, kto i jaki ma dostęp do zasobów.
  • Zabezpieczenie aplikacji — to między innymi utrzymywanie aktualnych protokołów SSL
  • Niezależność i szyfrowanie danych – przechowywane dane powinny znajdować się w odpowiednie strefie geopolitycznej. Należy pamiętać o poprawnym wybraniu strefy, w której przechowujemy nasze dane.

Well Architected Framework powstał w oparciu o wieloletnie doświadczenie dostawców chmurowych, które nie jest oparte tylko na wiedzy zespołów technicznych odpowiedzialnych za zmiany, aktualizacje czy tworzenie nowych usług. To przede wszystkim doświadczenia setek tysięcy użytkowników korzystających z możliwości, jakie daje nam nasz dostawca chmurowy. To ich zmagania, napotkane trudności oraz to jak sobie z nimi radzą, jest najlepszą nauką, która została zebrana i nam przekazana.

Kierowanie się zasadami Well Architected pozwoli nam na budowanie optymalnych, stabilnych, wydajnych i bezpiecznych rozwiązań spełniających nasze wymagania. Tylko rozpatrywane razem dają najlepsze efekty. Każdy filar powinien być tak samo ważny – nie możemy kosztem bezpieczeństwa utworzyć infrastruktury wysokodostępnej i na odwrót.

PYTANIA? SKONTAKTUJ SIĘ Z NAMI

 

Zobacz również: