The Azure Well-Architected Framework is a set of guidelines spanning five key pillars that can be used to optimise your workloads. In the previous blog we covered Reliability and Security alongside relevant services, processes and assessments. This time we will focus on the Cost Optimisation pillar of the framework.
Overview of Cost Optimisation
The cost model for running cloud services and solutions is very different to traditional IT hardware and datacentres. The development of cloud services and solutions such as Microsoft Azure has delivered numerous new technologies that can provide exceptional value and performance for your workloads. However, due to a lack of understanding around the available products it’s easy to overengineer or design a workload incorrectly resulting in missed business goals and ultimately overspend.
Similar to the previous security pillar, Cost Optimisation must be thought about throughout the lifecycle of a workload, including design and architecture phases, but especially once the workload is running. A Well-Architected workload viewed through the lens of Cost Optimisation is a workload that balances business goals with budget justification resulting in something that is truly cost-effective. Cost optimization is about looking at ways to reduce unnecessary expenses and improve operational efficiencies.
Specific to Cost Optimisation, at a high-level you should be thinking about the following areas and processes:
- Understand Cost Requirements and Business Goals
- Estimate initial costs using Azure Pricing Calculator
- Monitor cost using Azure Cost Management
- Alert and notify based on spend using Budgets and Alerts
- Optimise costs using Cost Savings Recommendation and Actions
- Design using cost effective services such as PaaS or SaaS
- Implement Cost governance to provide Visibility and Accountability
Cost Optimisation Principals
When designing for Cost Optimisation in Azure, there are a set of principals covered in the Framework that you must think about, those principles include:
- Choose the correct resources when designing or architecting a workload. The resources must allow the workload to meet business goals without increasing costs. Using PaaS or SaaS services over IaaS doesn’t just provide consumption cost optimisations but by design also reduce management overhead which reduces expense from other area within the business.
- Setup budgets and alerts to monitor against cost constraints and be alerted when overspend is predicted to ensure overspend is unlikely.
- Dynamically reconfigure, consolidate or shutdown resources to optimise spend by ensuring you are only providing the compute resources when required. Why pay for a service that is only required during business hours.
- Optimise workloads with cost savings in mind by monitoring metrics and performance to determine correct number of instances and sizing. Scale out workloads when demand requires, scaling out rather than up allows you to make more granular cost calculations and predictions.
- Continuously monitor and optimise cost management by conducting regular cost reviews alongside forecasting of capacity needs.
Cost Savings Recommendations & Tips
Microsoft provides numerous ways in which can save or optimise your costs for workloads running in Azure, some of the best tips or recommendations are as follows:
- Reserved Instances – A reserved instance is a reservation on an Azure service for usually a one- or three-year term. By committing yourself to the term you can realise cost savings upwards of up to 72%. Reserved Instances can be used for VMs, Storage, SQL Databases, Cosmos DB, Synapse and more.
- Automation – As mentioned previously in the post. If you have workloads for example payroll systems that are not required outside of working hours then you will huge cost savings by automating the shutdown and start-up of those workloads. If you’re not using it, you shouldn’t be paying for it.
- Resource Tagging – Tags are a hugely powerful tool in Azure, no more so than when used for cost optimisation. You can monitor and alert of the spending of departments, apps or locations but only if you provide this information to Azure. Use tags where possible to identify different services and workloads, you will then be able to filter using the tags when using Cost Management. Extra tip here, use Azure Policy for enforce tags going forward.
- Dev Test Subscriptions – Development or test workloads running in Azure can benefit from Enterprise Dev/Test offers which provides lower rates for cloud services alongside access to Dev/Test images.
- Azure Advisor – Azure Advisor helps you optimize and reduce your overall Azure spend by identifying idle and underutilized resources. It can provide recommendations based on utilisation, resizing, Reserved instances and more.
Review your workloads
We will continue to cover the remaining pillars throughout this series of blogs. As highlighted on previous posts, you can review your current posture against the five well-architected pillars. The tool is free and can be accessed here.
For a more in-depth Architecture Review or a specific Cost Optimisation Review feel free to reach out to the Transparity Team.