AZ-305 Guide Chapter 12 · Well-Architected Framework

Chapter 12 · AZ-305 bridge

The Azure Well-Architected Framework

📖 Theory 45 min🛠 Lab 40 minAZ-305 prerequisite · not on AZ-104

CAF (chapter 11) prepared the whole organisation. The Well-Architected Framework (WAF) zooms in on one workload and asks: is it reliable, secure, cost-efficient, easy to operate, and fast enough? You already made many WAF decisions in this guide without calling them that. In the lab you review the environment you built as an architect would.

Part A

Theory

What WAF is

The Azure Well-Architected Framework is a set of guiding principles for designing and improving a workload: the collection of application code, data, and infrastructure that together deliver one business outcome (a web shop, a payroll system, a data platform).

WAF is built on five pillars. For each pillar it gives you:

Your workloadapp · data · infrastructure Reliabilitykeeps working, recovers Securityconfidentiality, integrity, availability Cost Optimizationvalue for money Operational Excellencedeploy and run it safely Performance Efficiencyscales to meet demand
Every design decision touches several pillars. The goal isn't to max out all five, but to balance them for what the business needs.

WAF comes with tools you've partly met already:

Reliability

Goal: the workload keeps doing what it's supposed to, and when something fails (something always fails), it recovers to a working state quickly.

Start with what the business needs. Three numbers drive almost every reliability decision:

Design principles, with what you used in this guide:

Composite SLA

When a request passes through several services in series, all of them must work, so you multiply their SLAs. The result is always lower than the weakest component:

Web app (App Service) 99.95%  ×  Azure SQL Database 99.99%
= 0.9995 × 0.9999 = 0.99940  →  99.94%  ≈ 26 minutes of downtime per month allowed

Redundant copies in parallel do the opposite: the combination fails only if all copies fail. Two independent deployments at 99.9% each give 1 − (0.001 × 0.001) = 99.9999%. That's why multi-zone and multi-region designs reach higher numbers than any single service.

AZ-305 thinking

"The solution must have an SLA of at least 99.95%" and the path is App Service (99.95%) + SQL (99.99%)? The composite is 99.94%, so it doesn't meet the requirement. You'd need redundancy, for example a second region behind Front Door.

Security

Goal: protect the workload's confidentiality (only the right people see the data), integrity (data and systems aren't tampered with) and availability (it can't be taken down), the CIA triad.

WAF's security pillar applies Zero Trust and defense in depth (chapter 6) to one workload:

Cost Optimization

Goal: get the most business value per euro, not simply spend the least. A cheap design that fails its SLO isn't optimised.

Two calculators help before you build: the Azure pricing calculator (what will this design cost per month?) and the TCO calculator (on-premises costs compared to Azure).

Operational Excellence

Goal: the team can deploy, change and run the workload safely and predictably, and keeps getting better at it.

Performance Efficiency

Goal: the workload handles the load users put on it, efficiently, also when demand changes.

Trade-offs between the pillars

Almost every decision helps one pillar and costs another. WAF asks you to make trade-offs on purpose and write them down (for example in an architecture decision record), instead of discovering them later.

DecisionImprovesCosts
Add a second region with Site RecoveryReliabilityCost (replication, standby storage) and operations (DR tests)
Inspect all traffic with Azure Firewall Premium (TLS inspection)SecurityPerformance (latency) and cost
Container Apps with min replicas 0CostPerformance (cold start on the first request)
Reserve VMs for 3 yearsCost (up to ~70% off)Flexibility: harder to change size or move to PaaS later
Microservices instead of one monolithPerformance (scale parts independently), agilityOperational complexity, more things that can fail

CAF and WAF together

Cloud Adoption FrameworkWell-Architected Framework
ScopeThe organisation and its whole cloud estateOne workload
Main questionHow do we adopt the cloud successfully?Is this workload designed well?
Typical outputStrategy, adoption plan, landing zones, governanceArchitecture decisions, review results, backlog of improvements
Who uses itLeadership, platform and governance teamsWorkload architects and teams
ToolsStrategy and readiness assessments, landing zone acceleratorsWell-Architected Review, Advisor, service guides

A workload team builds a well-architected workload (WAF) inside an application landing zone that the platform team built according to CAF.

AZ-305 link

AZ-305's four skill areas map almost one-to-one to WAF: "design identity, governance and monitoring" (security, operational excellence), "design data storage", "design business continuity" (reliability) and "design infrastructure" (performance, cost). Almost every answer is a trade-off: the correct option meets the requirement at the lowest cost or effort. Read requirements as pillar priorities: "minimise cost" and "maximise availability" in the same question tell you which way to lean.

Self-check

1. A request goes through a load balancer (99.99%), a VM tier across zones (99.99%) and a database (99.95%). What is the composite SLA, roughly?

C. 0.9999 × 0.9999 × 0.9995 ≈ 0.9993. In series, the composite is always below the weakest component.

2. The business accepts losing at most 15 minutes of orders after a disaster. Which value is that?

A. RPO is about data loss; RTO is about downtime.

3. Twenty VMs run 24/7 for at least the next three years with a stable size. Which option lowers cost the most?

D. Spot can be evicted, autoscale doesn't help a constant load, and Dev/Test isn't for production.

4. Deployments of a web app sometimes break production, and rollback takes an hour. Which pillar is weakest, and what helps first?

B. Safe deployment practices are operational excellence; a swap back takes seconds.

5. Which tool shows recommendations for your existing resources, grouped by the five WAF pillars?

C. Advisor's categories are the WAF pillars. The Well-Architected Review is a questionnaire about a workload's design, not a scan of resources.

6. You set Container Apps to min replicas 0 to save money. Users complain the first request in the morning is slow. Which pillars are trading off?

A. Scale to zero saves cost but causes cold starts. Setting min replicas to 1 reverses the trade-off.

Part B

Lab: review what you built

This lab is a design review. You look at the environment from chapters 1–10 (use the diagram on the overview page) and at your subscription today, the way an architect reviews a workload. Most tasks are on paper; the Azure tasks only read, so they cost nothing.

The variables from chapter 0 ($RG, $LOC, $LOC2, $INIT, $ST, $ACR, $MYIP) load automatically in every terminal; if they don't, run . ~/az104.env. Any other variable a task needs is set at the top of that task's Azure CLI solution, so every solution works on its own in a fresh terminal.

  1. Task · on paper

    Find the single points of failure

    Treat the lab environment as if it were a production web shop. List at least four components that are a single point of failure or that wouldn't survive a zone or region outage, and for each, one change that would fix it.

    Done when
    • You have four or more weak spots, each with a fix, and you've noted which fix you'd skip because it isn't worth the cost.
    Hint

    Walk the request path from the user to the data: public IP → load balancer → VMs → storage. Then look at what supports it: DNS, admin access, monitoring, backup.

    Example answer
    Weak spotFix
    The whole web tier runs in one region; only vm-web2 was replicated with Site RecoveryReplicate both VMs (or deploy a second region with IaC) and put Front Door or a cross-region load balancer in front
    Two VMs only: if one zone fails, a single VM carries all trafficA VM scale set across three zones with autoscale
    The App Service plan was one S1 instancePremium v3 with zone redundancy (at least 3 instances)
    Container App with min replicas 0: cold starts, no zone redundancy guaranteedMin replicas ≥ 2 in a zone-redundant environment
    Bastion Developer: shared, one session, no SLABastion Basic/Standard in the hub (or accept it: admin access isn't on the user path)
    Storage was RA-GRS: the primary copies are all in one zone, so a zone outage means failing over to the secondary region, with possible data lossRA-GZRS (zone-redundant in the primary, geo-replicated too)

    A reasonable cost decision: keep Bastion Developer and accept it, because admin access doesn't affect users.

  2. Task · on paper

    Calculate the composite SLA

    The web path is: Standard load balancer (99.99%) → two VMs across availability zones (99.99%) → files from a storage account (RA-GRS, assume 99.9% for writes). Calculate:

    • the composite SLA of the path;
    • how many minutes per month of downtime that allows (use 730 hours per month);
    • whether the path meets a business SLO of 99.95%, and if not, which component you'd improve first.
    Done when
    • You have a percentage, a number of minutes, and a yes/no with a reason.
    Solution
    0.9999 × 0.9999 × 0.999 = 0.99880   →  99.88%
    allowed downtime = (1 − 0.9988) × 730 h × 60 = 0.0012 × 43,800 min ≈ 53 minutes/month

    No, 99.88% is below 99.95%. The storage dependency is the weakest link. Options: make the app tolerate storage hiccups (cache the files locally or on a CDN, retry), or check the storage SLA for the redundancy you choose. Improving the 99.99% components further would hardly change the result.

  3. Task

    Read Advisor through WAF glasses

    Open Azure Advisor for your subscription and find:

    • your Advisor score and the score per category;
    • for each category that has recommendations, one recommendation and the WAF pillar it belongs to.
    Done when
    • You've written down the overall score and at least two recommendations with their pillar.
    Hint

    After the chapter 10 cleanup there may be few or no resources left, and Advisor's list can be short. That's fine: note the categories and what an empty category means. Recommendations refresh about once a day.

    Solution · Portal

    Advisor → Overview (or Advisor score): the five categories are Reliability, Security, Cost, Operational excellence, Performance, the WAF pillars. Typical findings: "Enable soft delete for blobs" (reliability), "Machines should have vulnerability findings resolved" (security, from Defender for Cloud), "Right-size or shut down underutilised VMs" (cost).

    Solution · Azure CLI
    az advisor recommendation list \
      --query "[].{pillar:category, impact:impact, problem:shortDescription.problem, resource:impactedValue}" -o table
  4. Task

    Run a Well-Architected Review

    Open the Azure Well-Architected Review on Microsoft Learn (link under "Read more") and assess the lab web shop for at least the Reliability and Cost Optimization pillars. Answer honestly for the environment as you built it.

    Done when
    • You have a score per assessed pillar.
    • You've picked the three recommendations you'd do first, and you can explain why those three.
    Hint

    You can do the assessment without signing in, but signing in with a Microsoft account saves it so you can compare a later review with this one. It takes about 15–20 minutes for two pillars.

    What a good answer looks like

    Your scores will differ, but the top recommendations usually include: define SLO, RTO and RPO for the workload (everything else depends on them), test the DR plan regularly, and set budgets and tag for cost ownership. Choose the ones that remove the most risk for the least effort; that's exactly the reasoning AZ-305 wants.

  5. Task · on paper

    Make a trade-off on purpose

    Fabrikam (chapter 11) wants TrackIt to have an RTO of 12 hours and an RPO of 1 hour if the West Europe region fails, on a tight budget. Choose between these designs and write a short decision record (context, decision, consequences):

    • A. Active-active in two regions behind Front Door, with geo-replicated database.
    • B. App Service in one region, deployed with Bicep; database with geo-redundant backups; in a disaster, redeploy to the paired region from code and restore the latest backup.
    • C. One region, nightly backups only.
    Done when
    • Your record names the chosen design, why it meets RTO and RPO, and which pillar pays for it.
    Example answer

    Decision: B. Redeploying an App Service app from Bicep takes minutes. For Azure SQL Database, Microsoft documents geo-restore from geo-redundant backups with an RTO of up to 12 hours and an RPO of 1 hour, which exactly matches the requirement. (Always check these figures for the database service you actually use.)

    Rejected: A meets the targets with room to spare but roughly doubles the cost, which conflicts with the tight budget. C fails the RPO (up to 24 hours of data lost) and risks the RTO (no tested way to rebuild the app elsewhere).

    Consequences: Cost stays low; reliability depends on the redeploy actually working, so operational excellence pays: the team must keep the Bicep current and rehearse the recovery twice a year.

Finished

You've refreshed all five AZ-104 areas, built and removed a complete environment, and looked at it through the eyes of CAF and WAF, which is where AZ-305 starts. Next steps:

Cost of this chapter: nothing.