As companies and organizations move to take advantage of the cloud, one of the first objectives should be understanding the costs and how to optimize them.
Microsoft Azure offers a number of tools that give you visibility into your Azure environment. This is to help you understand what’s being used, and optimize your spend. In this post, I’ll share some of these tools available in the Azure Management Portal, and how to set them up so you can prevent surprises and make the most of your investment.
The three dimensions I’ll explore are Visibility, Control and Optimization.
Visibility
Understanding costs begins with visibility into what’s going on. The Azure Management Portal includes several tools that surface when you view your subscription. The default overview of a subscription includes charts and metrics that give you an idea of your current spend. It also gives you projections of what the monthly costs will be, as well as details around the number and types of services provisioned in the subscription. Easy navigation allows you to drill deeper into questions, and makes it simple to find answers about costs.
Going from the Overview to the Cost Analysis view of the subscription opens a graph of the costs along with detailed charts. The charts show specific services, locations and resource group charges, letting you break down and see how much each of those elements impacts your final bill.
One of the nice features of the main chart is that you can change the scope of which subscriptions or resources you want to include in the analysis, as well as the dates. There are a number of views you can switch to, with the default accumulated costs providing the forecast. Other views include cost by resource or by service, daily costs, and invoice details.
The ability to change the view, the timeframe, and the scope of the query creates custom views that you can then save and share. You can schedule distribution by going to the settings, selecting downloads, and creating a scheduled export.
Control with Budgets
Setting up budgets is a way to be notified when your spend exceeds what you planned. Working with budgets in the portal is straightforward. The portal provides suggested values for amounts, based on actual costs, then allows you to designate who to notify when it reaches a set limit of either the projected or the actual costs.
Once a budget has been set up, you can add cost alerts for different parties. There is a filter option that includes the ability to use tags on services to provide chargeback capability if you’re using tags in your governance model.
Optimizing Costs with Azure Advisor
Azure provides great feedback and recommendations for using your Azure resources. The Azure Advisor service analyzes usage and loads to understand how your workload runs and what is required to make it better. For example, the advisor will look for over-provisioned but under-used resources, as well as VM’s that could be right-sized. The recommendations can be downloaded as a one-time report, or subscribed to on a periodic basis.
Optimizing for KnowledgeLake
Understanding workloads is key to managing costs. When running KnowledgeLake with the Azure storage configuration, the key is to configure storage services so that you have enough capacity to support the expected load while minimizing additional costs. There are two services used by KnowledgeLake with Azure: Cosmos DB and Azure Blob Storage.
Cosmos DB is a service that is used to manage metadata about documents. It uses the Mongo API and stores information per document to support the search and indexing capabilities of KnowledgeLake. Cosmos can be configured to use either the provisioned throughput, which guarantees a level of performance, or serverless, where you pay only for what you use. The drawback of serverless is that it currently doesn’t support more than one region and has a storage limit of 50GB. Depending on your requirements, this may likely work for you, but you need to be aware of that.
Azure Blob Storage archives the actual documents and provides redundancy and availability. The configuration of Storage needs to be at least v2 Storage. It doesn’t require global replication (GRS), but can work with local replication (LRS). What this means is that within the Azure datacenter, the data is stored at least three times across a redundant storage model.
Conclusion
Understanding workload requirements is key to optimizing the resources and managing costs. Using the tools built into Azure makes it easier to understand and manage these costs.