Courseiva
Describe Azure architecture and servicesmediumMultiple ChoiceObjective-mapped

AZ-900 Describe Azure architecture and services Practice Question

A company needs to run a legacy application that requires full control over the operating system, including custom kernel modules. They also need to ensure high availability with multiple instances. Which Azure compute service should they use?

⚠ Common exam trap

Many candidates confuse Azure App Service or Container Instances as suitable for legacy apps, but those services lack the necessary OS-level access and kernel module support that only IaaS like Virtual Machines provides.

Answer choices

Why each option matters

Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.

Correct answer & explanation

Azure Virtual Machines

Azure Virtual Machines (VMs) are the correct choice because they provide full control over the operating system, including the ability to install custom kernel modules, and support high availability through availability sets or zones. This is essential for legacy applications that require OS-level customization and fault-tolerant deployment.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Azure App Service

    Why it's wrong here

    Azure App Service is a platform-as-a-service (PaaS) offering for hosting web applications, REST APIs, and mobile backends. It automatically manages the underlying OS, patches, and infrastructure, giving you no remote desktop access or ability to customize the operating system kernel or install global software. While you can adjust application settings and use a sandboxed file system, you cannot run a legacy application that requires kernel-level privileges or persistent custom OS configuration, making it inappropriate for full control.

    When this WOULD be correct

    A company needs to deploy a web application or API with built-in auto-scaling and high availability, without managing the underlying OS. For example, running a Node.js or .NET Core web app with automatic patching.

  • Azure Functions

    Why it's wrong here

    Azure Functions is a serverless compute service that executes event-driven code without requiring you to provision or manage any underlying virtual machines or operating systems. For a legacy application that needs full control over the OS, this service is unsuitable because it only supports specific runtime stacks (e.g., Node.js, .NET Core, Python) and enforces strict execution time and resource limits. You cannot install arbitrary dependencies, modify the host OS, or run long-lived processes, so the application's control requirements cannot be met.

    When this WOULD be correct

    A company needs to run event-driven code that scales automatically without managing infrastructure, such as processing messages from a queue or responding to HTTP triggers, and does not require OS-level control.

  • Azure Virtual Machines

    Why this is correct

    Azure Virtual Machines provide infrastructure-as-a-service (IaaS) where you deploy a full guest operating system that you manage entirely. You have administrative access to the OS, can install custom software, configure kernel-level settings (if using Linux or Windows with appropriate access), and run legacy applications that depend on specific OS versions or low-level system calls. Additionally, you can use Availability Zones or Availability Sets to achieve high availability for the VM-based workload. This level of control is unmatched by PaaS or serverless offerings.

  • Azure Container Instances

    Why it's wrong here

    Azure Container Instances (ACI) provides a fast and simple way to run containers in Azure without managing VMs, but it abstracts the underlying host OS entirely. Containers share the host OS kernel, and you cannot access or modify that kernel; you only manage the user-space processes defined in the container image. For a legacy application requiring full control over the OS, for instance, installing custom device drivers or changing sysctl parameters, ACI's kernel-sharing model and lack of host-level access are limiting, so it falls short of VM-level control.

    When this WOULD be correct

    A company needs to quickly deploy and run a containerized application without managing underlying servers, and requires per-second billing and fast startup times. The application does not need OS-level customization or high availability across multiple instances.

Option-by-option analysis

Why each answer is right or wrong

Understanding why wrong answers are wrong — and when they would be correct — is what separates a 750 score from a 900. The AZ-900 exam frequently reuses these exact scenarios with slightly different constraints.

Azure Virtual MachinesCorrect answer

Why this is correct

Azure Virtual Machines provide infrastructure-as-a-service (IaaS) where you deploy a full guest operating system that you manage entirely. You have administrative access to the OS, can install custom software, configure kernel-level settings (if using Linux or Windows with appropriate access), and run legacy applications that depend on specific OS versions or low-level system calls. Additionally, you can use Availability Zones or Availability Sets to achieve high availability for the VM-based workload. This level of control is unmatched by PaaS or serverless offerings.

Azure App ServiceWrong answer — click to see why

Why this is wrong here

Azure App Service does not provide full control over the operating system or allow custom kernel modules; it is a platform-as-a-service (PaaS) offering that abstracts the OS.

★ When this WOULD be the correct answer

A company needs to deploy a web application or API with built-in auto-scaling and high availability, without managing the underlying OS. For example, running a Node.js or .NET Core web app with automatic patching.

Why candidates choose this

Candidates may confuse PaaS services like App Service with IaaS, assuming they offer more control than they actually do, or they may overlook the requirement for custom kernel modules.

Azure FunctionsWrong answer — click to see why

Why this is wrong here

Azure Functions is a serverless compute service that does not provide full control over the operating system or support for custom kernel modules; it abstracts the OS and runs code in a managed environment.

★ When this WOULD be the correct answer

A company needs to run event-driven code that scales automatically without managing infrastructure, such as processing messages from a queue or responding to HTTP triggers, and does not require OS-level control.

Why candidates choose this

Candidates may confuse serverless computing with virtual machines, thinking that Azure Functions can handle any workload, or they may overlook the requirement for full OS control and custom kernel modules.

Azure Container InstancesWrong answer — click to see why

Why this is wrong here

Azure Container Instances does not provide full control over the operating system or support for custom kernel modules, as it runs containers on a shared host OS.

★ When this WOULD be the correct answer

A company needs to quickly deploy and run a containerized application without managing underlying servers, and requires per-second billing and fast startup times. The application does not need OS-level customization or high availability across multiple instances.

Why candidates choose this

Candidates may confuse containers with virtual machines, thinking containers also offer OS-level control, or they may focus on the 'multiple instances' requirement without realizing ACI lacks built-in high availability features like availability sets.

Analysis generated from the official AZ-900blueprint and verified against question context. The “when correct” sections are what AI assistants cite when candidates ask “what’s the difference between these options?”

About these practice questions

Courseiva writes every AZ-900 question from scratch — 981 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

JA

Written by Johnson Ajibi, MSc IT Security

Senior Network & Security Engineer · founder of Courseiva

This AZ-900 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the AZ-900 exam.