SMB Playbook for IT spend reduction on Azure — Part 2
This is the second in a 3-part series on Azure cost reduction opportunities for SMBs. As I mentioned in my previous post, over the last few months, there have been several events (including geopolitical) which have created a rise in costs for SMBs. This series explains the different aspects and resources available when considering cost reduction on Azure.
This blogpost specifically will focus on a pre-existing cloud environment and levers which can be pulled to help optimise workloads and reduce costs.
Quick start options
There are several quick start options available to help reduce costs and utilise the required amount of compute resource. Prior to addressing these, I would suggest looking at Azure Advisor for your environment.
Azure Advisor is a service which helps reduce overall spend by identifying opportunities for optimisation and underutilised resources. It can identify over 45 recommendations across different services, which have been detailed in this reference guide. In this section, I will cover some of these recommendations . Where relevant, hyperlinks to the Azure Advisor recommendation documentation will be provided.
Here’s also a quick start guide for Azure Advisor to help you get started.
Shutdown unused resources
Identify Azure Virtual Machines, ExpressRoute circuits, and other resources which aren’t being used and can be shut down to reduce costs. Azure Advisor provides a view on which services can be shutdown based on whether the resource has been used in the last 7 days (by default). Cloud services are typically charged on a pay per use model, this means immediate savings on unused resources. Documentation on the shutdown recommendations can be found here.
Resize underutilised resources and (where necessary) configure Azure VM Scale sets
Overprovisioning resources for potential spikes in usage can be handled in a much more cost friendly way on the cloud. What needs to be done is a combination of looking at resource requirements for normal usage, and then using autoscaling functionality to help deal with spikes.
Resizing and right-sizing
By resizing and ‘right-sizing’ virtual machines you are aligning the expected demand to the resources available and thus can help identify savings. If a cloud migration programme has occurred, ensure that This approach to capacity planning is different to working with an on-premise estate, but is an important lever to pull.
If the workload in question has a spikey usage pattern, where resource will be required for a period of time but will then remain at low utilisation, it might be worth considering autoscaling. Autoscaling refers to functionality in the cloud which allows for the dynamic increasing and decreasing of cloud resources based on demand. There is a getting started guide for autoscaling to help configure autoscaling for azure resources based on the Azure Monitor service.
Autoscaling an application is an architectural choice and must be considered with the same scrutiny as any design changes would be. Microsoft has a best practice guide for autoscale to help guide design decisions.
Review and reduce data egress
Outbound data transfer — a situation where data is leaving your cloud estate — is chargeable and can often be a key cost saving lever. Within Azure, inter-region data transfer can be chargeable, as well as egress out of Azure to other environments. The bandwidth pricing table explains the different costs associated for different scenarios.
If your enterprise estate is a multi-cloud architecture setup, consider whether any tactical decisions can be made to reduce the amount of data being passed across environments.
Data lifecycle management
Different datasets have different lifecycle requirements and expectations. Some datasets might be frequently accessed whilst others might not require the same frequently or SLA.
Moving less frequently accessed data from hot storage to cool storage could help you save significant cost. Azure storage has data lifecycle management functionality, allowing a data lifecycle to be created based on a set of rules and different storage levels. Configuring this automatically and optimisng data costs will help ensure data lifecycle cost savings are being realised.
Longer term options
Consider Dev/Test subscriptions for non-production workloads
Organisations often have multiple development and test environments to support the software development lifecycle (‘SDLC’). This can be a significant cost when added up and compared against total cloud costs.
Azure dev/test pricing can also significantly reduce the costs of on-going non-production workloads. Utilising this pricing could realise up to a 57% savings. If the development / test environments are contributing significantly to the overall estate costs, then speak to a Microsoft representative about how the Azure dev/test pricing might be able to help.
Evaluate compute services
Azure provides several ways of running application code. Different services offer different price points, presenting an opportunity to reduce costs. A flowchart has been built to help identify candidate services in Azure which could host applications in a cost-effective manner.
Reserved Instances and Reserved Capacity
If you have predictable workloads running on pay as you go (‘PAYG’) pricing, there is an opportunity to leverage reserved instance (‘RI’) pricing. This can help realise up to 80% savings on Windows virtual machines and up to 72% percentage savings on Linux virtual machines.
For databases, there is also the option of reserved capacity through committing to a fully managed Azure data service. This can realise savings of up to 80%, depending on the data service being used.
There are different payment options available for reservations.
Designing an application to use the cloud efficiently is different to running a similar application on-premise. There is added flexibility in matching and adjusting for infrastructure and data needs, which can lead to new potential savings. Microsoft has functionality and tooling available to help organisations ensure that resources are consumed as and when required (with different levels of granularity). It is important to review the enterprise estate (especially if a migration occurred without any right-sizing or optimisation) to ensure that resources are being consumed as deemed fit.
Tune in next week, where I will go through some key considerations for on-premise spend reduction and will conclude this series.