Hi everyone, it’s Bassel AGAIN 😊!
Microsoft Azure and other cloud solution in general made life easier for everyone in the industry, whatever you’re a Developer, an IT Pro or a Manager, there’s no denial that your daily tasks (developing, implementing and monitoring) have gotten easier through the cloud. Creating a VM on Azure will not take more than 10 mins of your time, and many pros now underestimate the value of planning before clicking that click, because “it’s just a click”, this is just a bad logic.
Things to consider before creating your VM:
– What is the purpose of your VM?
This is a very straight forward question, everything you create should have a purpose, is your VM is just for testing? Hosting a database? Hosting a web app? Not matter what, Azure will get you covered as Azure provides the following VMs families *.
– General purpose
Balanced CPU-to-memory ratio. Ideal for testing and development, small to medium databases, and low to medium traffic web servers.
– Compute optimized
High CPU-to-memory ratio. Good for medium traffic web servers, network appliances, batch processes, and application servers.
– Memory optimized
High memory-to-CPU ratio. Great for relational database servers, medium to large caches, and in-memory analytics.
– Storage optimized
High disk throughput and IO ideal for Big Data, SQL, NoSQL databases, data warehousing and large transactional databases.
– GPU
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
Our fastest and most powerful CPU virtual machines with optional high-throughput network interfaces (RDMA).
*: https://docs.microsoft.com/en-us/azure/virtual-machines/windows/sizes
Looking at the types above, you must know what your needs are and choose the suitable VM accordingly
– Nested virtualization and ACU
Do you need the ability to virtualize VMs inside your VM? If so, then you should know that not all VMs types give this privilege, currently (D_v3, Ds_v3, E_v3, Es_v3, F2s_v2 to F72s_v2, M) support the nested virtualization and that’s because of CPU, the mentioned VM types are 2:1 vCPU: Core other types are 1:1.
Also, it’s worth to mention the ACU or Azure Compute Unit which is a number per vCPU where you can compare the computing performance between the VMs families, for example A1 has 100 ACU per vCPU but D1 has 150 which is faster and have a better performance, of course the ACU is not exact or static but can give you a nice hint of how performance can vary between each VM family.
You can find a complete table of ACU in the link below:
https://docs.microsoft.com/en-us/azure/virtual-machines/windows/acu
– PRICE
You can’t always choose the most sophisticated VM due to budget limitation, and sometimes you have to compromise and choose the best VM you can get for the budget available, even if you have an open budget, calculating your VMs cost before deploying them is a very important step and can save you a lot of money, the best VM in resource terms might not be the best for you if you don’t use all extra resources, so AGAIN you have to know your needs and your budget to choose THE BEST VM for you.
In case you didn’t use it before, Azure Calculator is a great utility to estimate your cost for all Azure services.
https://azure.microsoft.com/en-us/pricing/calculator/
– Other Technical Specifications
There are many other specifications to consider other than (CPU, Memory and Storage size), such as:
maxDataDiskCount: How many data disk can be added to the VM.
Max NICs: How many NICs can be added to the VM.
Premium Storage supportability: If the chosen VM support premium storage or not.
IOPS: Input/Output Per Second on the disk.
And More….
– Why not just Resizing? (one might say)
Resizing is a great utility provided by the cloud, but it doesn’t replace the good planning, resizing a VM requires a reboot therefore a downtime, and if the hardware cluster where your VM is hosted doesn’t support the new size then you have to completely stop your VM (deallocate it), choose the new size and start again, even an availability set can’t help you as the whole set should be deallocated.
So, Resizing is great and easy, but it can’t take good Planning place.
At the end, I would like to quote Abraham Lincoln about the value of planning as he said:
“Give me six hours to chop down a tree and I will spend the first four sharpening the axe.”
Don’t forget to let me know about other planning factors you consider before creating your VMs. Also you can check my other articles below 🙂
Be First to Comment