Azure Fundamentals (AZ-900)

Last Updated: 11/30/2022

Benefits of high availability and scalability in the cloud

  • When building or deploying a cloud application, two of the biggest considerations are availability (uptime) and scalability (the ability to handle demand).

High Availability

  • When you’re deploying an application, a service, or any IT resources, it’s important the resources are available when needed.
  • High availability focuses on ensuring maximum availability, regardless of disruptions or events that may occur.
  • When you’re architecting your solution, you’ll need to account for service availability guarantees.
  • Azure is a highly available cloud environment with uptime guarantees depending on the service. These guarantees are part of the service-level agreements (SLAs).

Scalability

  • Scalability refers to the ability to adjust resources to meet demand.
  • If your suddenly experience peak traffic and your systems are overwhelmed, the ability to scale means you can add more resources to better handle the increased demand.
  • If demand drops off, you can reduce your resources and thereby reduce your costs.
  • Because the cloud is a consumption-based model, you only pay for what you use.
  • Scaling generally comes in two varieties: vertical and horizontal.
  • Vertical scaling is focused on increasing or decreasing the capabilities of resources.
  • Horizontal scaling is adding or subtracting the number of resources.

Vertical Scaling (Scale up or Scale down)

  • If you needed more processing power, you could vertically scale up to add more CPUs or RAM to the virtual machine.
  • If you realized you had over-specified the needs you could vertically scale down by lowering the CPU or RAM specifications.

Horizontal Scaling (Scale out or Scale in)

  • If you suddenly experienced a steep jump in demand, your deployed resources could be scaled out (either automatically or manually). For example, you could add additional virtual machines or containers, scaling out.
  • If there was a significant drop in demand, deployed resources could be scaled in (either automatically or manually), scaling in.

Service Level Agreement

  • A service level agreement, or SLA, is a standard industry term. It's the formal agreement between a service provider and customer that guarantees the customer a stated level of service. The service provider may be a commercial company providing the service, like Microsoft, when you use Azure services. But SLAs are also used inside organizations, in an agreement between the IT department and the business users.

  • Azure service level agreements are represented as a percentage, related to the service or application's availability. This availability is also known as "up time". If the service was always available to use, you'd say it was 100% available or it had 100% up time. An SLA also commonly includes details like what is defined as down time, when the service is unavailable, and any credit you may be entitled to if the SLA is not met.

  • In reality, 100% up time is difficult and expensive to achieve, because it allows no time for taking the service down for required maintenance or upgrades. It would also require duplicating every single component in case one component failed and would require those backup components to pick up the service tasks with zero interruption to the customer. For these reasons, SLAs of 99%, 99.9%, and 99.95% are more common. 99.99% is also available in some services in Azure.

  • There is a big difference in a service that's 99% available versus one that's 99.9% available. A service with a 99% SLA percentage can be unavailable for up to 1.6 hours per week or 7.2 hours per month, and still be 99% available. That time is cumulative, which means it can be added up over multiple incidents of the service being unavailable.

  • A service with the 99.9 SLA percentage can be unavailable for only 10 minutes per week or 43.2 minutes per month. That's clearly a big difference. If the service is critical to your business, minutes versus hours of down time can make a big difference but highly available services do come at an extra cost.

  • Each Azure service has its own SLA. Take into account prior to designing any application that runs on Azure to ensure your optimizing availability against your business needs.