Skip to content

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