Curriculum Overview: Comparing Azure Compute Services
Compare compute types, including containers, virtual machines, and functions
Curriculum Overview: Comparing Azure Compute Services
This curriculum provides a structured approach to understanding the primary compute options within Microsoft Azure: Virtual Machines, Containers, and Functions. By the end of this track, you will be able to select the optimal compute service based on performance, cost, and management overhead.
Prerequisites
Before starting this module, learners should have a foundational understanding of the following concepts from AZ-900 Unit 1:
- Cloud Service Types: A clear grasp of Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS).
- Shared Responsibility Model: Understanding who manages the hardware, OS, and applications in various cloud scenarios.
- Consumption-Based Model: Familiarity with how cloud pricing differs from traditional on-premises capital expenditure (CapEx).
- Basic Virtualization: A general idea of how one physical server can host multiple virtual environments.
Module Breakdown
| Module | Topic | Difficulty | Focus Area |
|---|---|---|---|
| 1 | Virtual Machines (VMs) | Beginner | IaaS, full OS control, persistence. |
| 2 | Azure Container Instances (ACI) | Intermediate | Lightweight packaging, isolation, and portability. |
| 3 | Azure Functions | Intermediate | Serverless, event-driven microservices, code-only. |
| 4 | Azure Kubernetes Service (AKS) | Advanced | Scalable orchestration for complex container workloads. |
| 5 | Decision Strategy | Intermediate | Choosing the right service for specific business needs. |
Learning Objectives per Module
Module 1: Virtual Machines (VMs)
- Define the role of the hypervisor and the guest operating system.
- Identify scenarios where full OS access and persistent availability are required.
- Explain why VMs incur costs even when idle if they remain allocated.
Module 2: Containers (ACI & AKS)
- Differentiate between a VM (Full OS) and a Container (App + Dependencies).
- Describe the use of Azure Container Instances (ACI) for quick, simple tasks.
- Understand when to move to Azure Kubernetes Service (AKS) for multi-container scaling.
Module 3: Azure Functions (Serverless)
- Define serverless computing and its abstraction of underlying infrastructure.
- Explain the consumption-based pricing model (pay-per-execution).
- Identify triggers (e.g., HTTP requests, database changes) that execute functions.
Visual Architecture Comparison
To understand the structural differences, refer to the diagrams below:
Compute Abstraction Layers
Decision Tree for Compute Types
Success Metrics
To demonstrate mastery of this curriculum, learners should be able to answer the following without assistance:
- Metric 1: Contrast the billing of a VM vs. an Azure Function. (Answer: VMs are billed by uptime/allocation; Functions are billed by execution time and count).
- Metric 2: Identify which compute type is best for a legacy Windows application that requires a specific registry setting. (Answer: Virtual Machine).
- Metric 3: Explain why containers are faster to start than VMs. (Answer: They do not boot a full OS; they share the host kernel).
- Metric 4: Select the service for a microservice that only runs when a file is uploaded to storage. (Answer: Azure Functions).
Real-World Application
In a professional cloud environment, these compute types are rarely used in isolation. Instead, they form a multi-tier architecture:
[!TIP] Scenario: An E-commerce Platform
- VMs: Used to host a legacy inventory database that requires a specific version of SQL Server and OS-level plugins.
- Containers (AKS): Used to host the web front-end and product catalog services, allowing them to scale up during Black Friday sales.
- Functions: Used to send a confirmation email automatically whenever a customer completes a purchase (event-driven).
[!IMPORTANT] Choosing the wrong compute type can lead to significant cost overruns. For example, running a small script on a large VM 24/7 is much more expensive than running it as a Function for a few seconds per day.