Microsoft Azure is Microsoft's public cloud. Everything is created as a resource inside a hierarchy that controls billing, access and policy.
Services at a glance
| Service | Purpose |
|---|---|
| Azure Resource Manager (ARM) | Deployment and management layer for all resources |
| Bicep / ARM templates | Infrastructure as Code |
| Azure Portal, Cloud Shell, CLI, PowerShell | Ways to manage Azure |
| Management groups, Subscriptions, Resource groups | Organisation hierarchy |
| Azure Arc | Manage on-prem and other clouds from Azure |
| Azure Advisor | Best-practice recommendations |
| Azure Migrate | Discover and migrate workloads |
Cloud Concepts Refresher
| Concept | Meaning |
|---|---|
| High availability | Keep a workload running despite failures (redundancy, zones) |
| Scalability | Add capacity: vertical (bigger VM) or horizontal (more VMs) |
| Elasticity | Scale out and in automatically with demand |
| Reliability | Recover from failure and keep working |
| Agility | Provision resources in minutes |
| Fault tolerance | Continue operating when a component fails |
| Disaster recovery | Restore service after a major outage (RTO / RPO) |
Pricing models
- CapEx: upfront spend on hardware you own
- OpEx: pay-as-you-go for what you consume. Cloud is mostly OpEx
- Consumption-based: pay per use, billed per second / minute / hour / GB
Shared responsibility model
| Layer | On-premises | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| Information and data | You | You | You | You |
| Devices, accounts, identities | You | You | You | You |
| Applications | You | You | You | Provider |
| Operating system | You | You | Provider | Provider |
| Network controls | You | Shared | Provider | Provider |
| Physical hosts / datacenter | You | Provider | Provider | Provider |
Service models are covered in Cloud Computing Services.
Cloud deployment models
- Public cloud: provider owns and operates the hardware, shared by many customers
- Private cloud: dedicated to one organisation, on-prem or hosted
- Hybrid cloud: public and private connected together (Azure Arc, Azure Stack, ExpressRoute)
- Multi-cloud: more than one public provider
Global Infrastructure
Regions
A region is a set of datacenters connected by a low-latency network in a geographic area (e.g. South Africa North, West Europe). Pick a region for latency, data residency/compliance, available services and price.
- Region pairs: each region is paired with another in the same geography (hundreds of km apart). Used for sequential updates and geo-redundant recovery priority
- Sovereign regions: isolated instances for specific compliance needs (Azure Government, Azure China)
Availability Zones
Physically separate datacenter locations within a region, each with independent power, cooling and networking. A region that supports zones has at least 3.
- Zonal services: you pin a resource to a zone (e.g. a VM)
- Zone-redundant services: Azure replicates across zones for you (e.g. zone-redundant storage)
Availability Sets (older, within one datacenter)
- Fault domains: share power/network (rack)
- Update domains: rebooted together during maintenance
Management Hierarchy
Management Group (policy and access for many subscriptions)
└── Subscription (billing + access boundary)
└── Resource Group (logical container, shares lifecycle)
└── Resource (VM, storage account, VNet ...)
- Management groups: up to six levels deep, apply Azure Policy / RBAC across subscriptions
- Subscription: unit of billing and scale limits. Several can sit under one account
- Resource group: a resource belongs to exactly one group. Deleting the group deletes everything in it. Resources in a group can be in different regions
$ az group create --name rg-demo --location southafricanorth
$ az group list -o table
$ az group delete --name rg-demo
Azure Resource Manager (ARM)
The deployment and management layer. Every tool (Portal, CLI, PowerShell, SDKs, REST) goes through ARM.
- Consistent API and access control for all resources
- Infrastructure as Code with ARM templates (JSON) or Bicep (cleaner syntax, compiles to ARM)
- Declarative and idempotent, with dependency ordering
resource sa 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: 'stdemo${uniqueString(resourceGroup().id)}'
location: resourceGroup().location
sku: { name: 'Standard_LRS' }
kind: 'StorageV2'
}
$ az deployment group create --resource-group rg-demo --template-file main.bicep
Ways to Manage Azure
| Tool | Notes |
|---|---|
| Azure Portal | Web GUI |
| Cloud Shell | Browser shell with Bash or PowerShell, pre-authenticated |
| Azure CLI | az commands, cross-platform |
| Azure PowerShell | Az module cmdlets |
| Azure Arc | Manage on-prem, multi-cloud servers and Kubernetes from Azure |
| Azure Advisor | Recommendations on cost, security, reliability, performance |
Service Level Agreements (SLA)
Guaranteed uptime per service, e.g. 99.9% allows about 8.7 hours downtime a year; 99.99% about 52 minutes.
- Composite SLA: chaining services multiplies the SLAs, so the result is lower than either
- Redundant (parallel) components raise the combined availability
- Preview features generally carry no SLA
Related: 2. Azure Compute, 3. Azure Networking, 4. Azure Storage, 5. Azure Identity and Security, 6. Azure Governance and Cost Management