Across eight modules you have seen the Contoso Airlines platform in pieces. Every lesson introduced one component, justified it and left it running: a network here, a database there, a pipeline, an alert, a budget. It is the only way to learn a platform — nobody takes in fifty services at once — but it is not the way the platform exists. In production everything is connected to everything, and on the day something breaks nobody has time to mentally reassemble eight modules: you need a blueprint.
This lesson draws that whole blueprint and teaches you to read it. It does not explain again what App Service is or how Cosmos DB works: you already know that. What it does is show the whole and the criteria: where a request comes in and where it goes out, what talks to what and through what, why each piece is that one and not another, how much the result costs, which three different versions of this same architecture would make sense in other contexts, and what the team would do differently if it started today with what it knows now.
It is the most important lesson in the module, because reading an architecture as a whole — spotting the single point of failure, the unnecessary coupling, the piece that is surplus to requirements — is exactly what separates somebody who knows services from somebody who designs systems.
Reminder: every euro figure is illustrative and fictitious, and the resource names belong to an invented case study. Real prices vary by region and change frequently.
Contents
- How to read an architecture blueprint
- The complete Contoso Airlines blueprint
- Reading it zone by zone
- A booking end to end
- The master decision table
- The platform's numbers
- Three variants of the same architecture
- The honest retrospective: what we would do differently today
- Reference architectures and the Azure Architecture Center
- Common Mistakes and Tips
- Exercises
- Conclusion
- How to read an architecture blueprint
A useful architecture diagram is not an inventory of icons: it is a map of flows and boundaries. You always read it in the same order, and it is worth internalizing because it works for any platform, not just this one:
- Where does traffic come in? Everything arriving from the internet has one single legitimate entry point. If there are two, one of them is a hole.
- Where are the trust boundaries? The public edge, the private network, the data subnet. Every boundary crossing is a control: WAF, firewall, NSG, private endpoint.
- What is synchronous and what is asynchronous? A solid arrow means that if the destination goes down, the origin fails. An arrow through a queue or an event means that if the destination goes down, the work waits. It is the distinction that most determines real resilience.
- Where does state live? Compute can be recreated in minutes; data cannot. Anything that holds state needs a backup, a replica and a recovery plan.
- Who observes the whole thing? The operations platform takes no part in the flow, but it crosses all of it.
- What stops anybody creating what should not exist? Governance is not in the flow: it sits above it, in the subscription hierarchy.
The blueprint in the next section is drawn in exactly that order, top to bottom.
- The complete Contoso Airlines blueprint
flowchart TB
subgraph EDGE["Edge and global delivery"]
USR["Passenger<br/>browser and mobile"]
FD["fd-contoso-global<br/>Front Door"]
WAF["wafcontosoglobal<br/>WAF"]
end
subgraph HUB["vnet-contoso-hub-pro 10.10.0.0/16"]
FW["fw-contoso-hub-pro<br/>Azure Firewall"]
BAS["bastion-contoso-pro"]
VGW["vgw-contoso-pro<br/>site-to-site VPN"]
end
subgraph OFI["Own offices"]
BCN["Barcelona<br/>datacenter"]
PMI["Palma"]
end
subgraph APP["Application layer - vnet-contoso-pro 10.20.0.0/16"]
WEB["app-contoso-reservas-pro<br/>App Service Premium v3"]
API["app-contoso-api-disponibilidad-pro<br/>Availability API"]
VMSS["vmss-api-disponibilidad-pro<br/>+ lb-api-disponibilidad-pro"]
CAE["cae-contoso-pro<br/>ca-motor-disponibilidad"]
AKS["aks-contoso-operaciones<br/>system / apps / batch"]
ACR["acrcontosopro"]
end
subgraph INT["Integration"]
SB["sb-contoso-pro<br/>reservas-confirmadas topic"]
FUNC["func-contoso-tarjetas-pro"]
LOGIC["logic-contoso-retrasos-pro"]
EVGT["evgt-contoso-reservas-pro"]
EVH["evhns-contoso-telemetria-pro"]
OAI["oai-contoso-pro<br/>Azure AI Services"]
end
subgraph DATA["Data layer"]
SQL["sql-contoso-reservas-pro<br/>db-reservas + fg-contoso-reservas"]
COSMOS["cosmos-contoso-tarifas-pro<br/>partition /origenDestino"]
MYSQL["mysql-contoso-portal-pro"]
PSQL["psql-contoso-tripulaciones-pro"]
STT["sttarjetascontosopro<br/>GZRS"]
LAGO["stlagocontosopro<br/>bronce / plata / oro"]
SYN["syn-contoso-analitica-pro"]
end
subgraph SEC["Security"]
KV["kv-contoso-pro"]
ENTRA["Microsoft Entra ID<br/>managed identities"]
PE["pe-sql-reservas<br/>pe-storage-tarjetas<br/>pe-kv-contoso"]
end
subgraph OPS["Operations platform"]
LOG["log-contoso-pro<br/>Log Analytics"]
AI["ai-insights-contoso-pro<br/>Application Insights"]
AUTO["aa-contoso-operaciones"]
RSV["rsv-contoso-pro<br/>bv-contoso-pro"]
end
USR --> FD --> WAF --> WEB
WAF --> API
WEB --> API --> CAE
API --> VMSS
WEB --> SB --> FUNC --> STT
EVGT --> LOGIC
EVH --> SYN
API --> COSMOS
WEB --> SQL
AKS --> PSQL
AKS --> LAGO --> SYN
ACR --> AKS
ACR --> CAE
MYSQL --- WEB
WEB -.->|"managed identity"| KV
API -.->|"managed identity"| KV
ENTRA -.-> KV
PE -.-> SQL
PE -.-> STT
PE -.-> KV
VGW --- BCN
VGW --- PMI
FW --- VGW
BAS -.-> VMSS
OAI -.-> API
WEB -.-> AI
API -.-> AI --> LOG
AKS -.-> LOG
SQL -.-> LOG
AUTO -.-> LOG
RSV -.-> SQL
Solid arrows are request or data flow; dashed ones are control plane dependencies: identity, secrets, telemetry, backups. The distinction is deliberate: if kv-contoso-pro stops responding, the application does not fall over instantly — the secrets are cached — but if cosmos-contoso-tarifas-pro stops responding, flight search fails on the spot.
And above the whole drawing, without appearing in it, sits the governance hierarchy, which takes no part in any flow but determines what can be created:
flowchart TB
MG["mg-contoso"] --> MGP["mg-contoso-plataforma"]
MG --> MGC["mg-contoso-cargas"]
MGP --> SUBP["Contoso Airlines - Produccion"]
MGC --> SUBD["Contoso Airlines - Desarrollo"]
SUBP --> RG1["rg-contoso-reservas-pro"]
SUBP --> RG2["rg-contoso-red-pro"]
SUBP --> RG3["rg-contoso-seguridad-pro"]
SUBD --> RG4["rg-contoso-reservas-dev"]
POL["Base de gobernanza de Contoso<br/>initiative"] -.->|"assigned at"| MG
- Reading it zone by zone
Edge and global delivery
A single entry point: fd-contoso-global. Everything else is closed to the internet. Front Door terminates TLS at the point of presence closest to the passenger, applies the wafcontosoglobal WAF before the request reaches any application, caches static content and routes to the healthy region. The applications only accept traffic coming from Front Door, which makes the WAF mandatory rather than optional. Module 2 (global delivery) and module 4 (WAF).
Application layer
Four compute models coexisting, and that is not inconsistency but fitness for purpose:
| Workload | Service | Why that model |
|---|---|---|
| Bookings portal | App Service Premium v3 | Classic web application, preproduccion slot, zone redundancy, /salud |
| Availability API | App Service + vmss-api-disponibilidad-pro |
Extreme seasonal peaks, autoscaling 2-20 |
| Availability engine | Container Apps ca-motor-disponibilidad |
Container with scale to zero, no cluster to operate |
| Internal operations and batch | AKS aks-contoso-operaciones |
Several teams, heterogeneous workloads, spot nodes |
Integration
This is the zone that stops the platform collapsing entirely when something fails. sb-contoso-pro decouples booking confirmation from everything that happens afterwards: the reservas-confirmadas topic fans out to tarjetas, facturacion and fidelizacion, three consumers that know nothing about each other and that can be down without preventing a sale. evgt-contoso-reservas-pro propagates discrete events, logic-contoso-retrasos-pro orchestrates passenger notifications with connectors instead of code, and evhns-contoso-telemetria-pro absorbs the telemetry firehose heading into analytics. Module 6.
Data layer
Five engines, one per shape of data: SQL for booking transactions, Cosmos DB for globally distributed, read-heavy fares, MySQL for the legacy content portal, PostgreSQL for crews, and the lake with Synapse for analytics. All of them reachable only through a private endpoint. This is the state, and that is why the backups, the replicas and the recovery plan concentrate here. Module 3 and module 7.
Operations platform and governance
log-contoso-pro is a single workspace where everything converges: applications, platform, security and activity. Alerts, ag-guardia-contoso, the dashboards and the KQL queries all rest on it. And above it, the Base de gobernanza de Contoso initiative prevents anybody creating a resource without tags, outside the allowed regions, with public blobs or without HTTPS. Modules 4 and 7.
- A booking end to end
This is the flow that justifies the existence of the entire platform: a passenger searches for a Barcelona-Palma flight and ends up with her boarding pass in her inbox.
sequenceDiagram
autonumber
participant P as Passenger
participant FD as fd-contoso-global + WAF
participant W as app-contoso-reservas-pro
participant A as api-disponibilidad
participant C as cosmos-tarifas
participant S as db-reservas
participant B as sb-contoso-pro
participant F as func-contoso-tarjetas-pro
participant T as sttarjetascontosopro
P->>FD: Search BCN-PMI
FD->>FD: WAF rules and cache
FD->>W: Routed request
W->>A: Query availability
A->>C: Read fares by /origenDestino
C-->>A: Fares
A-->>W: Flights and prices
W-->>P: Results
P->>W: Confirm and pay
W->>S: Booking transaction
S-->>W: Locator CA7431
W->>B: Publish reservas-confirmadas
W-->>P: Booking confirmed
B->>F: tarjetas subscription
F->>S: Read flight data
F->>T: Store boarding pass PDF
F-->>P: Email with the boarding pass
The important thing about the diagram is where the response to the passenger ends: at step 13. Everything that comes afterwards happens behind the scenes, and that boundary is the most valuable architecture decision in the whole platform. If boarding pass generation fails, the sale is already made and the message is retried.
| Step | Piece | Module where it was built |
|---|---|---|
| 1-3 | Front Door, WAF, routing | M2 (global delivery), M4 (WAF) |
| 4 | App Service and its plan | M2 |
| 5-7 | API and autoscaling | M2, M6 |
| 6 | Cosmos DB and partition key | M3 |
| 9-10 | SQL Database and transaction | M3 |
| 11 | Service Bus, topic and subscriptions | M6 |
| 14-16 | Azure Functions and Storage | M6, M2 |
| Cross-cutting | Managed identity and Key Vault | M4 |
| Cross-cutting | Distributed trace in Application Insights | M7 |
| Cross-cutting | Every piece deployed by pipeline and Bicep | M5 |
| Cross-cutting | Cost allocated by tag | M8 |
- The master decision table
Every architecture is a list of decisions with their discarded alternative. This is Contoso's, in full:
| Decision | Discarded alternative | Reason | Module |
|---|---|---|---|
| App Service for the portal | Virtual machines | No operating system to patch; slots and scaling included | M2 |
| VMSS for the API only | Everything on App Service | Fine-grained control of scaling during seasonal peaks and a lower per-instance cost | M2 |
| Front Door | Application Gateway alone | Global delivery, caching and WAF at the edge, not in the region | M2 |
| Pilot light in North Europe | Multi-region active-active | Disproportionate cost for an RTO of 4 h that the business accepted | M7 |
| Cosmos DB for fares | SQL Database | Massive reads, low latency, flexible schema, writes by route | M3 |
/origenDestino partition |
/aerolinea or /fecha |
High cardinality and queries always by route; avoids a hot partition | M3 |
| SQL Database for bookings | Cosmos DB | ACID transactions and referential integrity are non-negotiable | M3 |
| Private endpoints | Service firewall with IP rules | Removes public exposure of the data; mandatory for boarding passes | M2, M4 |
| Managed identities | Connection strings in configuration | No secret to rotate and none to leak | M4 |
| Policy initiative | Manual review at deployment time | What should not exist never gets created | M4 |
| Bicep | The portal and loose scripts | A reproducible environment, reviewable in a pull request | M5 |
| Container Apps rather than AKS | AKS for everything | The engine did not need a cluster; scale to zero and zero operations | M6 |
| AKS for operations only | Container Apps for everything | Several teams, batch workloads, node and spot control | M6 |
| Service Bus between sale and boarding pass | Synchronous HTTP call | Decouples the failure: the sale does not depend on the PDF | M6 |
| One Log Analytics workspace | One per team or per environment | Correlating across layers is impossible with the data split up | M7 |
| GZRS for boarding passes | LRS | A document with evidential value; regional resilience | M2, M8 |
| 1-year reservations, not 3 | A 3-year commitment | The platform is still evolving; flexibility over maximum discount | M8 |
- The platform's numbers
| Indicator | Value | Comment |
|---|---|---|
| Monthly cost | €12,550/month (illustrative) | Down from €17,800, 29% less, with no service degradation |
| Budget | €13,000/month | With alerts at 80% actual and 100% forecast |
| Unit cost | €0.136/booking | Down from €0.193; the indicator that really matters |
| Commitments | ≈€2,900/month | 1-year reservations and savings plans |
| Target availability | 99.9% monthly | Portal and Availability API |
| Production RPO / RTO | 15 min / 4 h | With fg-contoso-reservas and the pilot light |
| Development RPO / RTO | 24 h / best effort | A conscious decision not to invest |
| Target search latency | < 400 ms p95 | Measured in Application Insights |
| Regions | West Europe + North Europe | Primary and pilot light |
| Cuts rejected in writing | €2,555/month | Redundancy, WAF, Defender, GZRS, backups, Bastion |
- Three variants of the same architecture
Contoso's architecture is not the correct architecture: it is the correct one for Contoso. Change the context and the blueprint changes.
| Aspect | Minimum viable (SMB) | Contoso (reference) | Large enterprise active-active | Regulated with residency |
|---|---|---|---|---|
| Regions | 1 | 1 + pilot light | 2+ active-active | 1-2, always in the EU |
| Edge | App Service with its own domain | Front Door + WAF | Front Door Premium + WAF per region | Front Door + WAF + inspection |
| Compute | App Service Basic/Standard | Premium v3 + VMSS + CA + AKS | All multi-region and multi-zone | The same, with confidential computing where it applies |
| Data | Serverless SQL Database | SQL + Cosmos + MySQL + PSQL | SQL with auto-failover groups, multi-write Cosmos | Customer-managed keys, verified residency |
| Network | No virtual network of its own | Hub-and-spoke with firewall | A hub per region with global peering | No internet egress, everything over private endpoints |
| Identity | Basic Entra ID + MFA | Groups, PIM, conditional access | The same + automated access reviews | The same + audited segregation of duties |
| Operations | Application Insights only | Log Analytics + alerts + on-call | 24x7 SRE, error budgets | Long retention and immutable logging |
| Illustrative cost | €600-900/month | €12,550/month | €45,000-60,000/month | €18,000-25,000/month |
| RTO | 24 h | 4 h | Minutes | 4 h with documented evidence |
What gets removed in the minimal version: firewall, bastion, VMSS, AKS, Synapse, the second region and most of the governance; what stays is MFA, backups, mandatory HTTPS, secrets outside the code and tags, because that is not luxury, it is hygiene. What gets added in the large-enterprise version: a second active region with multi-write Cosmos DB, auto-failover groups, global peering, a permanent on-call team and a bill three or four times bigger; you buy low global latency and an RTO of minutes, and you pay with operational complexity, which is the cost nobody budgets for. What characterizes the regulated version: the architecture barely changes shape, it changes in constraints — where the data may live, who may see it, how long the evidence is kept — and in the fact that every decision needs documentary justification. In all three cases the blueprint is recognizable: it is the same shape with more or fewer pieces.
- The honest retrospective: what we would do differently today
No real platform comes out right first time. These are the things Marta, Diego and Nuria would do differently:
- Tag from minute one, with a policy. Tags arrived late and dozens of resources had to be retro-tagged by hand before the bill could be allocated. The
hereda-centro-costepolicy should have existed before the first resource group. - Start with the landing zone, not with the first machine. The management group hierarchy and the governance initiative were put together when there were already resources inside. It is far cheaper the other way round.
- Do not create
vm-motor-disponibilidad-dev. It was born as a quick experiment and survived a year, oversized. Today it would be a container from day one. - Bicep before the portal. The first resources were created by hand and then had to be written into templates after the fact, with all the subtle differences that drags along.
- A budget and a cost alert on the same day as the first subscription. The doubled bill in the first quarter was spotted late purely because nobody was looking, and the attempt to split Log Analytics by team took two weeks to undo.
- Fewer distinct services. MySQL and PostgreSQL coexist for historical reasons; starting today, there would be a single relational engine alongside SQL.
The conclusion the team wrote into its retrospective is the one worth taking away: almost every mistake was one of ordering, not of choice. The pieces were the right ones; what cost money was assembling them in the wrong sequence.
- Reference architectures and the Azure Architecture Center
You do not have to invent every blueprint from scratch. The Azure Architecture Center publishes reviewed reference architectures, with a diagram, components, considerations by Well-Architected Framework pillar and, in many cases, deployable templates:
| Family | What it solves | Relationship with Contoso |
|---|---|---|
| Multi-region web application | High availability of a website with replicated data | The basis of the West/North Europe pair |
| Microservices on AKS | Cluster, ingress, mesh, observability | Reference for aks-contoso-operaciones |
| Event-driven serverless architecture | Functions, Event Grid, queues | Reference for the boarding pass flow |
| Hub-and-spoke with firewall | Corporate network topology | The model for vnet-contoso-hub-pro |
| Enterprise landing zone | Governance, identity, network and subscriptions | Covered in 09-04 |
How to use them well: start from the reference, strip out what you do not need and write down why. The reference is designed for the demanding case; copying it wholesale into a small organization produces an expensive, unworkable platform. The value is not in the drawing, it is in the list of considerations that goes with it.
Common Mistakes and Tips
- Mistaking a diagram for documentation. A blueprint without the decision table explains nothing: a year from now nobody will remember why Cosmos and not SQL.
- Drawing the diagram once. An out-of-date blueprint is worse than none, because it misleads people during an incident. It lives in
contoso-infra, next to the templates. - Drawing everything in one illegible diagram. One overview and several detail views: network, booking flow, governance. Each one answers a question.
- Not distinguishing synchronous from asynchronous arrows. It is the most important information on the blueprint and the most frequently omitted.
- Copying a whole reference architecture. It is designed for the most demanding case; adapt it and document what you remove. And remember that more services is not better architecture: each one adds operational cost, not just billing.
- Tip: keep an architecture decision table with a date, the discarded alternative and the reason. It is the most valuable document a platform has and the one nobody writes.
- Tip: review the blueprint after every incident, and keep it to hand on call. Incidents show you where it was drawn wrong.
Exercises
Exercise 1. Looking at the overview blueprint and the sequence diagram, identify the three most serious points of failure in Contoso's platform: for each one, exactly what stops working, whether the failure is total or partial, and what it would take to mitigate it with an approximate cost. Rank them by business impact, not by technical severity.
Exercise 2. A hotel chain with 40 employees wants a bookings portal with search, payment and email confirmation, around 8,000 bookings a month and a maximum budget of €1,200/month. Design its architecture starting from Contoso's blueprint: what you keep, what you remove and what you swap for a cheaper alternative. Justify which three things you would never remove even if the budget dropped to €600.
Exercise 3. Contoso wants to sell in Latin America and the team proposes active-active with multi-write Cosmos DB. Analyze the proposal: what problem it really solves, what new problems it creates — especially with db-reservas — what cheaper alternative would cover 80% of the benefit, and what business questions you would ask before deciding.
Solutions
Solution 1: ranked by business impact. (1) sql-contoso-reservas-pro / db-reservas: it is the only point where the sale is synchronous and irreplaceable; if it goes down, no booking can be confirmed — revenue stops completely — even though search keeps working because the fares are in Cosmos. It is already partially mitigated with zone redundancy and fg-contoso-reservas to North Europe, with a 4 h RTO; getting that down to minutes would require automatic failover and frequent testing, at an additional cost in the region of €1,200-1,500/month. (2) fd-contoso-global: it is the single entry point; if the profile fails or a WAF rule blocks legitimate traffic, the outage is total and instant even though everything else is healthy — the most likely failure is not an Azure one, it is a badly deployed rule, and that is why the real mitigation is cheap: detection mode first, deployment by pipeline and the ability to roll back in minutes. (3) cosmos-contoso-tarifas-pro: if it goes down there is no flight search, which is 90% of the traffic; the failure is partial — somebody who has already picked a flight could still book — but commercially devastating; the mitigation is reads from a second region, relatively cheap, plus an edge cache of fares for the popular route. A note on judgment: a failure of func-contoso-tarjetas-pro does not make the list despite being visible to the customer, because the message waits in Service Bus and the sale has already been charged: exactly what decoupling was meant to achieve.
Solution 2: you keep the shape, not the size. Keep: App Service — a small Standard or Premium v1 plan, not Premium v3 — serverless SQL Database with auto-pause (8,000 bookings a month is a low and very irregular load), Blob Storage for receipts, Application Insights, mandatory MFA, mandatory HTTPS, backups with sensible retention, tags and a budget with alerts. Remove: Front Door and WAF — replaced by your own domain with a managed certificate and, if abuse is a worry, request rate limiting in the application — firewall, bastion, VMSS, AKS, Container Apps, Synapse, the lake, Event Hubs, the second region, PIM and most of the policy initiative, which comes down to three rules — allowed regions, no public blobs, HTTPS only. Swap: Service Bus for a Storage queue, or simply Event Grid with a consumption-plan Function, far cheaper at this volume; Cosmos DB does not apply — the catalog fits in SQL. Plausible total: €700-900/month, within budget. The three things you never remove, not even at €600: secrets outside the code with a managed identity or Key Vault (a leak has nothing to do with company size), tested backups (an accidental deletion closes a small business down, it does not merely inconvenience it), and MFA with no management port open to the internet (an automated attack does not distinguish between an SMB and an airline). They are the three things whose cost of omission is catastrophic and independent of volume.
Solution 3: what it really solves: read latency for distant users — a search from Bogotá against West Europe adds hundreds of milliseconds — and, secondarily, tolerance to a region going down. What problems it creates: multi-write in Cosmos forces you to resolve conflicts, something a fares catalog tolerates but which demands an explicit policy; and above all db-reservas does not come along: SQL Database is not multi-write, so bookings would still be written in West Europe and the user in Bogotá would get fast search and slow confirmation, with the added risk of inconsistency between what they see and what they can buy. On top of that you multiply the RU/s cost, the cross-region data transfer, the deployment complexity — two of everything, in two pipelines — and the incident surface. The alternative that covers 80%: add a read-only region to Cosmos DB with reads from the nearest region and Session consistency, keep writes in Europe and lean on Front Door to bring static content closer and cache the popular routes; you gain almost all the perceived latency for a fraction of the cost and with no conflicts. Business questions to ask first: what real volume is expected in Latin America, and over what timeframe? Is there a legal data residency requirement in any destination country? How much lost conversion do we attribute to latency today, measured rather than assumed? Do we have a team to run two active regions 24x7? The answer to the last one usually settles the discussion.
Conclusion
You now have the complete blueprint of Contoso Airlines and, more importantly, the method for reading any other: where traffic comes in, where the trust boundaries are, what is synchronous and what is asynchronous, where state lives, who observes it and what prevents anybody creating what should not exist. You have seen the six zones — edge and global delivery, application, integration, data, operations and governance — with their real connections, and the distinction between request flow and control plane dependency, which is what explains why some outages are noticed instantly and others are not noticed at all.
You have followed a booking end to end, from search to boarding pass, through Front Door, the WAF, App Service, the API, Cosmos DB, SQL Database, Service Bus, the function and storage, with the key boundary clearly marked: the response to the passenger ends before the asynchronous work begins. And you know which module built each piece, which is how you turn eight separate modules into a system.
You have the master decision table — every choice with its discarded alternative and its reason — the numbers for the platform — €12,550/month, €0.136 per booking, 99.9%, RPO 15 min and RTO 4 h — three variants of the same architecture for different contexts with what is removed and what is added in each, the honest retrospective with its central lesson — almost every mistake was one of ordering, not of choice — and the Azure Architecture Center as a starting point so you never have to draw from scratch.
With the blueprint in front of you, the natural question is whether it is drawn well. The next lesson answers that with the framework Microsoft uses for exactly this purpose: the Azure Well-Architected Framework, its five pillars — Reliability, Security, Cost Optimization, Operational Excellence and Performance Efficiency — its trade-offs between pillars, and a pillar-by-pillar audit of this very platform that will say what it meets, what it does not meet and what was consciously decided against.
Azure Course
Module 1: Introduction to Azure
- What Is Azure?
- Service Models, Regions and Availability Zones
- Creating and Setting Up Your Azure Account
- A Tour of the Azure Portal
- Azure Resource Manager: Subscriptions, Resource Groups and Tags
- Azure CLI, PowerShell and Cloud Shell
Module 2: Core Azure Services
- Azure Virtual Machines
- Compute Scaling and High Availability
- Azure App Service
- Azure Storage: Blobs, Files, Queues and Tables
- Azure Networking: Virtual Networks, Subnets and NSGs
- Hybrid Connectivity and Global Delivery
Module 3: Azure Databases
- Choosing the Right Data Service
- Azure SQL Database
- Azure Cosmos DB
- Azure Database for MySQL
- Azure Database for PostgreSQL
- Data Analytics: Data Lake, Data Factory and Synapse
Module 4: Security in Azure
- Microsoft Entra ID and Identity Management
- RBAC and Managed Identities
- Azure Key Vault
- DDoS Protection and Web Application Firewall
- Microsoft Defender for Cloud
- Governance and Compliance with Azure Policy
Module 5: Azure DevOps
- Introduction to Azure DevOps
- Azure Repos
- Azure Pipelines: Continuous Integration
- Continuous Deployment with Environments and Approvals
- Azure Artifacts
- Infrastructure as Code with Bicep
Module 6: Advanced Azure Services
- Containers in Azure: Container Registry and Container Apps
- Azure Kubernetes Service (AKS)
- Azure Functions
- Azure Logic Apps
- Messaging and Events: Service Bus, Event Grid and Event Hubs
- Azure AI Services
Module 7: Monitoring and Management
- Azure Monitor: Metrics, Alerts and Dashboards
- Log Analytics and KQL Queries
- Application Insights
- Azure Automation and Runbooks
- Backup and Disaster Recovery
Module 8: Cost Management and Optimization
- Pricing Calculator and Cost Estimation
- Azure Cost Management: Analysis, Budgets and Alerts
- Reservations, Savings Plans and Azure Hybrid Benefit
- Azure Advisor
- Optimization Strategies and FinOps Culture
