This is the third article in our series on Azure Cost Optimization. In Part 1, we looked at the basics of Azure cost optimization. In Part 2, we described Azure cost optimization best practices. In Part 3, we outline an optimization process businesses can follow to take control of cloud infrastructure spending.
When businesses first use Azure, they rarely invest in building out cost optimization policies and processes. But, without repeatable processes and policies that follow cost optimization best practices, infrastructure spending quickly grows.
Microsoft Azure provides many tools to help with cost optimization, but businesses have to commit to using them.
In this article, we outline a cost optimization model that businesses can adopt. We discuss why each stage is important and some of the tools Azure provides to facilitate implementation.
Conduct an Azure Infrastructure Assessment
The first stage in the cost optimization process is to understand how your business uses Azure today. The infrastructure assessment should answer questions such as:
- Which Azure infrastructure services have we deployed? This includes all virtual machines, containers, managed services, and storage services.
- How is that infrastructure being used?
- Who in the organization can deploy infrastructure, and what are they using it for?
Much of this information is available in Azure Resource Manager (ARM), which will show the Azure resources you have deployed at the moment. For more detailed information on resource use over time, Azure provides comprehensive activity logs. You can access activity logs via the Azure Portal by choosing Monitor in the sidebar.
Azure provides useful Cost Analysis tools in the Azure Portal under Cost Management+Billing > Cost Management > Cost Analysis. This tool creates insightful visualizations and tables that break spending down by numerous criteria. Each subscription also provides cost analysis data under the “Cost analysis” menu, including accumulated costs, daily costs, cost by service and resource, and spending forecasts.
The goal is to build a thorough understanding of how your organization uses Azure, the Azure resources it deploys, and the specific types and tiers of those resources.
Assess The Resource Needs of Your Business
Optimization depends on knowing two pieces of information: (i) the Azure resources the business needs to achieve its operational goals and (ii) the resources it is actually using. Optimization is the process of bringing real-world resource use closer to the business’s requirements.
To understand the resource needs of your business, discover which apps it hosts and their compute and data storage needs, the infrastructure requirements of business departments and teams, and which additional services are essential to achieving operational goals.
You should aim to answer these questions:
- Which business applications are hosted on Azure?
- What compute and storage resources should our applications consume, and how much should we expect that to cost?
- What resources do developers, system administrators, and DevOps need to achieve their operational goals?
Useful tools in this phase include Azure Pricing Calculator. It is challenging to create a precise estimate of resource needs, but you should be able to generate at least a ballpark figure.
Align Azure Utilization with Resource Requirements
In this phase, we compare the business’s resource needs to its actual resource use and, therefore, its cost. The goal is to identify opportunities to streamline resource consumption.
For example, consider a business that hosts a web application on Azure with five on-demand web servers hosted on D4 VMs behind a load balancer. The previous stages have identified that these servers are underutilized, consuming only a fraction of the available resources.
In that situation, your business might decide to do one of the following:
- Lower the resources of each web server, perhaps migrating from D4 Virtual Machines to smaller D2 VMs.
- Migrate from D-series VMs to burstable Bs-series VMs as discussed in the previous article in this series.
- Delete one or more the load-balanced servers.
- Rearchitect the application for lower-cost containers.
- Move from on-demand pricing to reserved pricing.
Additionally, several Azure services can be used to ensure that actual spending is in-line with expected spending.
- Azure Budgets — Azure Budgets are part of the platform’s Cost Management interface. They allow businesses to create a monthly, quarterly, or annual subscription budget with spending thresholds. When the thresholds are exceeded, Azure notifies relevant stakeholders, giving them an opportunity to manage their spending.
- Azure Advisor — Azure Advisor provides recommendations to help users optimize for availability, security, performance, and spending. It can inform users when virtual machines are underutilized when reserved instances are more economical than on-demand instances, and various other potential optimizations. Azure Advisor isn’t a replacement for a thorough assessment of infrastructure and resource use, but it provides useful assistance.