markrubens - Fotolia

Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Find the best Azure instance types for your workloads

When it comes to choosing the best Azure compute instance for your workload, the options can be overwhelming. Use these tips to get on the right track.

After moving to the Microsoft Azure public cloud, admins need to select from an array of instance types, and then cobble together a series of supporting services -- storage, scaling, caching, databases and more -- to optimize workload performance.

Here's an overview of Microsoft Azure cloud instances, as well as best practices for mapping your workloads to the appropriate instance type.

A breakdown of Azure instance types

Microsoft currently lists 80 unique Azure instance types from which users can select. The instances are grouped into the following categories:

  • A-series: General-purpose instances that provide consistent processor performance and modest amounts of memory and disk capacity. Some A-series instances are tailored to compute-intensive tasks with additional processor cores and more network bandwidth.
  • D-series: Provides more computing power and disk performance than the A-series, because of processor cores, more memory per core and solid-state drives (SSDs) for temporary storage.
To map the right Azure instance types to your workloads, start with knowledge of your native computing requirements.
  • Dv2-series: Features newer processors running in turbo mode that tout 35% more processing power than D-series instances using the same memory and disk configurations.
  • DS-series, DSv2-series, Fs-series and GS-series: Emphasize the role of high-performance storage, providing a mix of processor, memory and bandwidth characteristics all with the potential to use SSD storage for VM disks and caching for fast, low-latency I/O operation.
  • F-series: Provides the same processor cores as the Dv2-series, but at a lower per-hour operational cost.
  • G-series: Offers the highest memory capacity and runs on servers using Intel Xeon E5 V3 processors.
  • N-series: Adds the processing capabilities of graphics processing units (GPUs) to tackle the most demanding workloads.

Which Azure instance types should you use?

To map the right Azure instance types to your workloads, start with knowledge of your native computing requirements. How many processor cores, memory, disk storage, disk I/O and network bandwidth do you need to run the application? To answer these questions, evaluate the application in its local environment and monitor performance to detect possible bottlenecks.

Next, select an Azure instance that meets -- and slightly exceeds -- those estimated requirements. The instance type should also support any special requirements, such as GPU-enabled, compute-intensive or high bandwidth.

What makes Azure's compute-intensive instances unique?

Azure supports older A8, A9, A10 and A11 instances from the A-series, along with the entire H-series for compute-intensive tasks. Optimization typically starts with the cloud provider's servers, which are designed for high-end processor and network operations. For example, Azure's H-series provides eight and 16 core VMs using Intel Haswell E5-2667 v3 processors and fast DDR4 memory. Local storage is handled with SSD devices.

The advantages of compute-intensive instances are not limited to single iterations. Admins can deploy a group of Azure instances to create high-performance computing clusters for tasks like big data projects.

Mapping workloads to a cloud instance isn't always a 1:1 relationship. For example, an instance size limits the number of virtual disks available. So, if an application needs a larger number of virtual disks, admins might be forced to select a larger Azure instance. Use a tool like Azure Diagnostics to test and measure the application's performance within the instance, and verify that key metrics are acceptable. If not, try the workload in another instance.

Guidelines to run a Windows VM on Azure

Azure instance types, such as the DS-series or GS-series, provide good performance at a reasonable cost for most enterprise workloads. Low-priority workloads, such as test and development, can run on less expensive instances, like the A-series or D-series, but there is usually a compromise in performance. On the other hand, it's typically not worth the cost for high-performance instances, such as H-series or N-series, unless the workload will significantly benefit from the investment.

Start with an instance size -- including processor cores, memory, storage, disk I/O and network interface card (NIC) count -- that is a close match to local server instances. Collect performance metrics once the workload is migrated, and move the workload to a different instance size if needed. Remember each instance has limits for disk size, I/O and NIC count.

Even when you determine an appropriate instance size, one instance probably won't do the trick. A single instance is fine for temporary, low-priority test and development instances, but is not suited for production workloads. If the application, network or underlying hardware fails, the workload becomes unavailable. Workload deployments in Azure require multiple VMs arranged in an availability set, known as a cluster. Azure does not support a service-level agreement for single VMs.

When provisioning an instance, storage and other resources, provision those resources in an Azure region or location that is closest to the workload's users. This minimizes latency and improves performance.

Provisioning disk storage in Azure

When provisioning disk storage for latency-sensitive workloads, consider SSD options, as well as storage capacity and throughput. A single storage account can support up to 20 VMs, but I/O limits can impair performance when multiple VMs try to access storage at the same time. Group disks and apply striping to the group to boost capacity and IOPS for more demanding applications.

Azure instances can scale both vertically and horizontally. Vertical scaling means changing the VM size, usually to a larger one. This is best when a workload needs more resources. Horizontal scaling means adding instances to a cluster. This is helpful when single instances won't provide the needed compute power or handle the traffic, or when more availability and resilience is needed.

When possible, provision and manage resources together. Use Azure resource groups to simplify and organize billing, and then monitor and manage those resources as a collected set. Take advantage of Azure diagnostics, such as basic health metrics, boot diagnostics and infrastructure diagnostic logs. Logging and diagnostics can be vital to troubleshoot workload problems and improve deployments.

Next Steps

Latest Azure updates address latency, throughput

Using Azure Site Recovery for cloud backup and DR

Microsoft delays the Azure Stack launch

Dig Deeper on Managing cloud infrastructure

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

Which Azure instances do you use and why?