Skip to content

Well-Architected Framework

Exam Focus: Use WAF pillars to justify design decisions in case-study questions — not just to name the correct service. Relevant for AZ-305 only; not assessed in AZ-900 or AZ-104.

Five-Pillar Summary

Pillar Goal Key Azure Services / Patterns Exam Focus
Reliability Survive failures; meet SLA targets Availability Zones, Traffic Manager, Azure Site Recovery AZ vs AS vs Multi-Region; RTO/RPO targets
Security Protect data, identities, and workloads Microsoft Entra ID, Defender for Cloud, Key Vault, DDoS Zero Trust; defence-in-depth layers
Cost Optimization Maximise value; eliminate waste Reserved Instances, Spot VMs, Azure Advisor, Cost Budgets RI vs Spot vs On-Demand trade-offs
Operational Excellence Safe deployments; observable operations Azure Monitor, Log Analytics, Deployment Slots, IaC Blue/green deploys; alerting strategy
Performance Efficiency Scale to meet demand; minimise latency Azure CDN, Front Door, VMSS, Cosmos DB, Redis Cache Horizontal vs vertical scale; caching layers

Cross-reference: See High Availability & Disaster Recovery for Reliability patterns, Security for defence-in-depth, Networking — CDN for CDN/Front Door, Compute — Caching for Redis tier selection, Networking for DDoS, and Governance for cost control tooling.

flowchart TD
    A[Requirement keyword?] -->|Scale / latency| B[Performance Efficiency\nCDN · Front Door · VMSS · Redis]
    A -->|Uptime / SLA| C[Reliability\nAvailability Zones · Traffic Manager · ASR]
    A -->|Cost / budget| D[Cost Optimization\nReserved Instances · Spot VMs · Advisor]
    A -->|Breach / threat| E[Security\nDefender · Sentinel · Key Vault · RBAC]
    A -->|Safe deploy / ops| F[Operational Excellence\nAzure Monitor · Deployment Slots · IaC]

Decision Flow — Pillar Trade-off Navigator

flowchart TD
    C1[Pillar conflict?] -->|Reliability vs Cost| RC{SLA target >= 99.99%?}
    RC -->|Yes| RC_Y[Reliability wins\nMulti-region active-active\nFront Door + geo-replicated DB]
    RC -->|No| RC_N[Cost Optimization wins\nSingle-region + Availability Zones\nReserved Instances]
    C1 -->|Security vs Performance| SP{Data classified or regulated?}
    SP -->|Yes| SP_Y[Security wins\nEncryption-at-rest + in-transit\nPrivate Endpoints · CMK]
    SP -->|No| SP_N[Performance Efficiency wins\nCDN · Redis Cache · Front Door\nAdd controls incrementally]
    C1 -->|OpEx vs Cost| OC{Prod or deploy freq > daily?}
    OC -->|Yes| OC_Y[Operational Excellence wins\nDeployment Slots · IaC pipeline\nAzure Monitor alerts]
    OC -->|No| OC_N[Cost Optimization wins\nManual deploy acceptable\nDev/test environment]

Reliability — SLA Target Mapping

SLA Target Recommended Deployment Pattern Notes
99.9 % Single region, Availability Set Protects against rack/host failure; no zone fault
99.95 % Single region, Availability Zones Protects against datacenter-level failure
99.99 %+ Multi-region (active-active/passive) Requires Traffic Manager or Front Door for routing

Exam tip: Availability Zones ≠ Availability Sets. AZs span separate datacenters; AS only separate fault/update domains within one datacenter.

Composite SLA Calculation

Composite SLA = SLA₁ × SLA₂ × … × SLAₙ (serial dependencies multiply downward).

Worked example: App Service 99.95 % × SQL Database 99.99 % = 99.94 % (monthly downtime budget drops from ~4.4 min to ~26 min).

Adding redundant independent paths raises the composite SLA: Composite = 1 − (1 − SLA₁) × (1 − SLA₂) for parallel components.

Multi-Region Failover Patterns

Pattern RTO RPO Azure Implementation Key Feature
Active-Active Near zero Near zero Front Door + globally distributed backends Traffic split across regions; no failover lag
Active-Passive (warm) Minutes Seconds–minutes Traffic Manager + pre-provisioned standby region Standby receives replication but serves no live traffic
Active-Passive (cold) Hours Minutes–hours Azure Site Recovery + on-demand provisioning Lowest cost; longest recovery time

Exam tip: Choose active-active when the requirement states RTO ≈ 0 or "no downtime tolerated". Choose active-passive (warm) when cost must be controlled but recovery must complete within minutes. Use composite SLA multiplication to verify the architecture meets the stated SLA target.

Cost Optimization — Compute Pricing Model Selection

Option Best For Commitment Interruption Risk
On-Demand (Pay-as-go) Unpredictable workloads, short-term dev/test None None
Reserved Instances Steady-state, 24/7 production workloads 1 or 3 years None
Spot VMs Fault-tolerant batch jobs, HPC, dev/test None Yes (eviction)
Azure Hybrid Benefit Existing Windows Server / SQL Server licences Bring own licence None

Tools: Azure Advisor surfaces rightsizing and idle resource recommendations. Azure Budgets + Cost Alerts prevent spend overruns. See Governance for Policy and Budget configuration patterns.

Exam tip: In case-study questions, every design decision maps to at least one WAF pillar. When asked why a solution is recommended, frame your answer using the pillar: "This satisfies the Reliability pillar because it adds zone redundancy, raising the composite SLA above 99.95 %."

Last updated for AZ-305 exam preparation — review official Microsoft Learn documentation for latest service updates.

Cost Management & Tagging

Service Type Best For Key Feature
Tags Metadata Cost allocation, filtering Key-value pairs; up to 50 per resource
Azure Policy - Tag Enforcement Governance Require tags on resources Deny untagged resources; inherit parent tags
Cost Management Budgets Cost control Spending alerts and limits Alert at % of budget; action groups supported
Cost Alerts Notification Anomaly detection, budget thresholds Credit, budget, department quota alerts
Cost Analysis Analysis Ad-hoc spend review Filter by tag, resource group, subscription

Exam tip: Tags do NOT inherit from parent scopes (RG to resource) by default. Use Azure Policy with the Inherit a tag from the resource group initiative to enforce tag inheritance automatically.

Tag Inheritance Architecture

graph TD
    A[Management Group] --> B[Subscription]
    B --> C[Resource Group]
    C --> D[Resource]
    A -. "No auto-inherit" .-> D
    C -. "Policy: Inherit tag from RG" .-> D

Cost Management Decision Flow

flowchart TD
    A[Control Azure costs?] --> B{Track by team/project?}
    B -- Yes --> C[Apply tags - Environment, CostCenter, Owner]
    C --> D{Enforce tagging?}
    D -- Yes --> E[Azure Policy - Require tag or Inherit from RG]
    A --> F{Alert on overspend?}
    F -- Yes --> G[Create Budget with alert thresholds]
    G --> H[Attach Action Group for email/webhook notification]