An Azure virtual machine gives you the flexibility of virtualization without having to buy and maintain the physical hardware that runs it. However, you still need to maintain the VM by performing tasks, such as configuring, patching, and installing the software that runs on it. What you should consider before you create a VM, how you create it, and how you manage it.
Azure virtual machines can be used in various ways. Some examples are:
- Development and test?– Azure VMs offer a quick and easy way to create a computer with specific configurations required to code and test an application.
- Applications in the cloud?– Because demand for your application can fluctuate, it might make economic sense to run it on a VM in Azure. You pay for extra VMs when you need them and shut them down when you don’t.
- Extended datacenter?– Virtual machines in an Azure virtual network can easily be connected to your organization’s network.
There are always a multitude of design considerations when you build out an application infrastructure in Azure. These aspects of a VM are important to think about before you start:
- Availability: Azure supports a single instance virtual machine Service Level Agreement of 99.9% provided you deploy the VM with premium storage for all disks.
- VM size: The size of the VM that you use is determined by the workload that you want to run. The size that you choose then determines factors such as processing power, memory, and storage capacity.
- VM limits: Your subscription has default quota limits in place that could impact the deployment of many VMs for your project. The current limit on a per subscription basis is 20 VMs per region. Limits can be raised by filing a?support ticket requesting an increase.
- VM image: You can either use your own image, or you can use one of the images in the Azure Marketplace. You can get a list of images in the marketplace by using the?az vm image list?command. See?list popular images?for more information on using the command.
- VM disks: There are two components that make up this area. The type of disks which determines the performance level and the storage account type that contains the disks. Azure provides two types of disks:
- Standard disks: Backed by HDDs, and delivers cost-effective storage while still being performant. Standard disks are ideal for a cost effective dev and test workload.
- Premium disks: Backed by SSD-based, high-performance, low-latency disk. Perfect for VMs running production workload.
- And, there are two options for the disk storage:
- Managed disks: Managed disks are the newer and recommended disk storage model and they are managed by Azure. You specify the size of the disk, which can be up to 4 terabytes (TB), and Azure creates and manages both the disk and the storage. You don't have to worry about storage account limits, which makes managed disks easier to scale out than unmanaged discs.
- Unmanaged disks: With unmanaged disks, you’re responsible for the storage accounts that hold the virtual hard disks (VHDs) that correspond to your VM disks. You pay the storage account rates for the amount of space you use. A single storage account has a fixed-rate limit of 20,000 input/output (I/O) operations per second. This means that a storage account is capable of supporting 40 standard VHDs at full utilization. If you need to scale out with more disks, then you'll need more storage accounts, which can get complicated.
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.
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.