Microsoft AZ-305: Well-Architected Framework i zasady projektowania — Przewodnik do nauki
Część Microsoft Azure Solutions Architect Expert AZ-305 — Przewodnik do nauki. Ćwicz ze zweryfikowanymi odpowiedziami w centrum egzaminów Microsoft, albo rozwiąż testy na czas na ExamRoll.io.
Przegląd
Azure Well-Architected Framework (WAF) to zbiór normatywnych zasad, które ukierunkowują projektowanie, budowanie i eksploatację niezawodnych, bezpiecznych, efektywnych kosztowo, doskonałych operacyjnie i wydajnych obciążeń roboczych na platformie Azure. Dostosowanie rozwiązań do pięciu filarów — niezawodności, bezpieczeństwa, optymalizacji kosztów, doskonałości operacyjnej i wydajności — zapewnia, że decyzje architektoniczne są świadomymi kompromisami, podejmowanymi w oparciu o priorytety biznesowe, tolerancję na ryzyko oraz ograniczenia, takie jak suwerenność danych i budżet. Osiągnięcie spójności na dużą skalę wymaga stref docelowych (landing zones), zarządzania opartego na politykach oraz domyślnego stosowania automatyzacji. Nowoczesne projekty kładą nacisk na rozprzęganie, komunikację sterowaną zdarzeniami oraz wzorce takie jak CQRS, Strangler Fig i mikroserwisy, implementowane przy użyciu natywnych usług Azure i zintegrowanej obserwowalności, aby sprostać zarówno szybkim zmianom, jak i rygorystycznym wymogom zgodności.
Pięć filarów: Niezawodność, Bezpieczeństwo, Koszty, Doskonałość Operacyjna, Wydajność
Niezawodność zapewnia, że obciążenia robocze nadal spełniają biznesowe umowy SLA w przypadku awarii i podczas zmian. Projektuj z uwzględnieniem domen błędów (fault domains) i domen aktualizacji (update domains), wdrażając zasoby w różnych strefach dostępności (Availability Zones) lub parach regionów, wybierając usługi zarządzane z wbudowaną wysoką dostępnością (HA) i implementując wzorce odporności. Testuj zdolność do odtwarzania za pomocą inżynierii chaosu (chaos engineering) i ćwiczeń odtwarzania po awarii (disaster recovery drills). W przypadku danych stanowych wybieraj usługi z funkcjami RPO/RTO — np. Azure SQL Database Active Geo-Replication lub zapisy wieloregionowe w Cosmos DB — w połączeniu z automatycznymi kopiami zapasowymi i przetestowanymi procedurami (runbooks).
Bezpieczeństwo to wielowarstwowa obrona w głąb (defense in depth), zakotwiczona w modelu Zero Trust. Wymuszaj zasadę najmniejszych uprawnień za pomocą Azure RBAC, Privileged Identity Management (PIM) oraz przeglądów dostępu w celu bieżącej higieny uprawnień. Izoluj promień rażenia w sieci (blast radius) za pomocą prywatnych punktów końcowych (private endpoints), grup NSG i Azure Firewall; integruj Web Application Firewall (WAF) na Azure Front Door lub Application Gateway. Działaj zgodnie z założeniem naruszenia (Assume breach), stosując ciągły monitoring za pomocą Defender for Cloud, wykrywanie zagrożeń w Sentinel oraz rygorystyczną ochronę tożsamości (MFA, Conditional Access).
Optymalizacja kosztów równoważy wartość biznesową z całkowitym kosztem posiadania (TCO). Dopasowuj rozmiar zasobów obliczeniowych i warstw usług na podstawie telemetrii; używaj skalowania, aby dopasować się do zapotrzebowania, i wyłączaj środowiska nieprodukcyjne. Angażuj środki za pomocą rezerwacji i planów oszczędnościowych dla stabilnych obciążeń roboczych, wykorzystuj maszyny wirtualne Spot do przetwarzania z możliwością przerwania, stosuj warstwowanie przechowywania i retencji danych oraz preferuj rozwiązania bezserwerowe (serverless), gdy pasują do profilu obciążenia. Wymuszaj tagowanie i budżety oraz używaj Azure Policy do standaryzacji kontroli kosztów.
Doskonałość operacyjna kładzie nacisk na automatyzację, powtarzalność i pętle uczenia się. Traktuj środowiska jako kod za pomocą Bicep/ARM lub Terraform, wymuszaj naprawianie dryfu konfiguracji i wdrażaj spójne procesy CI/CD. Wgląd w operacje pochodzi z ustrukturyzowanych logów, metryk, śladów (traces) i testów syntetycznych, podłączonych do alertów i pulpitów nawigacyjnych SLO, aby skrócić czas MTTR i wspierać proaktywne ulepszenia.
Wydajność zapewnia, że obciążenie robocze spełnia cele dotyczące przepustowości i opóźnień przy zmiennym obciążeniu. Projektuj z myślą o skalowaniu w poziomie (scale-out), stosuj agresywne buforowanie, przesuwaj treści na brzeg sieci (edge) oraz wybieraj partycje danych i repliki do odczytu dostosowane do wzorców dostępu. Weryfikuj za pomocą realistycznych testów obciążeniowych i dostrajaj na podstawie zebranych danych.
Wzorce niezawodności i wydajności w Azure
Wzorce odporności zmniejszają prawdopodobieństwo i wpływ awarii, jednocześnie utrzymując przewidywalne opóźnienia.
Ponawianie prób z wykładniczym czasem oczekiwania i losowością (jitter): Używaj konfigurowalnych polityk ponawiania w pakietach Azure SDK lub bibliotek takich jak Polly (.NET), aby obsługiwać błędy przejściowe z usług takich jak Storage, Service Bus czy Cosmos DB. Wykładniczy czas oczekiwania z losowością (jitter) pozwala uniknąć efektu pędzącego stada (thundering herd); ograniczaj liczbę ponowień, aby chronić umowy SLA i ujawniać awarie na czas.
Wyłącznik awaryjny (Circuit Breaker): Opakowuj wywołania wychodzące (np. do zewnętrznych API) wyłącznikiem awaryjnym, aby szybko przechodziły w stan błędu (fail fast), gdy wskaźniki błędów przekraczają progi, co pozwala na okresy na odzyskanie sprawności. Implementuj na warstwie klienta za pomocą Polly lub na poziomie bramy, używając polityk API Management (ponawianie, limit czasu i buforowanie), aby uniknąć awarii kaskadowych.
Przegroda (Bulkhead): Partycjonuj zasoby, aby jeden „hałaśliwy sąsiad” (noisy neighbor) nie zagłodził systemu. Izoluj pule wątków, repliki kontenerów i partycje przetwarzania komunikatów. Na poziomie platformy używaj oddzielnych planów App Service, pul węzłów AKS lub kolejek/tematów Service Bus dla każdego ograniczonego kontekstu (bounded context), aby ograniczać zasięg awarii.
Monitorowanie punktów końcowych kondycji: Uwidaczniaj sondy żywotności (liveness) i gotowości (readiness) w usługach. Sondy kondycji w Application Gateway/Front Door kierują ruch tylko do sprawnych instancji. W AKS sondy Kubernetes zarządzają restartami podów i bramkowaniem wdrożeń (rollout gating). Połącz to z testami dostępności Application Insights i niestandardowymi punktami końcowymi „/healthz”, aby wcześnie wykrywać degradację zależności.
Wzorce wydajności uzupełniają odporność:
Strategie buforowania (caching): Używaj Azure Cache for Redis dla gorących danych i odciążania sesji. Stosuj buforowanie danych wyjściowych na poziomie Azure Front Door lub API Management dla idempotentnych żądań GET. Preferuj wzorce write-through lub write-behind tam, gdzie to właściwe; unieważniaj dane przez klucz lub zdarzenie, aby utrzymać ich aktualność. W warstwach danych zintegrowana pamięć podręczna Cosmos DB zmniejsza zużycie jednostek RU dla obciążeń z dużą liczbą odczytów.
CDN: Przesuwaj zasoby statyczne i treści dynamiczne bliżej użytkowników za pomocą Azure Front Door lub Azure CDN, włączając kompresję, TLS i WAF. Konfiguruj buforowanie oparte na regułach, sprawdzanie kondycji źródła i geofiltrowanie, aby zoptymalizować opóźnienia i koszty.
Repliki do odczytu: Skaluj obciążenia z dużą liczbą odczytów za pomocą czytelnych replik pomocniczych w Azure SQL Database (Active Geo-Replication) lub replik nazwanych w warstwie Hyperscale; używaj replik do odczytu w Azure Database for PostgreSQL/MySQL do celów analitycznych lub raportowania; włączaj odczyty wieloregionowe w Cosmos DB z modelowaniem spójności (np. Session, Consistent Prefix) dostosowanym do potrzeb biznesowych.
Wzorce automatycznego skalowania: Implementuj skalowanie horyzontalne za pomocą Virtual Machine Scale Sets, reguł automatycznego skalowania App Service, AKS HPA/KEDA do skalowania sterowanego zdarzeniami oraz planów Consumption/Premium dla Functions. W przypadku danych używaj automatycznego skalowania RU/s w Cosmos DB oraz funkcji auto-inflate w Event Hubs do obsługi ruchu o charakterze impulsowym. Zawsze weryfikuj progi skalowania i okresy schładzania (cool-down), aby uniknąć oscylacji.
Strefy docelowe Azure i nowoczesne wzorce architektoniczne
Strefy docelowe Azure (Azure Landing Zones) operacjonalizują framework na dużą skalę. Zorganizuj hierarchię grup zarządzania (główna → platforma → jednostki biznesowe), aby określić zakres dla Azure Policy, RBAC i budżetów. Platformowe strefy docelowe zapewniają współdzielone usługi — tożsamość (Azure AD), łączność (hub z Azure Firewall, DDoS, DNS), zarządzanie (Log Analytics, Automation, Update Management) i bezpieczeństwo (Defender for Cloud). Aplikacyjne strefy docelowe hostują obciążenia, posegmentowane według środowiska i granic zgodności, z dziedziczonymi politykami, które wymuszają tagowanie, diagnostykę i dozwolone typy zasobów. Zastosuj projekt Cloud Adoption Framework (CAF) Enterprise-Scale lub akceleratory stref docelowych oparte na Terraform/Bicep, aby szybko i spójnie rozpocząć pracę.
Mikrousługi na platformie Azure kładą nacisk na niezależne zespoły i usługi, które można wdrażać autonomicznie:
- Odnajdywanie usług: W AKS użyj Kubernetes DNS/CoreDNS do rozpoznawania nazw wewnątrz klastra; rozszerz to o kontenery sidecar Dapr w celu odnajdywania opartego na nazwach i ponawiania prób. Service Fabric zapewnia wbudowane zarządzanie nazwami i stanem kondycji dla usług stanowych.
- Wzorzec bramy API: Użyj Azure API Management do centralizacji routingu, wersjonowania, uwierzytelniania (walidacja OAuth 2.0/JWT), przydziałów (quotas) i buforowania. Umieść Azure Front Door z przodu, aby zapewnić globalny anycast, odciążenie SSL i WAF; kieruj ruch według regionu i bezpiecznie przeprowadzaj wdrożenia kanarkowe (canary releases).
- Komunikacja sterowana zdarzeniami: Użyj Azure Service Bus dla uporządkowanych, transakcyjnych poleceń z sesjami; wybierz Event Hubs dla telemetrii o wysokiej przepustowości; oraz Event Grid dla reaktywnych subskrypcji zdarzeń w stylu push. Projektuj z myślą o dostarczaniu co najmniej raz (at-least-once delivery), idempotentnych procedurach obsługi, obsłudze zatrutych wiadomości i kolejkach DLQ.
CQRS i Event Sourcing oddzielają modele zapisu i odczytu w celu izolacji wydajności i złożoności. Utrwalaj zdarzenia typu append-only w magazynie zdarzeń (Cosmos DB, Azure SQL lub Event Hubs z kompakcją poprzez docelową pamięć masową), odtwarzaj je, aby odbudować stan, i rzutuj na modele odczytu zoptymalizowane pod kątem zapytań, takie jak Azure SQL Database, kontenery Cosmos DB lub Azure Cognitive Search. Funkcja change feed w Cosmos DB jest kluczowym elementem dla projekcji: Azure Functions lub Azure Stream Analytics mogą przetwarzać zmiany, aby aktualizować magazyny odczytu w czasie niemal rzeczywistym. Event Hubs buforuje strumienie zdarzeń o dużej objętości, a konsumenci skalują się niezależnie. Zaakceptuj ostateczną spójność (eventual consistency) z jasnymi umowami SLA i wzorcami UX (np. potwierdzenie wykonania polecenia, a następnie konwergencja modelu odczytu).
Wzorzec dusiciela (Strangler Fig) umożliwia przyrostową modernizację. Umieść Azure API Management przed monolitem, aby kierować określone punkty końcowe do nowych mikrousług, podczas gdy reszta ruchu nadal trafia do starszego backendu. Użyj polityk do routingu opartego na nagłówkach, transformacji odpowiedzi i uwierzytelniania. Synchronizuj dane za pomocą change data capture (np. Azure Data Factory lub CDC bazy danych do Event Hubs) i buduj nowe modele odczytu z Cosmos DB + change feed, stopniowo wycofując funkcjonalności monolitu. Zarządzaj ryzykiem za pomocą flag funkcji (feature flags), routingu kanarkowego na poziomie Front Door i kompleksowej obserwowalności w celu porównywania zachowań.
Praktyczny scenariusz problemowy
Starbucks modernizuje swoją globalną platformę do składania zamówień, obecnie będącą monolitem hostowanym na maszynach wirtualnych w jednym regionie. Firma musi poprawić niezawodność w różnych regionach, zmniejszyć opóźnienia dla klientów mobilnych, wdrożyć zasadę najmniejszych uprawnień i model Zero Trust oraz migrować system przyrostowo, bez zakłócania działalności biznesowej.
- Ustanowienie korporacyjnych stref docelowych
- Utwórz hierarchię grup zarządzania ze strefami docelowymi platformy i aplikacji. Zastosuj Azure Policy do tagowania, diagnostyki, dozwolonych jednostek SKU i prywatnych punktów końcowych. Wybierz referencyjną implementację CAF Enterprise-Scale dla tożsamości, łączności (hub z Azure Firewall Premium, Private DNS) i zarządzania (centralny Log Analytics). Dlaczego: Strefy docelowe wymuszają spójne podstawy bezpieczeństwa, sieci i ładu korporacyjnego, dzięki czemu obciążenia dziedziczą mechanizmy kontroli w sposób zamierzony (by design).
- Umieszczenie fasady brzegowej i API przed monolitem
- Wdróż Azure Front Door (Standard/Premium) z WAF, aby zapewnić globalny punkt wejścia anycast, terminację TLS i ochronę przed atakami DDoS. Umieść Azure API Management jako bramę API, zintegrowaną z Front Door, aby uwierzytelniać klientów (OAuth 2.0), stosować limity szybkości (rate limits) dla poszczególnych grup konsumentów i transformować żądania/odpowiedzi. Dlaczego: Front Door zmniejsza opóźnienia i chroni na brzegu sieci; API Management implementuje wzorzec bramy API, umożliwiając podejście Strangler Fig i ograniczanie przepustowości (throttling) dla poszczególnych dzierżawców.
- Implementacja migracji z użyciem wzorca Strangler Fig
- Użyj polityk API Management do kierowania wybranych punktów końcowych (np. menu, lokalizator sklepów) do nowych mikrousług działających na AKS w dwóch regionach; wszystkie pozostałe trasy kierowane są do starszego monolitu za wewnętrznym load balancerem. Dlaczego: Routing przyrostowy pozwala uniknąć przełączeń typu big-bang i umożliwia zespołom migrację funkcjonalności w sposób niezależny.
- Budowa mikrousług z wykorzystaniem odpornych i wydajnych wzorców
- W AKS włącz HPA z KEDA w celu automatycznego skalowania sterowanego zdarzeniami. Użyj Dapr do odnajdywania usług, ponawiania prób z wykładniczym czasem oczekiwania (exponential backoff) i wyłączników bezpieczeństwa (circuit breaking) między usługami. Zintegruj Azure Cache for Redis w celu buforowania gorących odczytów i odciążania sesji. Dlaczego: AKS i Dapr zapewniają niezależną od platformy odporność i odnajdywanie usług; buforowanie zmniejsza opóźnienia odczytu i obciążenie backendu.
- Wdrożenie komunikacji sterowanej zdarzeniami i CQRS
- Publikuj zdarzenia domenowe do Azure Event Hubs; utrwalaj zamówienia w Cosmos DB z partycjonowaniem według klienta lub sklepu. Użyj funkcji change feed w Cosmos DB z Azure Functions, aby rzutować dane na modele odczytu w Azure SQL Database (raportowanie) i Azure Cognitive Search (wyszukiwanie asortymentu sklepu). Dlaczego: Event Hubs oddziela producentów od konsumentów przy dużej przepustowości; change feed umożliwia tworzenie zmaterializowanych widoków w czasie niemal rzeczywistym dla CQRS bez wpływu na wydajność zapisu.
- Wzmocnienie bezpieczeństwa i tożsamości
- Wymuś użycie prywatnych punktów końcowych dla usług danych, NSG/ASG do segmentacji i Azure Firewall do kontroli ruchu wychodzącego. Używaj tożsamości zarządzanych dla wszystkich obciążeń, PIM dla ról uprzywilejowanych i przeglądów dostępu dla subskrypcji produktów w API Management. Włącz Conditional Access i MFA dla personelu operacyjnego. Dlaczego: Obrona w głąb (defense in depth) i zasada najmniejszych uprawnień zmniejszają promień rażenia i ryzyko związane z poświadczeniami; przeglądy dostępu utrzymują higienę uprawnień.
- Projektowanie pod kątem niezawodności i obserwowalności
- Wdróż zasoby w Strefach Dostępności w każdym regionie, z routingiem active-active w Front Door i wieloregionalną konfiguracją API Management. Włącz monitorowanie punktów końcowych kondycji za pomocą Front Door i sond AKS; skonfiguruj wdrożenia kanarkowe dla nowych usług. Zastosuj instrumentację z OpenTelemetry do Application Insights, centralizuj logi w Log Analytics i twórz pulpity nawigacyjne SLO z alertami. Zaimplementuj backup/DR dla magazynów stanowych i przeprowadzaj eksperymenty chaosu. Dlaczego: Redundancja strefowa i regionalna, routing oparty na stanie kondycji oraz kompleksowa obserwowalność pozwalają utrzymać umowy SLA i umożliwiają szybką reakcję na incydenty.
- Ciągła optymalizacja kosztów
- Dopasuj rozmiar pul nodów AKS i planów App Service na podstawie telemetrii; zastosuj Rezerwacje/Plany oszczędnościowe dla stałych obciążeń obliczeniowych; używaj maszyn wirtualnych typu Spot dla niekrytycznych zadań wsadowych. Włącz automatyczne skalowanie w Cosmos DB i oceń plany taryfowe oparte na zobowiązaniach. Wymuszaj stosowanie budżetów/tagów i co miesiąc przeglądaj rekomendacje Azure Advisor. Dlaczego: Systematyczne zarządzanie kosztami utrzymuje wydajność, minimalizując jednocześnie marnotrawstwo i koszty jednostkowe.
← Migracja i modernizacja · Wszystkie domeny
Przećwicz te pytania → · Testy na czas na ExamRoll.io →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
Zdaj egzamin →