Microsoft Azure Optimisation The Best Tips & Tricks
Boost Performance & Save Costs!
Analysis of existing structure and spend
The first process in identifying any cost savings is to first find where the majority of the spend within the Azure subscription is going. There are a number of ways to do this depending on how your subscription is setup.
- Pay as you go – Using the out of the box tools you can export the existing usage into Excel. Azure has a new billing tab which can give a breakdown of your existing usage.
- CSP – The company that is reselling your Azure subscription can provide a breakdown of the costs in a CSV format.
- Enterprise Agreement – EA subscribers have the ability to connect directly to PowerBI using the “Microsoft Azure Enterprise content pack”. More details here https://powerbi.microsoft.com/en-us/documentation/powerbi-content-pack-azure-enterprise/.
Once you’ve got the information it’s best to take a snapshot of the last full month or an average of the last 3 months. Breaking this down into the core Azure Type i.e. Virtual Machine, SQL Server, App Service, etc. A simple pie chart can illustrate the monthly spend as below (this can be automated in a monthly report in Excel or PowerBI which helps with management going forward).
This simple overview clearly identifies where the biggest spend is within your subscription and where the biggest cost savings can be achieved from the Azure Optimisation process. Once we have that the next parts of this blog can give some tips and tricks on identifying cost savings.
Paying for Azure
Azure Optimisation involves looking at all parts of the Azure environment including how the subscriptions are currently being paid for.
The worst method to pay for Azure is directly through a Pay-As-You-Go subscription depending on how much you’re currently spending there are two much better methods for this.
- CSP – You can purchase an Azure subscription directly through a CSP Provider such as Valto and realise 3-10% cost savings on your existing spend.
- EA – If you’re spending a considerable amount through Microsoft including all of your licensing an EA can help you save up to 30% cost saving for some services.
Virtual Machine Sizing
Virtual Machines within Azure should be optimised so they are only running with the resources they require. For example, a machine running with 4 Cores and 14GB RAM that is showing only 25% utilisation on CPU and RAM indicates that the machine has 75% of the resources not being utilised. It’s important that when analysing the environment, we’re checking the following,
- Average Run Time
- Peak Run Time
Using the built-in reporting from Azure we can pull off different measures for example CPU usage can be found below,
The indication above shows the average utilisation is around 4-5% with a peak up to 65%. Further analysis should be identified why there was a peak and if this is likely to reoccur.
Another example can be found below. This example indicates that only 4-5% of the CPU is being utilised and is a good candidate to lessen the machine size. Of course, we need to check other factors including Memory Utilisation, Disk Usage, etc. and if all of the indications are similar to the above the machine size can be lowered to another size. We’re looking for machines that have anything from 1% to 35% peak usage as this means lowering the size of the machine by half would effectively double the usage from 30% to 60% as an example.
There can be huge cost savings optimising the usage of the VMs given that the architecture and way money is spent is vastly different from traditional infrastructure (where resources can often be over allocated with no impact).
SQL environments should be checked as the core licensing means you’ll often make a double saving on compute and ongoing licenses costs by reducing the sizes. The memory for SQL servers is often programmed to consume everything it has available to it so more detailed analysis and checks need to be made on this benchmark.
Once an optimised machine size has been identified the change should be implemented and tested over a period of time to ensure that no impact has been made.
Azure SQL Optimisation
If you’re making use of Azure SQL within your environment (not to be confused with SQL running on VMs) and not making use of Elastic Pools often a cost saving can be made here. With Azure SQL, each Database is given its own server environment which for small/low usage environment is often overkill. An elastic pool can best be described as a shared database server in which you can move all of your databases onto it and share all of the resources (CPU, Memory, etc.) available to it.
Changing over to Elastic Pools can be a relatively simple process Azure Advisor can assist with this and more details can be found here,
App Service Consolidation
As with the above App Service Plans allow you to create a shared server for all of your web applications and split the resources across them. If you’re taking advantage of Azure App Service, ensure you’re combining them where you can especially for the lower utilised web apps.
Azure Hybrid Use
Azure Hybrid Use allows you to utilise your existing Software Assurance licenses when you transition into Azure to save double paying for the Windows Server licenses which are included in the cost of Azure by default.
This is an interesting option if you’re planning on moving to Azure in the middle of an existing agreement with the potential to save around 40% and only pay for the compute costs.
Auto Scaling & Powering Down
If you’re using Azure VM Scale Sets, App Services or Cloud Services these are all able to automatically scale the compute available on pre-defined or automatic rules. This means if you’re environment isn’t required during quiet periods such as the middle of the night it can automatically deallocate the available resources or even completely turn the environment off.
For environments, such as large Remote Desktop Services or VDI type environments cost savings can be realised by deploying the environment in a way that will scale up and down easily. For example, having many Remote Desktop Session Hosts that can be powered off during low usage periods such as out of work hours or even having them automatically power on during a busy period such as month end.
Azure’s pay as you go type billing really means we should really analyse the usage of the environments and use them in a much smarter way, an on-premise environment often can afford waste given they are invested in once and should have plenty of resources available that won’t incur any additional costs.
With Azure when deploying the environment these factors such as busy times, peak periods should all be factored in and auto scaling/shutdowns be implemented to ensure money is not being wasted.
Announced earlier this week Azure Advisor is now generally available. Advisor analyses your resource configuration and usage, and then recommends solutions that can help you improve high availability, security, performance, and cost-effectiveness of your Azure resources. To start using it all you need to do is click the following icon and run it on each of your subscriptions.
More details can be found here,
Valto can help with your Azure Optimisation
Save up to 75% of your existing costs with our Azure Optimisation Report
If you’re starting your Azure journey and would like to ensure your building the environment with the best practices in mind we can help architect your environment and ensure the costs will be predictable and sustainable.
If you’re already utilising Azure and want to get your existing costs under control we can provide an Azure Optimisation workshop and report with recommendations. We can help you save thousands of pounds off your annual azure subscription.