Reading #3 – Microsoft Azure – Configuring Virtual Machines

IP Addressing

Public IP addresses: Used for communication with the Internet, including Azure public-facing services, like SQL Services. You can associate public IP addresses with virtual machines, internet facing load balancers, VPN gateways, and application gateways.

Private IP addresses: Used for communication within an Azure virtual network (VNet), and your on-premises network when you use a VPN gateway or ExpressRoute circuit to extend your network to Azure. You can associate private IP addresses with virtual machines, internal load balancers, and application gateways.

There are two IP allocation methods in Azure:
Dynamic
Default method for both private and public IP
Address is allocated when resource is created
Address is released when resource is stopped
IP address can change if the resource is stopped and started.

Static
IP address does not change
Public IP addresses are not released until the IP address type is changed to Dynamic or the resource is deleted
You cannot determine a public IP address in advance
For a private IP address, you need to specify a valid IP address that is part of virtual machine’s subnet

Availability Sets

An availability set helps Azure maintain high availability and fault tolerance when deploying and upgrading applications.
Best practices when creating Availability sets

  • For redundancy, configure multiple virtual machines in an Availability Set.
  • Configure each application tier into separate Availability Sets.
  • Combine a Load Balancer with Availability Sets.

Manage the availability of Windows virtual machines in Azure
Manage the availability of Linux virtual machines
SLA for Virtual Machines is in place for availability sets.

Update and Fault Domains
Update Domains and Fault Domains helps Azure maintain high availability and fault tolerance when deploying and upgrading applications.
Azure concepts – Update Domain vs Fault Domain in Availability Sets – simply explained

Scale Sets

Virtual machine scale sets are an Azure Compute resource you can use to deploy and manage a set of identical VMs. With all VMs configured the same, VM scale sets are designed to support true auto-scale – no pre-provisioning of VMs is required – and as such makes it easier to build large-scale services targeting big compute, big data, and containerized workloads.

Scale Sets are often integrated with Azure Insight, Load Balancer and NAT rules. Azure Insight is used to measure when to scale up or scale down. The Load Balance and NAT rules work together to spread the workload over the available machines as they are added.

General guidance

  • A scale set supports up to 1,000 VMs. See Working with large virtual machine scale sets
  • These scale sets are automatically created with load balancer NAT rules to enable SSH or RDP connections.
  • Consider using Azure Premium Storage instead of Azure Storage for faster, more predictable VM provisioning times and improved I/O performance.
  • You can set the maximum, minimum and default number of VMs, and define triggers – action rules based on resource consumption.
  • When you increase the number of virtual machines in a scale set, VMs are balanced across update and fault domains to ensure, maximum availability. Similarly, when you scale in, VMs are removed with maximum availability in mind.

Azure Resource Explorer

Azure Resource Explorer is a great tool to view and modify resources about the virtual machines in a scale set. The tool is web-based and uses your Azure portal logon credentials. The source for the Resource Explorer tool is available on GitHub.

Additional reading
Azure virtual network
Load Balancers
VPN Gateways
Application gateways
Virtual Machine Scale Sets