The 50 Azure questions interviewers actually ask, with direct answers, real CLI and config snippets, and what the interviewer is listening for. Grouped for freshers, intermediate, and experienced rounds.
50 questions with answersKey Takeaways
Azure is Microsoft's public cloud platform: you rent compute, storage, networking, databases, and identity on demand instead of buying and running your own hardware. It runs across a global set of regions, each region a group of data centers, and you pay for what you use. The organizing idea is the resource: a virtual machine, a storage account, a database, each is a resource you create, and resources live inside resource groups. Every create, read, update, or delete goes through Azure Resource Manager, the control plane that handles authentication, applies role-based access, and deploys your declared resources, per the official Azure Resource Manager documentation. In interviews, Azure questions probe how you reason about trade-offs: when to pick a virtual machine versus App Service versus Functions, how availability zones protect you, how identity works with Microsoft Entra ID, and what you'd reach for to store blobs versus relational data. This page collects the 50 questions that come up most, each with a direct answer plus real commands and config. Pair this bank with our AI interview preparation guides for the live-interview format, since the first cloud round is increasingly an AI-driven technical screen.
Watch: AZ-900 Microsoft Azure Fundamentals Full Course and Study Guide
Video: AZ-900 Microsoft Azure Fundamentals Full Course and Study Guide (Adam Marczak - Azure for Everyone, YouTube)
Test yourself and earn a certificate
10 quick questions. Score 70%+ to download your Azure certificate.
The fundamentals every entry-level round checks: what Azure is, regions and resource groups, core compute and storage, identity, and networking basics. If any answer here surprises you, that's your study list.
Azure is Microsoft's public cloud platform. You rent compute, storage, networking, databases, and identity on demand across a global set of data centers, and you pay for what you use instead of buying and running your own hardware. It spans everything from raw virtual machines to fully managed serverless services.
It offers services at every level: infrastructure like virtual machines, platform services like App Service and managed databases, and serverless options like Functions. Its distinctive strength is tight integration with the Microsoft ecosystem, Windows Server, SQL Server, and Microsoft 365 identity, which is why Microsoft-heavy companies gravitate to it.
Key point: Open with 'on-demand cloud services, pay for what you use', then The Microsoft-integration angle. Interviewers use this to hear whether you understand cloud, not just recite product names.
Watch a deeper explanation
Video: AZ-900 Episode 1: Cloud Computing and Vocabulary (Adam Marczak - Azure for Everyone, YouTube)
The three models differ in how much you manage versus the cloud. IaaS gives you raw infrastructure and you handle the OS and up, an Azure Virtual Machine is IaaS. PaaS gives you a managed platform where you just deploy code, Azure App Service and Azure SQL Database are PaaS. SaaS is finished software you just use, like Microsoft 365.
The trade-off is control versus operational burden. IaaS gives the most control and the most work; SaaS gives the least of both. Picking the right level for a workload is a judgment interviewers like to test.
| Model | You manage | Azure example |
|---|---|---|
| IaaS | OS, runtime, app, data | Virtual Machines |
| PaaS | App and data only | App Service, Azure SQL |
| SaaS | Nothing but usage/config | Microsoft 365 |
Key point: Give one Azure example per model. Mapping VM to IaaS and App Service to PaaS shows you the abstraction connects to real services.
A region is a geographic area that contains one or more data centers, like East US or West Europe. You pick a region for latency to your users and for data residency. An availability zone is a physically separate location within a region, its own power, cooling, and network.
The point of zones is fault isolation inside a region. If you spread instances across zones, a single data center failure doesn't take your app down. Not every region has zones, and you deploy zone-aware for high availability.
Key point: Say 'zones protect against a single data center failure within a region'. That one sentence is what the question is really checking.
Watch a deeper explanation
Video: AZ-900 Episode 7: Geographies, Regions and Availability Zones (Adam Marczak - Azure for Everyone, YouTube)
Each Azure region is paired with another region in the same geography, usually a few hundred miles away. The pairing matters for disaster recovery: some services replicate to the paired region automatically, and Azure staggers planned maintenance and platform updates so both halves of a pair aren't updated at once.
It's the level above availability zones. Zones protect against a data center failure inside a region; region pairs protect against a whole region going down. Geo-redundant storage, for example, replicates to the paired region.
Key point: region pairs connects to geo-redundant storage and disaster recovery. It shows you understand the layered availability model rather than one isolated fact.
A resource group is a logical container for resources that share a lifecycle: a web app, its database, and its storage account, for example. You deploy them together, apply access control and tags at the group level, and can delete the whole group in one action to clean up cleanly.
A resource lives in exactly one resource group, though the group can hold resources from different regions. Grouping by lifecycle (per app, per environment) is the pattern; a resource group itself costs nothing.
Key point: Mention that deleting a resource group deletes everything in it. That cleanup behavior, plus 'group by lifecycle', is what a solid coverage names.
The hierarchy goes management group, subscription, resource group, resource. A subscription is a billing and access boundary, resources in it roll up to one bill and share policy and quota limits. Management groups sit above subscriptions to apply governance (policies, access) across many subscriptions at once.
In practice a company splits subscriptions by environment, team, or billing need, then uses management groups to enforce rules consistently across all of them without configuring each subscription by hand.
Key point: Recite the four-level hierarchy in order. Interviewers ask this to see whether you understand Azure's governance model, not just single resources.
An Azure Virtual Machine is IaaS compute: a full server (Windows or Linux) you provision, size, and control down to the operating system. You pick a VM size for the CPU, memory, and disk you need, and you're responsible for patching, scaling, and configuring it.
You reach for a VM when you need that control: lift-and-shift of an existing app, custom OS configuration, software that needs a specific environment, or a workload that doesn't fit a managed service. For a stateless web app, App Service is usually simpler, so a VM is the answer when the managed options don't fit.
Key point: Say when NOT to use a VM (a stateless web app fits App Service better). Knowing the boundary is more senior than listing VM features.
Watch a deeper explanation
Video: AZ-900 Episode 9: Compute Services, VMs, App Service, Functions (Adam Marczak - Azure for Everyone, YouTube)
App Service is a PaaS platform for hosting web apps, REST APIs, and backends without managing the underlying servers. You deploy your code or a container, and Azure handles the OS, patching, load balancing, and built-in autoscaling. It supports common stacks: .NET, Node, Python, Java, PHP.
It's the go-to for a standard web app because you skip all the VM housekeeping and get deployment slots, custom domains, and easy scaling out of the box. The trade-off is less control than a VM, which rarely matters for a typical web workload.
Key point: Contrast it with a VM: App Service trades OS control for zero server management. That trade-off framing is what the question checks.
Azure Functions is serverless compute: you write a small function that runs in response to a trigger (an HTTP request, a queue message, a timer, a blob upload) and Azure runs and scales it for you. There's no server to manage, and on the Consumption plan you pay per execution and only while code runs.
It fits event-driven and glue work: processing uploads, running scheduled jobs, reacting to messages, lightweight APIs. It's not ideal for long-running or always-on workloads, where a plan-based host or App Service fits better.
# create a consumption-plan function app
az functionapp create \
--resource-group rg-demo \
--consumption-plan-location eastus \
--runtime node \
--storage-account stdemo123 \
--name fn-demoKey point: The pay-per-execution model and 'not for long-running work' matters. Both are common follow-ups that separate real use from a textbook definition.
There's a ladder from most control to least. Virtual Machines give you a full OS (IaaS). Azure Kubernetes Service runs managed containers at scale. App Service hosts managed web apps (PaaS). Container Instances runs single containers with no orchestrator, and Functions is serverless, event-driven compute you never provision.
Choose by control versus operational burden and by the workload shape. A stateless web app fits App Service; many microservices needing orchestration fit AKS; a quick event handler fits Functions; a legacy app needing a specific OS fits a VM. Say the reasoning, not just the name.
| Option | Best for | You manage |
|---|---|---|
| Virtual Machines | Full control, lift-and-shift | OS and up |
| AKS | Many containers, orchestration | Nodes and workloads |
| App Service | Standard web apps and APIs | App only |
| Functions | Event-driven, short tasks | Code only |
Key point: Frame the choice as a spectrum of control versus management. Walking down the ladder with a use case each shows real judgment.
Blob Storage holds unstructured object data: images, video, backups, logs, any file you access as a blob. It lives inside a storage account and organizes blobs into containers. It's the default choice for large amounts of file-like data, and it scales to huge volumes cheaply, which is why so much cloud data lands there.
Access tiers trade storage cost against retrieval cost and latency. Hot is for frequently accessed data (cheap to read, pricier to store), cool for infrequent access, cold for rarer access, and archive for long-term retention (cheapest storage, but retrieval takes hours). You match the tier to how often the data is actually read.
Key point: Naming the tiers and the cost trade-off (storage vs retrieval) is the answer. 'Archive is cheap to store but slow to retrieve' is a favorite detail.
A single storage account offers four different data services. Blob is for unstructured objects, Files is for fully managed SMB or NFS file shares you can mount like a network drive, Queue is for simple message queuing between app components, and Table is a NoSQL key-value store for lightweight structured data.
You pick by data shape: blobs for files and media, Files when an app expects a real file share, Queue for decoupling components with messages, Table for lightweight structured lookups. Managed disks for VMs are a separate resource but often discussed alongside these.
Key point: Match each service to a data shape. the key point is you'd pick Files for a mountable share and Blob for objects, not blur them.
Managed disks are the block storage that backs an Azure VM's operating system and data drives. Azure handles the underlying storage account and replication for you, so you just pick a size and a performance type and attach the disk to a VM. That's simpler and more reliable than the old unmanaged approach where you managed storage accounts yourself.
The types trade performance against cost: Ultra and Premium SSD for high-IOPS, low-latency workloads like databases, Standard SSD for general use, and Standard HDD for cheap, infrequently accessed data. You match the disk tier to how demanding the workload's I/O actually is.
Key point: Map disk type to workload I/O needs. Knowing Premium SSD is for databases and HDD for cold data shows you've actually sized VM storage.
Redundancy sets how many copies of your data Azure keeps and where. LRS keeps three copies in one data center (cheapest, survives disk failure). ZRS spreads copies across availability zones in one region (survives a zone outage). GRS replicates to a paired region far away (survives a regional disaster), and GZRS combines zone and geo redundancy.
You choose by how much failure you must survive against cost. LRS is fine for easily reproducible data; GRS or GZRS is for data you can't afford to lose in a regional outage. Read-access geo variants also let you read the secondary copy.
| Option | Protects against | Scope |
|---|---|---|
| LRS | Disk/rack failure | One data center |
| ZRS | A zone outage | Zones in one region |
| GRS | A regional disaster | Two regions |
| GZRS | Zone and region failure | Zones plus a second region |
Key point: Line up each option with what it survives. Confusing ZRS (in-region zones) with GRS (cross-region) is the mistake this question hunts for.
Microsoft Entra ID, formerly Azure Active Directory, is Azure's cloud identity and access service. It stores users, groups, and app registrations and handles authentication, single sign-on, and multi-factor authentication for both people and applications across Azure and Microsoft 365. It's the identity backbone the rest of Azure access builds on.
It's the backbone of access in Azure: role assignments, conditional access policies, and managed identities all build on it. It's not the same as on-premises Active Directory, though you can synchronize the two, and interviewers sometimes probe that distinction.
Key point: Clarify that Entra ID is cloud identity, distinct from on-prem Active Directory even though they sync. That distinction is a common follow-up.
RBAC controls who can do what to which resources. You assign a role (a set of permissions) to a security principal (a user, group, or managed identity) at a scope (a management group, subscription, resource group, or single resource). The assignment is the combination of those three.
Built-in roles cover common needs: Reader (view only), Contributor (manage but not grant access), Owner (full including access), and many resource-specific ones. The principle is least privilege at the narrowest scope that works, and roles inherit down the hierarchy.
Key point: The role + principal + scope triple. Naming that structure, plus least privilege, is exactly what the question screens for.
A Virtual Network is your private, isolated network in Azure. You define an address space, carve it into subnets, and place resources like VMs into those subnets so they can talk to each other privately. It's the foundation everything networked in Azure sits on.
VNets give you control over IP addressing, routing, and segmentation. You them connects to each other with peering, to on-premises networks with VPN or ExpressRoute, and you control traffic with network security groups. Think of it as your own slice of the cloud network.
Key point: Describe it as 'your private network with subnets you control'. peering and NSGs matters.
Watch a deeper explanation
Video: AZ-900 Episode 10: Networking Services, Virtual Network and Load Balancer (Adam Marczak - Azure for Everyone, YouTube)
An NSG is a set of security rules that allow or deny network traffic to and from resources. Each rule matches on source, destination, port, and protocol, and has a priority; Azure evaluates rules by priority until one matches. You attach an NSG to a subnet or to a VM's network interface.
It acts as a distributed, stateful firewall: because it's stateful, if you allow an inbound flow the response is allowed back automatically. The default rules deny inbound from the internet and allow outbound, so you open only what you need.
Key point: Say NSG rules are stateful and priority-ordered. Those two properties come up as follow-ups and prove you've actually written rules.
A private IP comes from your VNet's address space and is used for communication inside the VNet or to on-premises over a private connection. It's not reachable from the internet. A public IP is internet-routable and is what lets outside traffic reach a resource or a resource reach out with a stable address.
You attach a public IP only where you need internet exposure (a load balancer front end, a bastion host), and keep everything else on private IPs behind it. Minimizing public IPs is a basic security posture.
Key point: Add the security angle: expose as few public IPs as possible and keep the rest private. That instinct is what elevates the answer.
All three offer the same categories: compute, storage, networking, managed databases, identity. They mostly differ in naming, a few defaults, and where each is strongest. Azure's edge is deep Microsoft integration: Entra ID for identity, first-class Windows and SQL Server support, and hybrid tools like Azure Arc.
AWS has the broadest and oldest catalog; GCP leans into data, analytics, and Kubernetes. The honest coverage names the fit rather than a winner: Azure suits companies already in Microsoft 365 and Active Directory, AWS suits breadth and maturity, GCP suits data-heavy work.
| Service | Azure | AWS | GCP |
|---|---|---|---|
| Virtual machines | Virtual Machines | EC2 | Compute Engine |
| Object storage | Blob Storage | S3 | Cloud Storage |
| Managed Kubernetes | AKS | EKS | GKE |
| Serverless | Functions | Lambda | Cloud Functions |
Key point: Don't declare a winner. Naming the fit per cloud, and knowing the equivalent service names, is what a cross-cloud question rewards.
For candidates with working experience: deployment and IaC, identity and security depth, networking, monitoring, and the judgment questions that separate service users from architects.
ARM templates are JSON files that declare Azure resources so you can deploy infrastructure as code: repeatable, version-controlled, idempotent. You describe the desired resources and Azure Resource Manager provisions them. Bicep is a friendlier language that compiles down to the same ARM JSON, with far less boilerplate and cleaner syntax.
They're the native IaC option. Bicep is now the recommended way to author because it's readable and modular, while raw ARM JSON is verbose. Many teams use Terraform instead for multi-cloud, but for Azure-only, Bicep is the first-party path.
resource storage 'Microsoft.Storage/storageAccounts@2023-01-01' = {
name: 'stdemo${uniqueString(resourceGroup().id)}'
location: resourceGroup().location
sku: { name: 'Standard_LRS' }
kind: 'StorageV2'
}Key point: Say Bicep compiles to ARM JSON and is the recommended first-party authoring language. Knowing that relationship signals current Azure IaC practice.
Bicep is Azure-native: no state file to manage (ARM tracks state), day-one support for new Azure features, and tight integration. Terraform is multi-cloud with its own state file and a huge provider ecosystem, so it wins when you manage more than Azure, or when your team already standardizes on Terraform everywhere.
The honest answer is 'depends on scope'. Azure-only shop, Bicep keeps things simple. Multi-cloud or an existing Terraform practice, Terraform's consistency across providers outweighs Bicep's native edge.
| Bicep | Terraform | |
|---|---|---|
| Scope | Azure only | Multi-cloud |
| State | Managed by ARM | You manage a state file |
| New Azure features | Day-one support | Waits on provider updates |
Key point: Anchor the choice in scope: multi-cloud or existing Terraform means Terraform; Azure-only means Bicep. That reasoning beats a feature list.
Conditional access is a policy engine that decides access based on signals at sign-in: who the user is, what device they're on, where they are, how risky the sign-in looks. A policy says, for example, require multi-factor authentication when a user accesses a sensitive app from outside the corporate network.
It's how you enforce zero-trust access without blanket rules. Policies grant, block, or add requirements (MFA, a compliant device) per situation, so you tighten security where risk is high without making everyone's daily sign-in painful.
Key point: Frame it as 'if these signals, then require this'. Connecting it to zero trust and risk-based access is the mid-level depth the question needs.
A managed identity gives an Azure resource an identity in Entra ID that Azure manages automatically, so the resource can authenticate to other services (Key Vault, Storage, a database) without any credential stored in code or config. Azure creates and rotates the underlying credential for you.
There are two kinds: system-assigned (tied to one resource's lifecycle, deleted with it) and user-assigned (a standalone identity you can attach to several resources). The payoff is no secrets to leak or rotate by hand, which removes the most common cloud credential mistake.
# turn on a system-assigned identity for a web app
az webapp identity assign \
--resource-group rg-demo \
--name app-demo
# then grant it access to a key vault via RBAC or an access policyKey point: Distinguish system-assigned from user-assigned, and stress 'no secrets in code'. Both points are the follow-ups this question leads to.
Key Vault is a managed service for storing and controlling access to secrets, keys, and certificates: connection strings, API keys, encryption keys, TLS certs. Apps read them at runtime instead of holding them in config, and every access is authenticated and logged.
It pairs naturally with managed identities: a resource uses its identity to fetch a secret from Key Vault with no stored credential anywhere. It also handles certificate lifecycle and can back keys with hardware security modules for stricter requirements.
Key point: Key Vault maps to managed identity: the app fetches secrets using its identity, zero stored credentials. That pairing is the pattern interviewers look for.
They operate at different layers and scopes. Azure Load Balancer is layer 4 (TCP/UDP), fast and regional, distributing raw traffic across backend instances. Application Gateway is layer 7 (HTTP/HTTPS), regional, with path and host routing, TLS termination, and a web application firewall. Front Door is a global layer 7 entry point with CDN, routing across regions, and its own WAF.
You pick by need: Load Balancer for non-HTTP or simple TCP balancing, Application Gateway for smart HTTP routing within a region, Front Door to route users to the nearest healthy region globally. They're often layered together.
| Service | Layer | Scope |
|---|---|---|
| Load Balancer | L4 (TCP/UDP) | Regional |
| Application Gateway | L7 (HTTP), WAF | Regional |
| Front Door | L7 (HTTP), WAF, CDN | Global |
Key point: The clean split is layer (4 vs 7) and scope (regional vs global). Confusing Load Balancer with Application Gateway is the classic slip here.
For VNet-to-VNet inside Azure, VNet peering connects them over the Azure backbone with low latency, as if they were one network; it works across regions (global peering) too. For connecting Azure to an on-premises network, a VPN Gateway builds an encrypted tunnel over the internet, while ExpressRoute is a private, dedicated connection that skips the public internet for higher, steadier throughput.
You choose ExpressRoute over VPN when you need predictable bandwidth, lower latency, or want traffic off the public internet for compliance. VPN is cheaper and quicker to stand up for lighter or bursty needs.
Key point: Contrast VPN (over the internet) with ExpressRoute (private, dedicated). Naming when ExpressRoute earns its cost is the mid-level distinction.
Azure Monitor is the umbrella. It collects metrics (numeric time series like CPU or request count) and logs, and you query logs with Kusto Query Language in Log Analytics. Application Insights sits on top for application-level telemetry: request rates, dependencies, exceptions, and distributed traces.
You set alerts on metrics or log queries to fire when something crosses a threshold, and build dashboards or workbooks to visualize health. The workflow is metrics to notice a problem, logs and traces to dig into why, mirroring observability practice anywhere.
Key point: The Azure Monitor, Log Analytics with KQL, and Application Insights, and how they fit together. That structure indicates someone who's actually operated Azure.
Azure SQL Database is a fully managed PaaS SQL Server database: Azure handles patching, backups, and high availability, and you scale it up or use serverless tiers. SQL Managed Instance gives near-full SQL Server compatibility for lift-and-shift of on-premises databases. And you can always run SQL Server on a VM (IaaS) when you need total control.
Beyond SQL Server, Azure offers managed PostgreSQL and MySQL. The choice is the familiar control-versus-management ladder: SQL Database for a clean managed app database, Managed Instance to migrate an existing instance with minimal changes, a VM when you need OS-level control.
| Option | Best for | Management |
|---|---|---|
| Azure SQL Database | New app databases, PaaS | Fully managed |
| SQL Managed Instance | Lift-and-shift on-prem SQL | Mostly managed |
| SQL Server on a VM | Full control needs | You manage it |
Key point: Map each option to a migration scenario. Knowing Managed Instance is the lift-and-shift path shows real database-on-Azure experience.
Cosmos DB is a globally distributed, multi-model NoSQL database. It replicates data across the regions you choose, offers single-digit millisecond reads, and lets you pick a consistency level from strong to eventual to trade consistency against latency and availability. It scales throughput elastically as demand grows.
You reach for it when you need low-latency reads and writes across the globe, elastic scale, and a flexible schema: think a product catalog serving users worldwide, or high-throughput telemetry. For a straightforward relational app in one region, Azure SQL is simpler and usually cheaper.
Key point: The tunable consistency levels matters. That feature is what distinguishes Cosmos DB from a generic NoSQL store, and interviewers probe it.
AKS is managed Kubernetes. Azure runs and maintains the control plane (the API server, scheduler, etcd) for free, so you don't operate the master nodes. You define and pay for the worker node pools that run your workloads, and you deploy the usual Kubernetes objects onto them.
It integrates with the rest of Azure: Entra ID for cluster access, Azure CNI for pod networking into your VNet, managed identities for pulling from Azure Container Registry, and Azure Monitor for container insights. It removes the hardest part of Kubernetes, running the control plane, while leaving you the workloads.
# create a small AKS cluster and get credentials
az aks create -g rg-demo -n aks-demo --node-count 2 --generate-ssh-keys
az aks get-credentials -g rg-demo -n aks-demo
kubectl get nodesKey point: Say Azure manages the control plane and you manage node pools. That division of responsibility is the exact thing this question checks.
Azure Container Registry (ACR) is a private registry for your container images. You build and push images to it from CI, and your compute (AKS, App Service, Container Instances) pulls from it to run. Keeping images private and close to your compute means faster, controlled pulls.
Access is best handled with a managed identity: AKS pulls from ACR using its identity with no stored registry password. ACR can also build images for you and run tasks that rebuild on a base-image update, which helps keep images patched.
Key point: ACR pulls connects to managed identity rather than a stored password. That secure-by-default pattern is what The technical detail is.
A Virtual Machine Scale Set manages a group of identical VMs as one unit, so you can run and scale many copies of the same workload behind a load balancer. You define the VM image and size once, and the scale set keeps the desired number running.
Autoscale rules add or remove instances based on metrics (CPU, memory, queue length) or a schedule, within min and max bounds you set. It's how you handle variable load on IaaS: scale out under pressure, scale in when it's quiet, without provisioning VMs by hand.
Key point: Explain scaling on a metric within min/max bounds. Knowing autoscale needs a signal and boundaries shows you've configured it, not just heard of it.
An App Service plan defines the compute (the VMs, their size, and pricing tier) that your App Service apps run on. Several apps can share one plan, so they share its resources and cost. The tier (Free, Basic, Standard, Premium) sets features like custom domains, deployment slots, and how far you can scale out.
Scaling up means moving to a bigger tier or size (more CPU and memory per instance); scaling out means adding instances, which the higher tiers and autoscale support. Understanding that apps on one plan compete for its resources is key to sizing and cost.
Key point: Distinguish scale up (bigger tier) from scale out (more instances), and note apps on a plan share resources. Both come up when sizing App Service.
Two first-party options: Azure Pipelines (part of Azure DevOps) and GitHub Actions. Both do the same job, on a push, build and test the code, produce an artifact or container image, then deploy it to the target (App Service, AKS, Functions). You define the pipeline as YAML in the repo so it's versioned alongside the code.
Good practice authenticates to Azure with a workload identity federation or a service connection scoped least-privilege, promotes the same artifact through environments, and gates production behind approvals. The build-once, deploy-everywhere rule applies exactly as it does anywhere.
# azure-pipelines.yml (sketch)
trigger:
- main
steps:
- script: npm ci && npm run build
- task: AzureWebApp@1
inputs:
appName: app-demo
package: $(System.DefaultWorkingDirectory)/distKey point: The Azure Pipelines and GitHub Actions, and mention least-privilege service connections. Knowing the auth story matters more than the YAML syntax.
Watch a deeper explanation
Video: Azure DevOps: Zero to Hero Tutorial (DevOps on Azure, YouTube)
Serverless (Functions) fits event-driven, spiky, or intermittent work: react to a queue message, run a nightly job, handle occasional webhooks. You pay only while code runs and scaling is automatic, so idle time costs nothing and traffic spikes are handled for you.
It's the wrong fit for steady, always-on, or long-running workloads: a constantly busy API or a job that runs for many minutes is cheaper and simpler on App Service or a VM, where you're not fighting execution time limits or cold starts. The deciding factors are traffic shape and run duration.
Key point: Decide on traffic shape and run duration: spiky and short favors serverless, steady and long favors App Service or a VM. Naming cold starts is a plus.
visibility comes first. Azure Cost Management shows spend broken down by subscription, resource group, and tag, so tagging resources by team or project is what makes cost attributable in the first place. Budgets and alerts then warn you before you overshoot, rather than after the bill lands.
Then the levers: right-size over-provisioned resources, use reserved instances or savings plans for steady baseline workloads, autoscale so you're not paying for idle capacity, pick the right storage tier, and shut down non-production resources off-hours. The biggest wins are usually killing waste, not squeezing discounts.
Key point: Lead with 'tag and attribute spend before cutting'. Framing cost as an engineering discipline with visibility first beats reciting a list of discounts.
Azure Arc extends Azure management to resources that live outside Azure: servers in your own data center, VMs in another cloud, or Kubernetes clusters anywhere. You project those resources into Azure Resource Manager so you can apply the same governance, policy, RBAC, and monitoring you use for native Azure resources.
The point is one control plane across a mixed estate. Instead of managing on-premises and cloud with separate tools, you tag, patch, enforce policy, and monitor everything through Azure. It fits companies mid-migration or committed to running some workloads outside Azure for latency or compliance.
Key point: Frame Arc as 'one Azure control plane over resources that live elsewhere'. Naming the governance-everywhere angle is what a hybrid question is really after.
advanced rounds probe architecture, security, governance, and production scars. Expect every answer here to draw a follow-up about trade-offs and failure modes.
Layer redundancy to match the failure you must survive. Within a region, spread instances across availability zones and put them behind a zone-redundant load balancer so a single data center loss doesn't take you down. Use zone-redundant storage and databases with built-in HA. Above that, for regional failure, run a second region (active-active or warm standby) with data replication and route traffic with Front Door or Traffic Manager health checks.
The hard part is always the data. Cross-region replication has latency and consistency trade-offs, and failover must be rehearsed because an untested plan usually fails when it's needed. Anchor the design in the RTO and RPO the business actually requires, not the fanciest architecture available.
Layers of Azure availability
Start from the required RTO and RPO. Each layer adds cost and complexity, so match the tier to what the business actually needs.
Key point: Anchor in RTO/RPO and 'the data is the hard part'. Jumping to active-active multi-region without the cost and consistency discussion indicates inexperienced.
A landing zone is a pre-configured, governed environment that a new workload lands in: the subscription structure, networking, identity, policies, and monitoring already set up to a standard, so teams don't reinvent them per project. The Cloud Adoption Framework describes the pattern.
Governance matters at scale because dozens of subscriptions drift without it. Azure Policy enforces rules (allowed regions, required tags, no public IPs on certain resources), management groups apply those policies across many subscriptions, and RBAC scopes access. Together they keep a large estate consistent, compliant, and auditable instead of a sprawl of one-off setups.
Key point: The Azure Policy, management groups, and the landing zone concept together. Governance-at-scale literacy is exactly what a senior cloud role screens for.
Azure Policy enforces rules about what resources can exist and how they're configured: deny VM sizes above a limit, require a tag, restrict regions, audit resources missing encryption. It evaluates resources against definitions and can deny non-compliant deployments or flag existing ones, and it can even remediate.
The distinction the question needs: RBAC governs who can do actions (permissions on identities), while Policy governs what the resource itself is allowed to be, regardless of who's acting. You need both. A Contributor might be allowed to create a VM (RBAC), but Policy can still deny an oversized or untagged one.
Key point: The crisp line is 'RBAC controls who can act, Policy controls what resources are allowed to be'. Blurring the two is the mistake this question hunts for.
Hub-and-spoke centralizes shared network services in a hub VNet: a firewall or network virtual appliance, a VPN or ExpressRoute gateway to on-premises, and shared DNS. Workload VNets are spokes peered to the hub, so all of them reuse those shared services instead of each duplicating them.
It's how you scale networking cleanly: traffic between spokes and to on-premises routes through the hub where you inspect and control it, segmentation stays clear, and you add a new spoke by peering it in. The trade-off is the hub becomes a critical path, so it needs to be highly available.
Key point: Explain why you'd centralize (shared firewall, gateway, DNS) and note the hub is a critical path. That reasoning shows real network-architecture experience.
Both keep traffic to Azure PaaS services (Storage, SQL, Key Vault) off the public internet, but differently. A service endpoint extends your VNet's identity to the service over the Azure backbone, but the service still has a public IP. A private endpoint gives the service a private IP inside your VNet, so it's reachable only privately and you can drop its public access entirely.
Private endpoints are the stronger, now-preferred option: the service becomes a private resource on your network, which satisfies stricter compliance and removes public exposure. The catch is they need private DNS configured correctly, which is where teams most often trip up.
| Service endpoint | Private endpoint | |
|---|---|---|
| Service IP | Stays public | Private IP in your VNet |
| Isolation | Backbone route, still public-facing | Fully private, drop public access |
| Gotcha | Less isolation | Needs private DNS set up right |
Key point: Note that private endpoints give the service a private IP and need private DNS. The DNS gotcha is a favorite senior follow-up.
Start from RTO (how fast you must recover) and RPO (how much data loss is tolerable), because those numbers drive the whole design and its cost. For infrastructure, Azure Site Recovery replicates VMs to a secondary region for failover. For data, use geo-redundant storage and database geo-replication so a copy already sits in another region.
The pattern is a documented, tested runbook: replicate to a paired region, keep the failover target ready (warm standby or on-demand rebuild via IaC), and rehearse failover on a schedule. Untested DR is theater; the drill is what proves the RTO is real.
Key point: Lead with RTO and RPO, then name Site Recovery and geo-replication, then stress rehearsing failover. 'We have DR but never tested it' is the answer that fails.
Zero trust means verify explicitly, use least privilege, and assume breach. In Azure that translates to concrete controls: enforce MFA and conditional access on every identity, use managed identities so no secrets sit in code, scope RBAC to least privilege at the narrowest scope, and segment networks with NSGs and private endpoints so services aren't publicly reachable.
Layer on defense in depth: Key Vault for secrets, encryption at rest and in transit by default, Microsoft Defender for Cloud for posture and threat detection, and centralized logging so you can investigate. The mindset is that no request is trusted by default just because it's inside the network.
Key point: Recite the zero-trust triple (verify explicitly, least privilege, assume breach) and map each to a concrete Azure control. That mapping is the senior-level answer.
Defender for Cloud is Azure's security posture management and workload protection service. It continuously assesses your resources against security best practices, gives a secure score you can drive up, and surfaces prioritized recommendations for misconfigurations like an open port or unencrypted storage.
Its Defender plans add threat detection for specific workloads (servers, storage, SQL, containers), alerting on suspicious activity. It also helps with regulatory compliance dashboards. At senior level, the point is that it turns security from a one-time audit into a continuous, measurable practice.
Key point: Separate the two halves: posture management (secure score, recommendations) and threat protection (Defender plans). Naming both shows you've actually used it.
It's Microsoft's set of guiding principles for judging a workload across five pillars: reliability, security, cost optimization, operational excellence, and performance efficiency. You use it as a lens to review a design and find where it's weak, because these pillars trade off against each other.
The value in an interview is showing you reason across pillars, not just one. A cheaper design might hurt reliability; a more secure one might add operational cost. Naming the pillars and how you'd balance them for a given workload is what a design discussion is really testing.
Key point: List the five pillars and stress they trade off. Reasoning across pillars, not optimizing one blindly, is the mature framing for any design prompt.
Use the expand-and-contract (parallel change) pattern so the schema stays compatible with both old and new application code at every step. Expand: add the new column or table without dropping the old, deploy code that writes to both and reads the old, backfill existing rows, then switch reads to the new. Contract: once nothing uses the old schema, remove it in a later deploy.
The rule is never make a breaking change in one step while old code still runs. Azure SQL's online index operations and careful batching of the backfill keep locks short. Each step should be independently deployable and reversible, which is what decouples the schema change from the code change and avoids downtime.
Key point: Naming 'expand-and-contract' and 'backwards-compatible at every step' is the answer. Proposing a single breaking ALTER while old instances run fails this question.
Match the messaging service to the need. Event Grid routes discrete events (a blob was created, a resource changed) to handlers with a publish-subscribe model, great for reactive glue. Service Bus is an enterprise message broker with queues and topics, ordering, and transactions, for reliable decoupled workloads. Event Hubs ingests high-throughput streams (telemetry, logs) for analytics.
The design pattern is producers publish, consumers subscribe, and the broker decouples them so each scales independently and a slow consumer doesn't block a producer. Choosing wrong (Service Bus for a firehose of telemetry, or Event Hubs for transactional messages) is the mistake this question probes.
| Service | Built for | Model |
|---|---|---|
| Event Grid | Reactive events, routing | Pub/sub, lightweight |
| Service Bus | Reliable enterprise messaging | Queues and topics |
| Event Hubs | High-throughput streams | Event streaming ingest |
Key point: Match each service to a scenario. Knowing Event Hubs is for streams and Service Bus for transactional messaging separates architects from service listers.
Clarify first: traffic shape, availability targets, data model, and compliance constraints. Then lay out tiers. Front Door or Application Gateway with a WAF as the entry point; the app on App Service or AKS spread across availability zones with autoscale; state in Azure SQL or Cosmos DB with built-in HA and geo-replication if the SLA needs it; static assets in Blob Storage behind a CDN.
Wrap it in the cross-cutting concerns: identity through Entra ID with managed identities so no secrets live in code, secrets in Key Vault, private endpoints so data services aren't public, and Azure Monitor plus Application Insights for observability. Deploy it all with Bicep or Terraform through a CI/CD pipeline with least-privilege credentials. The structure that scores is clarify, pick tiers with justification, then layer security, HA, and observability, each choice tied to the requirements you asked for.
Key point: Open by asking clarifying questions before designing. Jumping straight to a service list, without requirements, is the most common way to underperform on a design prompt.
The three big clouds cover the same ground: compute, storage, networking, managed databases, identity. They differ in naming, in a few defaults, and in where each is strongest. Azure's pull is deep integration with the Microsoft stack: Entra ID (formerly Azure AD) as the identity backbone, tight Windows Server and SQL Server support, and hybrid options through Azure Arc. AWS is the broadest and oldest catalog, GCP leans into data and Kubernetes. For an interview, don't claim one is universally better. The fit: Azure when a company already lives in Microsoft 365 and Active Directory, AWS for breadth and maturity, GCP for data and analytics. Knowing the equivalent service names across clouds is a common cross-cloud question.
| Capability | Azure | AWS | GCP |
|---|---|---|---|
| Core compute (VM) | Virtual Machines | EC2 | Compute Engine |
| Serverless functions | Azure Functions | Lambda | Cloud Functions |
| Managed Kubernetes | AKS | EKS | GKE |
| Object storage | Blob Storage | S3 | Cloud Storage |
| Identity | Microsoft Entra ID | IAM | Cloud IAM |
Prepare in layers, and trade-offs out loud is the explanation path. Most Azure rounds move from concept questions to a hands-on or scenario task to a design discussion, so rehearse each stage rather than only reading answers.
The typical Azure interview flow
Earlier rounds increasingly run as AI-driven technical interviews. The concepts on this page are what gets probed at every stage.
10 questions, about 6 minutes. Score 70% or higher to earn a shareable certificate.
Hyring builds the AI Coding Interviewer that runs live technical rounds in 20+ languages for 5,000+ hiring teams. These Azure questions and scoring notes reflect what actually gets asked and evaluated inside the interviews we host.
See how the AI Coding Interviewer works