Virtual machines look simple in the public cloud space but when do you look at it from the datacenter perspective, you feel the heat. VM is not only a set of resources or a platform with operating system to run your application, runtime or database. It is a baseline that defines the purpose of its existence itself based on the resources used in it. VM configuration is vendor agnostic and totally depends on how do you design it with certain set of components such as processor, memory, storage and networking. Apart from these basic components, there are some specific set of design considerations such as high availability that needs to be taken into the account while planning for any infrastructure based solution. In public cloud, the VM configuration can be determined by VMs size and VMs family type.
Let me take you through the VM design considerations applicable to public cloud. However, these best practices can also be leveraged in private cloud or virtualization stack in the on-premises datacenter.
Storage: How much, where, and in what configuration.
Disk: Sizing, persistence and caching.
Compute: Capacity required.
Availability: Uptime requirements, geo-distribution, service level agreements, and accessibility.
Cost: Azure services, such as storage and compute.
Here is the list of VM sizes and respective description:
|General purpose||B, Dsv3, Dv3, DSv2, Dv2, DS, D, Av2, A0-7||Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.|
|Compute optimized||Fsv2, Fs, F||High CPU-to-memory ratio. Good for medium traffic web servers, network appliances, batch processes, and application servers.|
|Memory optimized||Esv3, Ev3, M, GS, G, DSv2, DS, Dv2, D||High memory-to-CPU ratio. Great for relational database servers, medium to large caches, and in-memory analytics.|
|Storage optimized||Ls||High disk throughput and IO. Ideal for Big Data, SQL, and NoSQL databases.|
|GPU||NV, NC, NCv2, NCv3, ND||Specialized virtual machines targeted for heavy graphic rendering and video editing, as well as model training and inferencing (ND) with deep learning. Available with single or multiple GPUs.|
|High performance compute||H, A8-11||Our fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).|
While best practices and VMs size should be considered effectively, at the same time you need to find suitable and not suitable workloads for Microsoft Azure VMs.
There are certain types of workloads that are a better fit for hosting in an Azure IaaS environment than others. Here are some examples:
- Highly available service workloads such as commercial online stores.
- Unpredictable growth workloads like those experienced by small, but rapidly expanding organizations, or short-term increased sales of fad items.
- Spiking workloads, such as those experienced by sites providing news services.
- Steady workload scenarios where organizations simply want to offload their infrastructure to the cloud.
- Periodic workloads such as retail sales spurts during holidays.
Not Suitable workloads
When planning virtual machine workloads for Azure IaaS, it is also important to remember that not every application or service is a suitable fit for the cloud. Here are some examples.
- Low volume or limited growth workloads where the organization might be able to run the service or application on commodity hardware on-premise less expensively than in the cloud.
- Regulated environment workloads where an organization, or even the local government, may regulate the type of data that can be hosted in the cloud. However, these cases might be suitable candidates for a hybrid solution where only some highly available data is hosted in Azure and the more sensitive, regulated data is kept on-premises.
Notice that although Azure virtual machines are based on Windows Server Hyper-V not all Hyper-V features are supported. For example, Multipath I/O and Network Load Balancing are not currently supported. Also, certain Azure virtual machine offerings may include additional Microsoft software on a per-hour or evaluation basis. Licenses for other software must be obtained separately.