Cloud computing has revolutionized the way businesses operate, offering unmatched scalability, agility, and innovation. However, the benefits come with the challenge of managing and optimizing costs, especially in the ever-growing and complex cloud environment.
That’s where FinOps comes in. FinOps isn’t just about cost savings; it involves making money through data-informed decisions about your cloud technology investments.
Understanding FinOps
Properly implemented, FinOps delivers a set of best practices, tools, and processes that help you align your cloud spending with your business value and enable cross-functional collaboration between engineering, finance, IT, and business teams. The practice consists of several critical aspects:
· Agreement on required financial tags (e.g., cc for cost center, or app for application code)
· Agreement on tagging inheritance from subscription to resource groups
· Azure policies that require tags and valid values for subscriptions and resource groups
· Processes for tag policy changes
· Regular reviews of cost reports
· Alerting for run-a-way costs
· Taking ownership of your cost data
· Training on cost investigation
FinOps is also a set of tools consisting of:
· Daily exports of month to date costs
· Processing of the month to date costs into a data store
· Reporting of the costs from the data store
Properly implemented to your specific needs, this system will achieve the following objectives:
· Analyze and reduce cloud expenses
· Maximize cost-efficiency
· Improve the overall return on investment (ROI) of cloud services
· Avoid cost overruns for unutilized resources
FinOps involves the following phases:
· Discover: Understand and document requirements for the system.
· Implement: Deploy the base reporting environment.
· Update: Implement customer specific requirements.
· Operate: Train and perform routine cost management practices.
· Improve: Apply learnings and business requirement changes to FinOps.
Valorem Reply’s FinOps Lite v1 Design Overview
Valorem Reply’s FinOps Lite uses the cost management export off the root management group, generating a CSV file excluding the current day’s costs. The month-to-date report also includes the prior 4 or 5 days of the previous month as the costs "settle" for up to 5 days.
The whole process end- to- end is fully automated using the least expensive approach possible for every step. Processing the cost management export can require over 300 MB of memory, so we need to run this on a VM.
The same design also works for Azure Billing export files as well.
Reading the Export File (runbook Edit-CostMgtExport)
The files land in the storage account /cost-mgmt-export container. At 4 am, Edit-CostMgtExport will start the VM if it's not started and resubmits itself to run on the VM. Edit-CostMgtExport aggregates the charges for a given (**day + instance id + metric id**) and outputs the totals into the /cost-mgmt folder for subsequent processing into a data store. This is the same process FinOps v3.5 uses up to this point.
Importing the Aggregates (runbook Import-CostMgtExport)
The runbook runs on the VM as well. It reads, sorts the aggregate costs, and "upserts" them into the Cost-Mgmt table in Azure SQL. Upsert is (update if exist, insert if not exist). Most of the data will be updated as all the prior days of the month should already be in the table.
Viewing in Power BI
Power BI uses a dynamic query on the database view Cost-Mgmt-X, which extends the costs with their corresponding resource group tags. Whenever the Power BI or FinOps app is launched it will start the Serverless Azure SQL database and retrieve the values. Currently, it is done this way to save costs with the impact of having to wait for the database to start up.
Financial Tags
Azure’s exports and cost management APIs report tags at the resource level. This is extremely problematic for many customers and many scenarios as it forces every deployment, including automated deployments, to adhere to the tag policies or fail.
Another approach is to require the tags at the resource group level, which doesn’t change as frequently or get redeployed as much. Using implicit inheritance, we can assume all resources in the resource group have the same tags for financial accounting.
Valorem Reply’s FinOps system has modules that maintain an additional set of data daily for all the resource groups and their required tags. This data is then combined with all the cost data described above and delivers all the data needed for FinOps reporting.
Conclusion
FinOps is a powerful way to manage your cloud costs and maximize your cloud value. By following the FinOps Framework and using the Azure tools and services, you can transform your cloud financial management and drive better business outcomes.
If you want to learn more about implementing a FinOps solution for your organization, ask us about our FinOps Accelerator and start gaining full control over your Azure costs.
Additional references:
Cloud Naming Convention (valoremreply.com) - Consistent cloud naming strategy is the first step in achieving even basic levels of consistency and prerequisite to establishing any sort of cloud governance.
Tutorial: Manage tag governance with Azure Policy- This tutorial walks you through the steps of creating and applying a tag governance policy to your Azure resources, using the modify effect and remediation tasks.