
Microsoft Azure is the second-largest cloud provider, dominant in enterprise Microsoft shops. It integrates deeply with Active Directory, Office 365, and Windows Server. The Azure CLI (az) is the primary command-line tool.
| Item | Syntax | Description |
|---|---|---|
| Resource Group | Logical container for Azure resources | az group create --name myRG --location eastus |
| Azure VM | Virtual Machines — Linux or Windows | Standard_B1s free tier, Standard_D2s_v3 general |
| Azure Blob Storage | Object storage equivalent to S3 | Hot/Cool/Archive tiers, LRS/GRS redundancy |
| Storage Account | Container for blobs, files, queues, tables | az storage account create --name myaccount |
| Azure Files | Managed SMB/NFS file share | Mount on VMs, on-prem, containers |
| Azure SQL Database | Managed SQL Server PaaS | DTU or vCore purchasing model |
| Azure Database for PostgreSQL | Managed PostgreSQL | Flexible Server for dev, Single Server for legacy |
| Cosmos DB | Globally distributed NoSQL — 5 APIs | SQL, MongoDB, Cassandra, Gremlin, Table APIs |
| Azure Functions | Serverless compute — event-driven | Consumption plan (pay per execution) or Premium |
| App Service | PaaS for web apps — .NET, Java, Python, Node | B1 free tier, P1v3 for production |
| Azure Kubernetes Service | Managed Kubernetes | az aks create — control plane managed by Azure |
| Container Registry | Private Docker registry (ACR) | az acr create -- integrated with AKS |
| Azure Active Directory | Identity platform — SSO, MFA, RBAC | Entra ID in new naming; OAuth2, SAML, OpenID Connect |
| Managed Identity | Like AWS IAM roles for Azure resources | System-assigned or user-assigned — no credentials needed |
| Key Vault | Secrets, keys, and certificates management | Like AWS Secrets Manager + KMS combined |
| Virtual Network | VNet — isolated network in Azure | Subnets, NSGs, route tables, peering |
| NSG | Network Security Group — virtual firewall | Inbound/outbound rules at subnet or NIC level |
| Azure Load Balancer | Layer 4 TCP/UDP load balancing | Public or internal, Basic or Standard SKU |
| Application Gateway | Layer 7 HTTP/S load balancer + WAF | SSL termination, path-based routing, WAF |
| Azure CDN | Content delivery network | Akamai, Verizon, or Microsoft CDN profiles |
| Azure DNS | Managed DNS service | Host public or private zones |
| Monitor | Azure monitoring — metrics, logs, alerts | Log Analytics workspace for centralized logging |
| Cost Management | Analyze and budget Azure spending | Budgets with alerts, cost analysis by resource/tag |
| ARM Templates | Azure Resource Manager — JSON IaC templates | Like CloudFormation for Azure — deploy with az deployment |
| Bicep | Simplified ARM template language | Transpiles to ARM JSON — much more readable |
# Azure CLI — Essential Commands # Setup: curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash # Login: az login # ── Resource Groups ─────────────────────────────────────────── az group create --name mywebuniversity-rg --location eastus az group list --output table az group delete --name mywebuniversity-rg --yes --no-wait # ── Virtual Machines ───────────────────────────────────────── az vm create \ --resource-group mywebuniversity-rg \ --name webserver \ --image Ubuntu2204 \ --size Standard_B1s \ --admin-username azureuser \ --generate-ssh-keys \ --public-ip-sku Standard az vm list --resource-group mywebuniversity-rg --output table az vm start --resource-group mywebuniversity-rg --name webserver az vm stop --resource-group mywebuniversity-rg --name webserver az vm delete --resource-group mywebuniversity-rg --name webserver --yes # Open port 80 az vm open-port --resource-group mywebuniversity-rg --name webserver --port 80 # ── Blob Storage ───────────────────────────────────────────── az storage account create \ --name mywebuniversitystorage \ --resource-group mywebuniversity-rg \ --location eastus \ --sku Standard_LRS \ --kind StorageV2 az storage container create \ --name content \ --account-name mywebuniversitystorage \ --public-access blob az storage blob upload \ --account-name mywebuniversitystorage \ --container-name content \ --name index.html \ --file ./index.html az storage blob list \ --account-name mywebuniversitystorage \ --container-name content \ --output table # Static website az storage blob service-properties update \ --account-name mywebuniversitystorage \ --static-website --index-document index.html # ── Azure Database for PostgreSQL ──────────────────────────── az postgres flexible-server create \ --resource-group mywebuniversity-rg \ --name mywebuniversity-db \ --location eastus \ --admin-user admin \ --admin-password SecurePass123! \ --sku-name Standard_B1ms \ --storage-size 32 \ --version 16 az postgres flexible-server list --output table az postgres flexible-server connect \ --name mywebuniversity-db \ --admin-user admin # ── Azure Functions ─────────────────────────────────────────── az functionapp create \ --resource-group mywebuniversity-rg \ --consumption-plan-location eastus \ --runtime python \ --runtime-version 3.11 \ --functions-version 4 \ --name mywebuniversity-func \ --storage-account mywebuniversitystorage # ── AKS ────────────────────────────────────────────────────── az aks create \ --resource-group mywebuniversity-rg \ --name mywebuniversity-aks \ --node-count 2 \ --node-vm-size Standard_B2s \ --generate-ssh-keys \ --enable-managed-identity az aks get-credentials --resource-group mywebuniversity-rg --name mywebuniversity-aks kubectl get nodes