Microsoft AZ-900: Compute & App Services — Study Guide
Part of the Microsoft Azure AZ-900 — Study Guide. Practice with verified answers in the Microsoft exam hub, or take timed practice tests on ExamRoll.io.
Azure offers a spectrum of compute options that range from fully managed application platforms to granular control over virtual machines. The right choice balances control, scalability, availability, and cost against operational effort. At one end are virtual machines and scale sets, ideal when OS-level control and custom images are required. At the other are App Service, containers, and serverless options that accelerate delivery by abstracting infrastructure. Designing for resiliency and elasticity is central to compute on Azure. Availability sets and availability zones protect against hardware and datacenter failures, while load balancing and autoscale features help maintain performance under changing demand. Paired with modern deployment techniques such as blue/green slots, these services enable safe change management without downtime.
Azure Virtual Machines: images and disks
Azure Virtual Machines (VMs) provide infrastructure-as-a-service for Windows and Linux. Choose VM families based on workload profile: general purpose (Dsv5) for balanced CPU/memory, compute optimized (Fsv2) for CPU-bound tasks, memory optimized (Esv5) for in-memory databases, storage optimized (Lsv3) for high IOPS throughput, and GPU/HPC series (NC, ND, HB/HX) for specialized compute. VMs are provisioned from marketplace images or custom images that standardize OS and software baselines across environments. Custom image management is streamlined with Azure Compute Gallery, which versions and replicates images across regions for consistent, fast deployments. Capture a “golden” image from a configured VM or build images with tools such as Packer, then distribute them via the gallery to scale sets and individual VMs. For stateless workloads, ephemeral OS disks dramatically speed provisioning and reboot times and eliminate persistent OS storage costs by keeping the OS on the host cache. Managed disks simplify storage lifecycle and availability. Select disk types to match performance and cost: Ultra Disk for sub-millisecond latency and high IOPS/throughput; Premium SSD v2 and Premium SSD for production workloads; Standard SSD for general purpose workloads; and Standard HDD for cost-sensitive, low IOPS scenarios. Attach OS and data disks with configurable sizes and performance tiers, use snapshots for point-in-time backups, and leverage disk encryption by default with server-side encryption; customer-managed keys and host-based encryption are available for stricter compliance.
High availability and elastic scale for VMs: availability sets, zones, scale sets, and load balancing
Availability sets protect against rack-level failures by distributing VMs across fault and update domains within a single datacenter. Deploying two or more VMs in an availability set achieves a higher availability SLA by ensuring an update event or hardware failure doesn’t impact all instances simultaneously. For stronger fault isolation, availability zones spread resources across distinct datacenters within a region. Placing two or more VMs across two or more zones provides the highest VM availability SLA, suitable for critical line-of-business applications. VM Scale Sets (VMSS) manage groups of identical VMs as a single resource for scaling and orchestration. Define a model (image, size, configuration) and let VMSS handle instance creation, distribution across zones, and autoscale based on metrics such as CPU, memory (via custom metrics), or queue length. Integrate with Azure Compute Gallery to roll out image updates safely using health probes and flexible orchestration modes, and combine with automatic OS and application update strategies to minimize disruption. Azure Load Balancer provides layer-4 distribution across VM instances with health probes to route traffic only to healthy backends. The Standard Load Balancer supports high availability, zone-redundancy, cross-zone load balancing, inbound NAT rules, and outbound connectivity rules. Use it in front of VMSS or VMs to expose services reliably. For HTTP(S) layer-7 features such as cookie-based affinity, TLS termination, and WAF, Application Gateway is the companion service, while Front Door addresses global anycast routing and acceleration. Selecting the right load-balancing tier keeps traffic resilient while matching protocol and feature needs.
App Service for Web, API, and containers with deployment slots
Azure App Service hosts web apps, REST APIs, and containerized applications on a fully managed platform that handles patching, load balancing, and autoscale. Developers deploy code using CI/CD pipelines, GitHub Actions, or ZIP/web deploy, and can run containers directly via App Service for Containers without managing a container orchestrator. Built-in diagnostics, application logs, and integration with Application Insights simplify operations. Capabilities are determined by the App Service plan. Free and Shared tiers are for evaluation. Basic introduces dedicated compute, custom domains, scale-out to multiple instances, and SNI-based SSL, satisfying low-cost production needs when dedicated capacity and simple scale are required. Standard and Premium tiers add autoscale rules, deployment slots for zero-downtime releases, VNet integration, increased instance counts, and advanced features suitable for most production workloads. Isolated (ASE) provides dedicated, network-isolated environments for stringent compliance and scale. Deployment slots enable safe releases by keeping a warm secondary deployment alongside production. Swap traffic after validation to avoid cold starts, and mark configuration as “slot settings” to pin secrets or connection strings to a slot. Traffic ramp-up during swaps supports canary releases, and automatic swap on successful health checks accelerates continuous delivery with minimal risk.
Containers on Azure: AKS vs Azure Container Instances
Containers accelerate packaging and portability. Azure Kubernetes Service (AKS) offers a managed Kubernetes control plane for microservices and stateful workloads that need advanced networking, autoscaling, and rolling updates. It’s the right fit when you need mature orchestration features, policy control, and ecosystem integrations. Azure Container Instances (ACI) run containers on demand without managing servers or orchestrators. Start containers in seconds, pay per second for CPU and memory, and burst for short-lived tasks, event-driven jobs, or build pipelines. ACI integrates with virtual networks for private workloads and can sit behind load balancers or API gateways when multiple instances are used for resiliency. The choice hinges on operational model and workload shape. Use AKS for long-running, multi-container applications with service meshes, advanced autoscaling, and persistent volumes. Use ACI for simple, ephemeral tasks, spikes, and background processing where orchestration overhead would be counterproductive.
- Azure Kubernetes Service (AKS)
- Orchestration: Managed Kubernetes control plane with worker nodes
- Typical use cases: Long-running microservices, stateful apps, enterprise platforms
- Startup time: Minutes to provision clusters; seconds to start pods
- Scaling model: Cluster autoscaler + Horizontal Pod Autoscaler; scheduled and metric-based
- Networking: kubenet or Azure CNI with Kubernetes Services and Network Policies
- Ingress options: Ingress controllers (NGINX), Application Gateway Ingress Controller, Gateway API
- Persistent storage: Kubernetes PV/PVC via Azure Disks/Files; CSI drivers
- Node management: Manage worker node sizing/updates; control plane managed by Azure
- Pricing model: Pay for worker nodes; optional paid Uptime SLA for control plane
- SLA characteristics: High availability designed via multi-node pools and zones; control plane SLA available with Uptime SLA
- Best for: Production-grade microservices and platforms
- Azure Container Instances (ACI)
- Orchestration: No orchestrator; container groups
- Typical use cases: Short-lived jobs, burst compute, CI/CD tasks, event processing
- Startup time: Seconds
- Scaling model: Per container group; scale by creating more groups
- Networking: VNet integration supported; private IPs possible
- Ingress options: Expose ports directly or front with Load Balancer/Application Gateway
- Persistent storage: Ephemeral writable layer; bind Azure Files for persistence
- Node management: None; platform manages hosts
- Pricing model: Per-second billing for vCPU and memory; no VM costs
- SLA characteristics: Single-instance service level; architect HA by running multiple instances
- Best for: On-demand, serverless containers and batch jobs
Serverless integration and Azure Virtual Desktop basics
Serverless compute offloads infrastructure management and scales transparently with demand. Azure Functions runs event-driven code with triggers for HTTP, timers, queues, Service Bus, Event Grid, and more. Choose the Consumption plan for per-execution billing and automatic scale, Premium for VNet integration, predictable performance, and no cold starts, or Dedicated (App Service plan) to reuse existing capacity. Input/output bindings connect Functions to data sources declaratively, reducing boilerplate code. Logic Apps orchestrate workflows across SaaS and on-premises systems using hundreds of managed connectors. Build stateful or stateless workflows, implement retries and error handling, and deploy as multi-tenant (Consumption) or single-tenant (Standard) for isolation and advanced networking. Event Grid provides a low-latency pub/sub fabric for routing system and custom events at scale with filtering and dead-lettering, ideal for reactive architectures where producers and consumers are loosely coupled. Azure Virtual Desktop (AVD) delivers secure, scalable virtual desktops and apps from Azure. Deploy host pools of Windows 11/10 Enterprise multi-session or Windows Server session hosts, publish app groups, and present them through workspaces to users. Profiles roam across hosts using FSLogix with profile containers stored on Azure Files or Azure NetApp Files, enabling fast logons and consistent user experience. Integrate with Microsoft Entra ID for identity, Conditional Access for access policies, and leverage autoscale to match session hosts to demand while keeping costs under control.
Practical Problem: Peak-ready order processing for Fabrikam Health using resilient VMs, modern app platform, and serverless events
Scenario: Fabrikam Health operates an online ordering portal that surges during the final 5 days of each month. The team runs a legacy order-processing service that must remain on Windows Server, alongside a modern web/API front end. The business requires 99.99% availability for order processing, end-to-end HTTPS on a custom domain, zero-downtime deployments for the website, and minimal operational overhead. Budget sensitivity rules out complex self-managed orchestration for background tasks, but month-end spikes must be absorbed without manual intervention.
Challenge: Guarantee 99.99% availability for the VM-based order processor, scale the web/API front end seamlessly during spikes, support safe releases, and handle bursty background tasks with minimal infrastructure management.
Recommended Approach:
- Build a hardened Windows Server image in Azure Compute Gallery that includes the order-processing service and dependencies; version it for repeatable deployments.
- Deploy a VM Scale Set with two instances across two availability zones, using Premium SSD for OS/data, and place a Standard Load Balancer in front with health probes to achieve zone-level resiliency and distribute traffic.
- Provision an App Service plan (Standard or Premium) for the public web/API, bind the custom domain and certificates, enable two or more instances with autoscale based on HTTP request rate or CPU, and create a staging deployment slot for blue/green releases.
- Implement asynchronous workflows with Azure Functions triggered by Event Grid events (for example, order-created) and queue triggers for downstream tasks such as invoice generation and email notifications; use the Premium plan for VNet integration if required by backend systems.
- For ad-hoc, compute-intensive exports at month-end, run containerized jobs on Azure Container Instances behind a private endpoint, invoked by Functions; pay only for execution time without managing a cluster.
- Introduce Azure Virtual Desktop for finance staff who need access to a legacy rich client: create a pooled host pool with Windows 11 Enterprise multi-session, enable FSLogix profiles on Azure Files, and publish the app to users via a workspace.
Azure Rationale: Two VM instances spread across availability zones and fronted by a Standard Load Balancer meet the 99.99% availability target for the order processor while preserving OS-level control. App Service provides a managed platform for the portal with autoscale and deployment slots to handle spikes and deliver safe, zero-downtime updates. Event Grid and Functions decouple background processing and scale transparently, while ACI supplies burst compute at the lowest operational overhead. Azure Virtual Desktop centralizes access to the legacy client securely and scales with demand, completing the design with minimal infrastructure to manage.
← Azure Architecture · All domains · Networking →
Practice these questions → · Timed practice on 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.
Pass your exam →