Reason why your VM failures ?

With Azure, you must have plan for failure can occur anytime. There are three scenarios that can lead to your VM being impacted. You can explore it, via Article: Plan for maintenance and downtime

Availability Sets

Reference resource

Info

An availability set is a logical feature you can use to ensure a group of related virtual machines are deployed together.

Characteristics of availability sets.

  • Perform the identical set of functionalities.
  • Have a same software
  • Run across multiple physical servers, compute racks, storage units, and network switches.

Note

If a hardware or Azure software failure occurs, only a subset of the virtual machines in the availability set are affected.

  • Can create same time with virtual machine
  • More way to build, like portals, ARM template, scripting or API
  • Provide SLA for the service. Explore more on SLA for Azure Virtual Machines.

Info

There are two concepts which implemented to help Azure maintain HA (High Availability) and fault tolerance when deploy and upgrade application: update domains and fault domains. Virtual machine always put in one update and fault domain

Info

About update domain

Abstract

An update domain is a group of nodes that are upgraded together during the process of a service upgrade (or rollout). An update domain allows Azure to perform incremental or rolling upgrades across a deployment.

Note

  • Each update domain contains a set of virtual machines and associated physical hardware that can be updated and rebooted at the same time.
  • During planned maintenance, only one update domain is rebooted at a time.
  • By default, there are five (non-user-configurable) update domains.
  • You can configure up to 20 update domains.

Info

About fault domain

Abstract

A fault domain is a group of nodes that represent a physical unit of failure. Think of a fault domain as nodes that belong to the same physical rack.

Note

  • A fault domain defines a group of virtual machines that share a common set of hardware (or switches) that share a single point of failure. An example is a server rack serviced by a set of power or networking switches.
  • Two fault domains work together to mitigate against hardware failures, network outages, power interruptions, or software updates.

Availability zones

Reference resource

Info

Availability zones are a high-availability offering that protects your applications and data from datacenter failures. An availability zone in an Azure region is a combination of a fault domain and an update domain.

Characteristics of availability zones.

  • Availability zones are unique physical locations within an Azure region.
  • Each zone is made up of one or more datacenters that are equipped with independent power, cooling, and networking.
  • To ensure resiliency, there’s a minimum of three separate zones in all enabled regions.
  • The physical separation of availability zones within a region protects applications and data from datacenter failures.
  • Zone-redundant services replicate your applications and data across availability zones to protect against single-points-of-failure.

Horizontal and vertical scaling

Reference resource

When you think about scaling, that provide two method horizontal or vertical for expand, scale up and make a high availability for your service. But you need to consider when apply, and know about different between them

Info

Vertical scaling, also known as scale up and scale down, involves increasing or decreasing the virtual machine size in response to a workload. Vertical scaling makes a virtual machine more (scale up) or less (scale down) powerful.

Info

Horizontal scaling is used to adjust the number of virtual machines in your configuration to support the changing workload. When you implement horizontal scaling, there’s an increase (scale out) or decrease (scale in) in the number of virtual machine instances.

Virtual machine scale set

Reference resource

Info

Azure Virtual Machine Scale Sets are an Azure Compute resource that you can use to deploy and manage a set of identical virtual machines. When you implement Virtual Machine Scale Sets and configure all your virtual machines in the same way, you gain true autoscaling. Virtual Machine Scale Sets automatically increases the number of your virtual machine instances as application demand increases, and reduces the number of machine instances as demand decreases.

Characteristics of Azure Virtual Machine Scale Sets.

  • Same base operating system image and configuration
  • Support the use of Azure Load Balancer for basic layer-4 traffic distribution, and Azure Application Gateway for more advanced layer-7 traffic distribution and SSL termination.
  • Run multiple instances of your application, continue access when meet problems with minimal interruption
  • Implements autoscaling to automatically increase and decrease the number of virtual machines base on customer demand
  • Support up to 1,000 virtual machine instances. If you create and upload your own custom virtual machine images, the limit is 600 virtual machine instances.

With VMSS, you have option for automatically increase or decrease virtual machine in sets, It called autoscale. When you apply autoscale for your virtual machine scale set, you need to concern about

  • Automatic adjusted capacity
  • Scale out/in
  • Scheduled events
  • Overhead

You can follow this instruction to create and setup for yourself vmss

Question

Lab link: https://learn.microsoft.com/en-us/training/modules/configure-virtual-machine-availability/11-simulation-machine-scale

Which Virtual Machine Scale Sets feature can be configured to add more DevOps machines during peak production? Schedule-based rules

What types of scaling can you use to increase the CPU capacity for your existing Virtual Machine Scale Sets instances? Vertical scaling