May Updates: Usage Costs, Azure FinOps Policies & “Stop Being Nice”
Happy May!
As the sun gears up for its annual performance upgrade (it’s still cold in Scotland) and temperatures start to climb, it’s time for another Infracost update – let’s dive in.
Usage Costs
We’ve redesigned Infracost pull request comments to differentiate Baseline costs and Usage costs:
- Baseline costs are consistent charges for provisioned resources, like the hourly cost for a virtual machine, which stays constant no matter how much it is used. Infracost estimates these resources assuming they are used for the whole month (730 hours).
- Usage costs are charges based on actual usage, like the storage cost for an object storage bucket. Previously Infracost could only estimate these resources using monthly usage values defined in an infracost-usage.yml file at the root of code repos.
Large enterprises have thousands of code repos, so adding a file to each repo is difficult. With this month’s release, you can define usage defaults centrally in Infracost Cloud. Check out our docs on how to do this and improve estimates.
New Azure FinOps Policies
Did you know that Azure instance type names can have 11 different one-letter additions to denote different features? To make it simpler for engineers to know this information at the right time in the right place (pull requests), we’ve added two new FinOps policies to warn you about previous generation F
and Fs
series instances:
- Virtual Machines—Consider using the latest generation for F series machines: Upgrade to the Fsv2 series of machines to get a better price-performance using a newer processor. For example, a Standard_F2 instance (with 2 vCPUs and 4 GB RAM) costs $72.27 monthly (East US region); in comparison, a Standard_F2s_v2 instance (also 2 vCPUs and 4 GB RAM) costs $61.76, a savings of 14%.
- Virtual Machines—Consider using the latest generation for Fs series machines.
Visit the Infracost Cloud > Governance > FinOps policies page to see if your repos are using previous generation instance types and update them to save money.
Tagging & FinOps Policy Support Terraform Run Tasks
Terraform Cloud (TFC) Run Tasks enable you to integrate Infracost directly into your workflow. Previously, this integration only supported cost estimates. However, many large enterprises use TFC, and they have thousands of code repos that benefit from tagging policies, FinOps policies, and cost guardrails. So, we have updated this integration to support all of those features, as well as usage defaults (mentioned above). Check the docs on how to set up this integration.
Azure and AWS Custom Price Books
Many organizations that spend significant amounts on cloud services get enterprise discounts from cloud vendors, such as AWS Enterprise Discount Program (EDP) or Azure Enterprise Agreements (EA) discounts. Large enterprises that use specific services heavily often negotiate custom price books in addition to these blanket discounts. For example, certain instance types or object storage classes might have custom prices in certain regions.
We now support SKU-level custom pricing. Azure customers can get this information from the Price Sheet CSV export, and AWS customers can provide this information from their Cost & Usage Reports (CURs). Reply to this email if you’re interested in this feature.
How to “Stop Being Nice”
This week, another Infracost user hit 100% coverage on their FinOps tagging policy, and I asked them how they’re doing to keep it that way. Their answer: I’m going to flip that policy into enforcement mode so engineers can’t merge their pull requests until they fix their tagging issues. Simple but powerful!
This got me thinking about a phrase I saw in a recent FinOps Foundation talk: “stop being nice”. I think there are two different ways to do this, and the devil is in the details if you want to avoid frustrating engineers 😡 Here is my post on LinkedIn – join the discussion and let me know what you think!