markrubens - Fotolia
After moving to the Microsoft Azure public cloud, admins and developers 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.
Follow along with this Azure instance comparison to learn 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:
Organizations have a tremendous need for general-purpose computing VMs, whether it's for web servers, database instances or a range of other kinds of application deployments. General-purpose VMs aren't as optimized for specific needs, but users can opt for instances with various virtual CPU (vCPU), memory and storage options for a wide range of workload use cases.
Some compute-intensive workloads require more processor capability relative to the amount of memory available. This is commonplace in machine learning and analytics applications, along with heavy-traffic web servers or network-centric workloads. When the emphasis is on processing, users will often opt for VMs that are built with a higher processor-to-memory ratio. Azure provides several classes of compute-optimized VMs to choose from.
Some workloads place a greater premium on memory over processer capability. Such workloads may require substantial content caching, support for relational databases, in-memory analytics and so on. When a high memory-to-processor ratio is a workload requirement, users can employ a variety of memory-optimized VMs.
Big data projects, as well as SQL and NoSQL database deployments, can be storage intensive. Workloads with high disk throughput or I/O requirements will benefit from VMs optimized for storage activity.
Graphics tasks can be extremely demanding on CPUs, and graphics processing units offload much of the processing work related to the math and rendering. GPUs are increasingly employed in visualization workloads, heavy analytics workloads and gaming or graphics workloads.
High-performance compute VMs
HPC workloads place enormous demands on processor and memory bandwidth, and there are several Azure M-series instance types tailored to handle HPC workloads such as fluid dynamics, finite element analysis and weather modeling. The emphasis is not so much on the quantity of resources, but rather the selection and architecture of those resources for HPC needs.
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. What do you need to run your application, in terms of processor cores, memory, disk storage, disk I/O and network bandwidth? To answer these questions, evaluate the application in its local environment and monitor performance to detect possible bottlenecks.
Next, conduct your Azure instance comparison and select an Azure instance that meets -- and slightly exceeds -- your 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 different?
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, as well as verify that key metrics are acceptable. If not, try the workload in another instance type.
Guidelines to run a Windows VM on Azure
Azure instance types such as the Da v4-series or D v3-series provide good performance at a reasonable cost for most enterprise workloads. Low-priority workloads, such as test and development environments, can run on less expensive instances, like the A-series or B-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 for HPC or N-series with GPUs, 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; 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. Production 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. However, it's important to note that some instance types may not be available in all regions everywhere. In addition, some instances are promotional and may only be available for a limited time, such as H-series Promo instances for HPC. It is always good practice to review the catalog of available instance types for the most up-to-date availability and pricing.
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.
Latest Azure updates address latency, throughput
Using Azure Site Recovery for cloud backup and DR
Microsoft delays the Azure Stack launch