One of the perennial truth about working with cloud computing resource is that it’s nearly impossible to predict and manage costs. That might be the case in the early days when you migrate your infrastructure to cloud (for example: Microsoft Azure or AWS)with less management and minimum governance idea. It should be difficult for you at that time to release your actual itemized spending.
Today things are very different. Cloud Computing providers have implemented many different tools and technologies to help you manage your cloud resources, with APIs that give access to billing systems and to the data used to calculate your bills. Alongside them, they’ve introduced technologies, like reserved instances, that offer cheaper access to resources while locking you into longer-term contracts.
The result is a mix of complex pieces of data that makes it hard to predict what the right balance of dynamic and reserved cloud services should be for your business. This unpredictability hinders cloud services as they attempt to deliver a global infrastructure that makes it easier to plan data center capacity. At the same time, it prevents you from optimizing your bills to get the most bang for your buck.
What’s needed is a way to simplify data collection, making it easier to understand what you’re spending and why.
Track costs in the Azure Portal
Microsoft has started bundling the various tools that used to help you understand your Microsoft Azure bills into a more comprehensive suite for managing and predicting costs, as well as finding ways of keeping your bills down. The tools are available in the Microsoft Azure Portal, available through the Cost Management + Billing option. Using this you can quickly see how you’re spending money, drilling down into locations, services, and resource groups.
Tools like this help you track down what services are costing you the most and how they’re being used, and how you’re paying for them. Using the Cost Analysis option, you can see what’s been spent, and what’s likely to be spent. Along with costs, the service can predict what your future expenditure will look like, comparing it with your current budget. Along with traditional graphs, donut charts give you a quick way to pivot around different variables, finding the right area to explore and analyze. Costs can be organized by the services you’re using and the resource groups you’ve deployed.
One of the more useful features of Microsoft Azure Cost Management is its Power BI connector. Instead of creating regular reports for management, you can add the connector to a Power BI dashboard and give access to it to your finance team, so they can get near real-time access to Azure cost data. You can connect to it with either a Customer Agreement or an Enterprise Agreement using your account details. The connector provides a set of data based on current and predicted usage trends that can be used in conjunction with other Power BI tools to build reports and models.
With the connector in place, you can build reports that display Azure usage graphically, breaking out usage and Marketplace charges, as well as getting access to service predictions. With the ability to drill down into data in a familiar analytic tool, business owners will be able to work with technical teams to book lower-cost reserved instances, as well as understand how demand and usage affect spend.
Use Power BI to analyze costs in detail
One interesting option is to work with Power BI’s support for Azure Cognitive Services to add anomaly detection to a dashboard. Is a service suddenly costing more to run? By alerting the service owners quickly, you can start to drill down into why things have changed before you get a shocking monthly bill from Microsoft. We’re already seeing similar services from competing cloud services like AWS, and the ability to build and train your own predictive models across a range of Microsoft and Marketplace services should prove to be very useful indeed.
Azure’s cost management tooling doesn’t only manage Azure, it’s now available as a preview for AWS as well, helping you manage cross-cloud applications. There is one important note: while Microsoft Azure Cost Management is free on Azure, it will be charged for once the service releases. Costs can mount quickly if you’re using it with a large AWS infrastructure, as Microsoft will bill you 1% of your managed AWS spend (although the more it saves you, the less it will cost!). While having one place to see all your costs is certainly useful, you may prefer to use AWS’s own cost-control tools.
Managing and optimizing Microsoft Azure
While there’s a lot in Microsoft’s cost management tooling, it shouldn’t be the only solution you use. It’s really best used as part of a suite of tools that help you control your Microsoft Azure usage, working alongside Microsoft Azure Advisor and the Azure Well-Architected Framework. Getting to grips with Microsoft Azure spend means understanding what you’ve deployed, and how you might rethink that deployment. You might be spending thousands of dollars or pounds a month on over-provisioned VMs, when a smaller VM instance might work better for your application at a much lower cost, with even more savings coming from moving to a cloud-native architecture and a complete rebuild of your code, using the lessons from the Microsoft Azure Advisor.
Tools like this are an important part of a cloud migration. Because you are moving from a capital expenditure model to one based on operational expenses, you need to keep a closer eye on costs, avoiding unpleasant surprises and ensuring that the right groups within a business are shouldering their fair share of the costs.
With cost allocations now in preview, you finally have the tools needed to give everyone visibility into what their apps cost. That ensures there are no surprises, and that business decisions are made with all the relevant information. At the same time, there’s the opportunity for optimization and for predictive analysis to help take advantage of lower cost options within Microsoft Azure. If you’re using Microsoft’s cloud, then this really is an essential service.