It is very easy, during or after a migration to just accept the Azure bill that arrives on your desk every month and many people do just that.
Moving to a consumption based model in the cloud introduces a set of tasks for IT Operations Teams and IT Service Providers. In order to achieve maximum efficiency in Azure (or any cloud platform with variable consumption costs), the environment needs to be continuously evaluated for optimisation opportunities. Virtual Machines tend to be the most expensive elements of a Azure deployment so that often gets most attention when it comes to optimisation discussions.
Here is a quick check list of some of the ways costs can be optimised in Azure.
- Virtual Machine Sizing - Demands over time change, its common for Virtual Machines to be over-specified for the requirement. You can use native tools to evaluate how hard a VM is being worked to assess whether you can move to a smaller (and cheaper machine size SKU).
- Shut Down Virtual Machines that are not in use - You don't pay for deallocated machines that are not consuming any compute resources. This capability can be automated too (we use a tool called Nerdio Manager), in Azure Virtual Desktop installations, where there is little to no usage overnight, we turn these machines off and most clients save between 50% - 60% on their compute costs. But there are plenty of other scenarios where this scenario would be applicable.
- Make use of Spot VM's - Previously referred to as Low Priority VM's, Azure Spot VM's allow you to purchase virtual machines from a pool of spare capacity at a much lower price, up to 90% in some circumstances. Now this comes with the caveat that, these resources can be taken away at a moments noticed if the demand for capacity increases; so its not advisable to use Spot VM's for production workloads, but its potentially a good option for Non-prod/dev based workloads.
- Reserved Instances - For steady state workloads, it makes sense to take advantage of reserved instances, where you essentially commit to using a certain amount of compute (or storage) with Microsoft for a period of a year or 3 years and in return, you receive a discount which could calculate to be significant. Plus you're not as locked in as you might think you are, you can read more information on an earlier blog we wrote here
- Scale & Burst - Several ways of achieving this, you could take advantage of B-Series VM's which are designed to burst (ideal for web applications with fluctuating demand for example). You can also use tools to create scale out rules that builds new hosts based upon demand, this is a common occurrence in the Azure Virtual Desktop environments we manage where sometimes there are 10 users on the platform and at other times there are 100 (You can see how we do this in another blog post here). You can optimise for need in a more "just in time" strategy instead of providing for a maximum number of possible users "just in case".
- Be aware of new series SKU's - Microsoft will announce new machine series SKU's from time to time. This could be a completely new machine spec, or the latest and greatest version. What tends to go on in the background is that Microsoft are upgrading the hardware at the backend. There are occasionally introductory promotional offers for moving to a certain SKU, and as machines get older, it begins to be in Microsoft's interest to incentivise users to move from older generation machines to new generation machines which can at times be reflected in the cost of running the machine. Microsoft have a lot of real estate, but its not infinite so they want to retire older generations when they can, and why wouldn't you want to be running on newer / faster hardware?
Microsoft will make recommendations on some of these optimisation points within the Advisor, but it needs a regular eyes on review and crucially action to stay on top of it.