Azure is Microsoft's cloud platform for running applications, storing data, connecting networks, managing identities, and operating business systems. The useful beginner question is not how many Azure services exist. It is where a resource belongs, who may manage it, how traffic reaches it, and who pays for it.
A web app is not simply in Azure. It belongs to a resource group inside a subscription, is associated with a Microsoft Entra tenant, runs in one or more locations, and is governed through Azure Resource Manager.
This lesson builds that map before asking you to create anything chargeable. Once the hierarchy and request path make sense, individual Azure services stop looking like unrelated portal screens.
Azure Resource Manager organizes resources into scopes. Role assignments and Azure Policy controls applied at a higher scope can affect child scopes, so hierarchy design controls both governance reach and mistake radius.
| Scope | Primary purpose | Architecture question |
|---|---|---|
| Microsoft Entra tenant | Identities, applications, and authentication | Which organization owns the identities? |
| Management group | Governance across subscriptions | Which policies should many subscriptions inherit? |
| Subscription | Billing, quota, resource, and access boundary | Should production and development be isolated? |
| Resource group | Lifecycle, deployment, tagging, and access container | Which resources share an owner and lifecycle? |
| Resource | An individual service instance | What configuration does this workload component need? |
A resource group is not a network or disk folder. Use it for resources that should be deployed, governed, observed, and removed together. Resources in one group may use different Regions, but each resource belongs to only one resource group at a time.
Deleting a resource group starts deletion of its contained resources. Production groups therefore need clear ownership, appropriate locks, backups, and an infrastructure-as-code definition.
Region choice affects latency, data residency, service and SKU availability, network transfer, recovery options, capacity, and price. Availability Zones isolate facilities within supported Regions, while a secondary Region addresses a broader failure class.
A zonal resource is not automatically resilient to a zone failure. The complete request path, including entry, compute, data, identity dependencies, and operations, must use the intended redundancy.
Azure Resource Manager handles control-plane actions such as creating a storage account or resizing a virtual machine. Reading blobs, querying a database, or calling an application endpoint uses a data-plane path and may require different permissions and networking.
This is why a person can view a storage account in the portal yet receive an authorization error when opening a blob. Portal visibility does not prove data access.
| Need | Primary evidence | Typical control |
|---|---|---|
| Who changed a resource? | Azure Activity Log | Azure RBAC on a Resource Manager scope |
| Who read or changed service data? | Service diagnostic or audit logs | Data-plane role and service authorization |
| Can traffic reach the endpoint? | Network and application telemetry | DNS, routes, NSGs, firewalls, and private endpoints |
Consider an employee expense application. Microsoft Entra ID signs in users, Front Door or Application Gateway accepts traffic, App Service or Container Apps runs code, Azure SQL stores transactions, Key Vault protects secrets, and Azure Monitor collects signals. This is an example, not a mandatory recipe.
| Question | Azure candidates | Trade-off |
|---|---|---|
| Who is calling? | Entra ID, managed identities, workload identity federation | Human versus workload identity and least privilege |
| Where does code run? | Virtual Machines, App Service, Functions, Container Apps, AKS | Control, constraints, scaling, and operational effort |
| Where does state live? | Storage, Azure SQL, Cosmos DB, PostgreSQL, Managed Disks | Data model, consistency, durability, and recovery |
| How will operators know? | Azure Monitor, Log Analytics, Application Insights, Activity Log | Metrics, logs, traces, alerts, audit, and retention |
Sign in with your normal Entra account and use a lab subscription. This tour is read-only so you can learn scope controls before a Create action changes a shared environment or starts a bill.
| Step | Why | Expected result |
|---|---|---|
| 1. Open Directories and subscriptions | Confirm tenant and subscription context | The selected directory and subscription match the intended lab. |
| 2. Open Subscriptions | See billing, access, policy, and quota boundaries | You can identify the subscription name and ID. |
| 3. Open Resource groups | See workload lifecycle containers | You can inspect location metadata, tags, and resource counts. |
| 4. Open one resource group | Connect services to a workload | Overview lists resources; Activity log lists control-plane events; Access control lists role assignments. |
| 5. Open Cloud Shell where enabled | Use an authenticated CLI environment | az account show returns the same tenant and subscription you saw in the portal. |
| 6. Open Cost Management | Introduce financial ownership | You can inspect allowed cost views or identify the separate access you need. |
Azure operates the physical cloud and managed platform layers. You still own identities, data, code, configuration, and the portions of the operating system exposed by the selected service. A virtual machine leaves more operational work with you than App Service or Azure SQL.
| Control | Question answered | Common mistake |
|---|---|---|
| Microsoft Entra ID | Who or what is the identity? | Shared accounts or long-lived application secrets |
| Azure RBAC | What may the identity do at this scope? | Owner or Contributor at subscription scope for convenience |
| Azure Policy | Which resource configurations are allowed or audited? | Assuming Policy grants user access |
| Resource lock | Should accidental delete or change be blocked? | Treating a lock as protection from a sufficiently privileged administrator |
| Scenario | Why Azure may fit | Boundary to investigate |
|---|---|---|
| Microsoft-centered enterprise app | Entra identity, managed compute and data, and Azure governance integrate with existing operations | Licensing, directory ownership, network connectivity, and support skills |
| Public web or API workload | Managed application platforms reduce infrastructure work | Traffic, state, regional support, scaling tests, and rollback |
| Hybrid datacenter extension | VPN, ExpressRoute, Arc, and identity integration connect estates | Overlapping addresses, latency, dependency direction, and outage behavior |
| Analytics platform | Azure storage and managed analytics services support varied workflows | Classification, residency, retention, access, and query cost |
When something fails, do not immediately add Owner access or open the network to everyone. Classify the problem as tenant, subscription, Region, authorization, Policy, resource state, network path, application behavior, capacity, or service health.
| Symptom | Check first | Evidence |
|---|---|---|
| Resource appears missing | Directory, subscription filter, resource group, and Region | az account show, resource ID, portal scope, and Activity Log |
| AuthorizationFailed | Principal, RBAC scope, deny assignment, Policy, and token age | Exact operation, scope, correlation ID, and Activity Log |
| Application cannot connect | DNS, routes, NSGs, firewall, private endpoint, and target health | Connection test, Network Watcher data, logs, and trace |
| Unexpected bill | Cost by subscription, resource group, resource, service, location, and meter | Cost analysis, tags, inventory, recent changes, and owner |
A production subscription needs documented ownership, central identity, policy guardrails, diagnostic settings, cost allocation, repeatable deployment, tested recovery, and incident procedures. A working portal deployment is only the beginning.
These read-only commands confirm the active cloud, tenant, subscription, and visible resource groups.
az cloud show --query "{cloud:name,profile:profile}"
az account show --query "{subscription:name,subscriptionId:id,tenantId:tenantId,user:user.name}" --output table
az group list --query "[].{name:name,location:location}" --output table
This small design note exposes missing scope, identity, telemetry, and recovery decisions.
Tenant: Contoso workforce directory
Management group: Corp / Online
Subscription: Online-Production
Resource group: rg-orders-prod-westindia
Request: Front Door -> App Service -> Azure SQL
Identity: App Service managed identity -> database
Operations: Application Insights + Azure Monitor alerts
Recovery: RTO 60 minutes; RPO 15 minutes; restore tested quarterly
No. The tenant is the identity directory and trust boundary. A subscription is a billing, quota, resource, and access scope that trusts one tenant for authentication.
No. The group has a metadata location, while its resources may use different supported Regions. Group resources because they share lifecycle and ownership.
Viewing the account is a control-plane permission. Reading blob data is a data-plane action that may require a separate data role and network path.
Explore 500+ free tutorials across 20+ languages and frameworks.