Moving IT infrastructure to the cloud can give you the impression that you won’t have to concern yourself with the underlying hardware ever again. However, the virtual machines you use and pay for in the cloud, do run on hardware. Cloud providers do upgrade their Cloud hardware in order to provide up-to-date services. Unfortunately, a cloud provider does not automatically move your virtual machine onto the newer hardware for you. You need to invoke such a migration yourself, which is definitely worth investigating.
Virtual machine SKU’s are versioned
If you take a closer look at the product list name (the SKU, Stock Keeping Unit) of a virtual machine, you will notice a version number has been incorporated. Take for example the “D8ds v5” in this screenshot of the Microsoft Azure Pricing Calculator.
If you look up more detailed information on the Ddsv5, you’ll find these technical details:
The Ddsv5-Type1 is a Dedicated Host SKU utilizing the Intel® Ice Lake (Xeon® Platinum 8370C) processor. It offers 64 physical cores, 119 vCPUs, and 768 GiB of RAM.
In other words, the virtual machine SKU is directly related to the underlying hardware.
Microsoft explains in their Azure Dedicated Host SKU Retirement Migration Guide: “As hardware ages, it must be retired and workloads must be migrated to newer, faster, and more efficient Azure Dedicated Host SKUs. A migration entails downtime, as it involves stopping the old and starting the new virtual machine.”
As an incentive to upgrade, Microsoft may charge less for newer SKU’s with faster CPU’s.
Are your virtual machines current?
Knowing that the days of your virtual machines are numbered, you probably wonder which instances in your subscription are not running on the latest hardware - or perhaps even deprecated.
To figure this out, first, you need to list all virtual machines active in your subscription along with their SKU.
Next, cross-reference this listing with currently offered virtual machines to identify instances that have a newer version available. I’ve created a PowerShell script that extracts the currently available virtual machine SKU’s and their pricing from Microsoft for a specific region. The script displays the information in csv format so you can easily process this, e.g. in your favourite spreadsheet application.
Information on retiring SKU’s can be found by searching the internet for
azure vm end of life. Or consider subscribing to Microsoft Azure Deprecation Notices - a third party service that keeps track of End Of Life Azure Resources in general.
If you’re deploying your Infrastructure-as-Code as Sentia does, a SKU upgrade technically involves changing one line of text and restarting the virtual machine. However:
- New hardware could involve changed CPU architecture or instruction set which could impact applications. In practice, we experienced this with the application RabbitMQ running on a v4 SKU but not on a newer v5. We then had to start an investigation with the RabbitMQ developers.
- New hardware may not be available yet in your region, as Microsoft further expands their data centers. This could result in the error message ‘out of resources’ instead of a deployment.
- When choosing a new SKU, always go with SSD instead of HDD as you get a faster disk for the same price, eg. choose D4ds_v5 instead of D4d_v5.
- We’ve experienced performance and connectivity issues we cannot resolve in some cases and have decided to roll back the SKU upgrade in these cases. We’ll update this article to match the outcome of this investigation.
Sentia can help you determine when and how to migrate
As a Managed Service Provider for Public Cloud, Sentia provides Life Cycle Management to its customers. For quick and robust support, we deliver and manage cloud based Infrastructure as Code (IaC). Because of this, the technical part of the SKU upgrade as described above is easily achieved by adjusting one line of code. The whole process is more involved because of the caveats.
If you’d like to learn which SKU versions are active in your subscription and when and how to migrate, feel free to get in touch.