Microsoft Azure Concepts – Virtual Machines

Virtualisation has been around for a number of years, with companies such as VMware being formed in 1998.  We are used to the abstraction of compute resources from the underlying hardware to provide logical isolation of virtual machines driving greater consolidation on providing a better return on investment.

Microsoft have taken the concept of a virtual machines and broken it down further to enable the consumption of Azure resources to be easier depending on the purpose of the virtual machine.  To explain this further lets delve into the three types of Azure Virtual Machines.

App Service

The purpose of the App Service is to allow the developer to create and manage websites and applications without needing to worry about managing and maintaining the underlying operating system.

Depending on the App Service Plan chosen, will entitle you to a number of features for your website which are:

  • Amount of disk space
  • SLA
  • Auto Scale
  • Geo Distributed Deployment
  • Custom Domain
  • Staging Environment

Most businesses would choose the Standard Tier as this provides an SLA of 99.95% along with Auto-Scale.  More information on the types of App Service plans can be found here.

Cloud Services

Azure Cloud Services are the middle ground between an App Service and a traditional virtual machines.

Cloud Service virtual machines provide two options which are:

  • Web Role which runs Windows Server and IIS
  • Work Role which runs Windows Server without IIS

When you create a Cloud Service you specify how many of each type you require and the underlying virtual machine, configuration and patching is performed by Microsoft.  You do however get the ability to RDP onto the virtual machine and install services.

It is important to note that Cloud Service virtual machines do not provide persistent storage, so this needs to be handled in the application architecture.  They do however support load balancing, and fault tolerance via in built availability sets.

Cloud Servies virtual machines use the same categories of pricing and specification as tradtional virtual machines which I will cover later in this blog post.

Virtual Machines

Azure Virtual Machines provide the most control.  You are responsbile for deployment, patching, load balancing and availability of the operating system and in-guest application.  Pretty much the same as when you run virtual machines on premises.

Each virtual machines comes with a persistent operating system disk and a non-peristent temporary drive which can be used to store data or perform storage related tasks whilst the VM is powered on.

The diagram below shows the complexity of management per Azure virtual machine type.

Azure VM Management v0.1

Great stuff, now we understand the types of virtual machines, what about virtual machines sizes, performance and capacity?

Virtual Machine Sizes

When a number of virtual machines are accessing the same underlying physical hardware, there has to be winners and loosers when resources become contended.  Depending on the type of virtual machine you purchase, will result in the performance characteristics available.

In Azure, Microsoft break down virtual machines into three categories which are A, D and G series.

A Series virtual machines are designed to run your standard everyday workload. They provide upto 500 IOPS per disk and can support up to the following specifications:

  • 56GB RAM
  • 8 CPU Cores
  • 4 NICs
  • 16 Data Disks at 500 IOPS each

Microsoft offer a subset of subset of the A Series called Compute Intensive which provide up to the following specifications:

  • 112GB RAM
  • 16 CPU Cores
  • 4 NICs
  • 16 Data Disks at 500 IOPS each

D Series virtual machines are designed to run more intensive workloads with the key difference being that the temporary disk is backed by SSD.  They provide upto 500 IOPS per disk and can support up to the following specifications:

  • 112GB RAM
  • 16 CPU Cores
  • 8 NICs
  • 32 Data Disks at 500 IOPS each
  • 800GB Temporary SSD

Microsoft offer the Dv2 Series virtual machine which provides a slightly better specification CPU.  The more interesting subset of the D Series is the DS.  This category provides shared SSD for the operating system disk.  Specifications are up to the follwing:

  • 112GB RAM
  • 16 CPU Cores
  • 8 NICs
  • 32 Data Disks at 224GB and 50,000 IOPS each with 512MB bandwidth

G Series virtual machines are massive and provide a huge amount of compute power, with specifications as follows:

  • 448GB RAM
  • 32 CPU Cores
  • 8 NICs
  • 64 Data Disks at 500 IOPS each
  • 6,144GB Temporary SSD

Again we have a subset of the D Series which is the DS Series.  This provides the same specification with shared storage the operating system disk.

The diagram below shows different virtual machines sizes.

Azure Virtual Machines Sizes v0.1

More information on Azure Virtual Machine sizes can be found here.


Final Thoughts

It is clear that Microsoft have given alot of thought to Azure Virtual Machines with different catergories catering for different levels of ownership and performance.  It is worthwhile reviewing the Azure Subscription Limits, Quotas and Constraints documentation to ensure that your virtual machines aren’t constrained by an unknown factor.

2 thoughts on “Microsoft Azure Concepts – Virtual Machines

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s