This CSC blog post is the second of three entries about using Microsoft cloud for your IT infrastructure. (You can find the first one here.) This series covers storage platform, networking and compute aspects of the cloud platform.
In this article we are talking about Azure Compute resources and, more specifically, about Infrastructure as a Service offering for Azure Virtual Machines. The reason why I emphasize this is that there are more types of compute resources in Microsoft Azure platform (such as cloud services, containers, etc.) and those won’t be covered here.
When choosing your Virtual Machine type, you need to determine, what is the primary purpose this machine will serve? There are 5 different categories of Virtual Machines available on the platform, those can be split in two major groups: the General purpose and the Compute, Memory, GPU, High performance machines.
Let’s start with the General Purpose Virtual Machine type. Microsoft markets these Virtual Machines as CPU and memory ratio balanced. This category has two major versions: Basic and Standard.
Basic Virtual Machines cannot be configured for high availability and have higher limits on things like IOPS per disk or number of disks that can be attached to Virtual Machine. This type of compute is best suited for platform testing purposes.
For production environments, Standard option should be the way to go. Basic option is available only for A series machines. Other configurations in this category are the D series. These differ for their current version, which can be v1 or v2. The difference between those are the CPU generations that are used physical hardware
The compute optimized Virtual Machine type has higher CPU to memory ratio. These machines contain only the F series, which are based on the Haswell processor series. The opposite of for the latter type are the memory optimized machines. As you might already have guessed, these have better memory to CPU ratio. These come in two versions as well, v1 and v2, with v2 running on newer CPU builds.
Then there are the compute-optimized variants for GPU computing. These are interesting in a sense, because you most probably would use them for running large scale parallel compute tasks or workloads with high graphic requirements. In Microsoft Azure platform, these machines run on NVIDIA GPU cards and use RDMA functionality.
Currently, the Azure N Series Virtual Machines are only in preview (beta) mode, so it is not recommended to use them in production environments, as well as the pricing of these services is not finalized yet.
Quick reminder from Wikipedia about RDMA, which stands for “remote direct memory access” and is used a direct memory access from the memory of one computer into one of another without involving either one’s operating system. This permits high-throughput, low-latency networking, which is especially useful in massively parallel computer clusters. That said, you have same RDMA possibilities for High performance computing Virtual Machine category. So, if your focus is on parallel processing, you should opt for these.
You have the possibility to configure Azure Virtual Machines with different options. First would be the high availability scenarios. In order to exercise this option, you need to implement Virtual Machine availability sets.
If you need to have SLA on Virtual Machines that are running in Azure – you will need to put them in availability set.
Availability set basically spreads your Virtual Machines into different server racks. This way Microsoft can assure, that the server rack, where your Virtual Machine is hosted, won’t be updated simultaneously with the second Virtual Machine in the same availability set, and both of your Virtual Machines will be running on separate hardware set. This way you will have a fault tolerant configuration and you will get SLA of 99,95%. Keep in mind that your workload which is running in Virtual Machine has to support High availability or load balancing.
We need to remember that all the software that is running on Virtual Machine needs to be licensed. That includes operating systems and workloads running on Azure Virtual Machines.
When you create a Virtual Machine in Azure platform, you can choose to build it from a pre-installed image. While choosing your image you can check whether it includes additional licenses that are needed. This way you no longer need to worry about purchasing you license separately. The same applies for some workloads as well (for example, Microsoft SQL), if you chose to build your Virtual Machine based on Microsoft SQL image, this would increase your Virtual Machine’s price and you wouldn’t need to worry neither about the operating system license nor the SQL server. Having that said – there is an option to bring your own license. This can be done either by selecting image with BYOL option, or you can create Virtual Machine from your own uploaded image.
This covers the basic considerations on Microsoft Azure Compute for Virtual Machines. Thanks for reading and keep your eye on for the final article in this series.
Laurynas Dovydaitis works as a professional Solution Architect at CSC and helps clients implement complex IT infrastructure solutions. For the last three years he has been focusing deeply on the next generation computing including Cloud and Data Analysis fields and he holds more than a decade of IT-field experience. His passion in the field is recognized by the industry as he is awarded as a Microsoft Most Valuable Professional. Connect with him on LinkedIn.