Azure Well-Architected Framework
Microsoft Azure Well-Architected Framework to zbiór dobrych praktyk, które mają na celu kompleksową analizę infrastruktury chmurowej. Narzędzie to umożliwia weryfikację, czy zaprojektowana infrastruktura stworzona została zgodnie z najlepszymi praktykami i spełnia wymagania biznesowe.
Microsoft Azure wyróżnia pięć filarów:
- Optymalizacja kosztów – ma na celu weryfikację kosztów infrastruktury i stworzenie optymalnego modelu kosztowego
- Doskonałość operacyjna – skupia się na wszystkich procesach wchodzących w skład naszego rozwiązania w środowisku produkcyjnym.
- Wydajność—mierzy zachowanie systemu przy zmiennym obciążeniu.
- Niezawodność – filar ten ma na celu sprawdzenie zdolności systemu do odzyskiwania funkcjonalności i kontynuowania działania w wypadku wystąpienia awarii
- Bezpieczeństwo – analizuje jakość zabezpieczeń aplikacji i przetwarzanych przez nią danych.
Zastosowanie analizy opartej o tych pięć filarów pozwala uzyskać pełny obraz funkcjonowania naszej infrastruktury oraz dostarcza informacji pozwalających na optymalizację i dopasowanie jej do najlepszych praktyk.
Optymalizacja kosztów
Zalecenia tego filaru powinny być brane pod uwagę od samego początku tworzenia infrastruktury. Na etapie przygotowywania projektu infrastruktury powinniśmy zgodnie z zaleceniami Microsoft zastosować zasadę Zbuduj-Zmierz-Wnioskuj. Dzięki tej zasadzie zminimalizujemy nakłady finansowe na wczesnych etapach prowadzenia działalności i przy wprowadzaniu produktu na rynek. W optymalnym zaplanowaniu budżetu pomogą kalkulatory kosztów, dzięki którym oszacujemy koszt początkowy oraz koszty operacyjne. Ważnym elementem będzie również decyzja dotycząca sposobu rozliczeń. Płatność w modelu „pay as you go” pozwoli nam płacić tylko za te zasoby, które używamy i skalować je zgodnie z potrzebami.
W prawidłowym zarządzaniu kosztami pomoże nam także:
- Przegląd reguł dotyczących kosztów
- Opracowanie modelu kosztowego
- Tworzenie własnych budżetów i alertów
- Utworzenie i przegląd listy kontrolnej optymalizacji kosztów.
Optymalizacja kosztowa pomoże uniknąć niechcianych opłat i tym samym sprawi, że ponoszone koszty będą adekwatne do skali rozwiązania.
Doskonałość operacyjna
Obejmuje procesy, które są związane z działaniem i utrzymaniem aplikacji w utworzonym wcześniej środowisku chmurowym. Filar ten ma na celu sprawdzenie, czy nasza infrastruktura jest niezawodna i zautomatyzowana w stopniu, który pozwoli na uniknięcie błędów ludzkich a także umożliwia szybkie wprowadzanie zmian i implementację nowej funkcjonalności. Ważna jest również możliwość szybkiego wycofania zmian, które powodują błędy. Doskonałość operacyjna wiąże się również monitoringiem i diagnostyką. Proces ten składa się z kilku etapów:
- Generowanie danych pierwotnych z dzienników aplikacji i serwera oraz narzędzi diagnostycznych wbudowanej w platformę
- Magazynowanie danych w jednym miejscu
- Analiza i diagnostyka na potrzeby rozwiązania problemów
- Wizualizacja i alerty
Wydajność
Głównym zadaniem jest sprawdzenie, czy nasze rozwiązanie pozwala na szybkie i niezawodne skalowanie. W zależności od potrzeb możemy stosować dwa rodzaje skalowania pionowe (w górę) oraz poziome (do wewnątrz). Dodatkową weryfikacją czy zostały spełnione warunki proponowanego skalowania są testy obciążeniowe i wydajnościowe infrastruktury.
Niezawodność
Filar ten weryfikuje odporność systemu na obciążenie infrastruktury, zdolność do odzyskania sprawności po awarii i kontynuowania działania po jej wystąpieniu. Nadrzędnym celem jest przywrócenie aplikacji do pełnej funkcjonalności po wystąpieniu błedu. 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ż yodpowiedzieć na pytania takie jak: jak długi czas niedostępności jest dopuszczalny? Ile kosztuje nas każda minuta niedostępności?
Bezpieczeństwo
Bezpieczeństwo to kwestia, która powinna być brana pod uwagę od samego początku tworzenia aplikacji. Podsawowymi obszarami, które należy rozważyć są:
- Zarządzanie tożsamością
- Zabezpieczenie infrastruktury – kontrola dostępu oraz przyznawanie członkom organizacji poziomu dostępu do platformy Azure adekwatnego do pełnionej funkcji, co pozwoli na utrzymanie pełnej kontroli nad tym kto ma dostęp do zasobów.
- Zabezpieczenie aplikacji, np.utrzymywanie aktualnych protokołów SSL
- Niezależność i szyfrowanie danych – przechowywane dane powinny znajdować się w odpowiednie strefie geopolitycznej, zgodnej z wymaganiami legislacyjnymi krajów, w których oferujemy nasze usługi
W każdym z tych obszarów możemy zastosować gotowe rozwiązania, które proponowane są przez Microsoft Azure takie jak: Azure Security Center, Azure Directory, Azure Key Valut.