Question

Difficulty: HardHigh Availability, Scalability, and Elasticity

A company is planning to migrate its applications to Azure and has defined the following architectural requirements:
- A legacy database that cannot be clustered must handle temporary CPU and memory spikes during end-of-month reporting.
- A stateless web application must automatically scale its compute instances in real time to match fluctuating user demand while minimizing costs.
- The web application must remain operational even if a physical power outage affects an entire datacenter facility within the hosting region.

Which configuration strategy correctly addresses these requirements by applying the appropriate cloud concepts?

  1. A
    Implement horizontal scaling for the database, configure elasticity through horizontal autoscaling for the web application, and replicate the database across multiple Azure regions to provide high availability.
  2. B
    Implement vertical scaling for both the database and the web application, and configure the web application to replicate to a secondary Azure region to protect against the datacenter outage.
  3. Implement vertical scaling for the database, configure elasticity through horizontal autoscaling for the web application, and deploy the web application across multiple Availability Zones.Answer
  4. D
    Implement horizontal scaling for the database, configure vertical scaling for the web application, and rely on resource group replication across multiple Availability Zones to ensure high availability.

Answer

Implement vertical scaling for the database, configure elasticity through horizontal autoscaling for the web application, and deploy the web application across multiple Availability Zones.
The configuration strategy that implements vertical scaling for the database, horizontal autoscaling for the web application, and Availability Zones for the web application is correct. Since the database cannot be clustered, it must be scaled vertically (adding CPU and memory to a single instance) to handle peak workloads. The stateless web application can scale horizontally, and configuring elasticity allows it to automatically add and remove instances based on demand, which optimizes costs. Deploying the web application across multiple Availability Zones within the region provides high availability, protecting against a power outage in a single datacenter facility.

Step-by-Step Solution

1
Analyze the database scaling requirement.
Since the legacy database cannot be clustered or distributed, it cannot scale horizontally. Therefore, to handle temporary end-of-month spikes, it must scale vertically (adding more CPU/RAM to the existing single VM).
Vertical scaling increases the capacity of an existing resource, whereas horizontal scaling adds more instances of a resource.
2
Analyze the web application scaling and cost optimization requirements.
The web application experiences fluctuating, unpredictable demand and must minimize costs when traffic is low. This requirement is met by configuring elasticity, which automatically adds or removes compute instances (horizontal autoscaling) based on real-time load metrics.
Elasticity is the ability to automatically scale resources dynamically to match demand, ensuring performance while optimizing costs.
3
Analyze the availability and resilience requirements.
The application must remain operational during a localized datacenter power failure within the region. Deploying the web application across multiple Availability Zones (independent datacenters with separate power/cooling within the same region) ensures High Availability.
Availability Zones protect against localized datacenter outages, providing high availability within a region, whereas cross-region replication is used for disaster recovery.

Key Concept

Understanding the differences between vertical scaling, horizontal scaling, elasticity, and high availability, and how to apply them to specific application constraints.
Rate this question