In every companyās cloud journey, thereās a trigger event that causes them to scrutinize their cloud bill more than they were before.
It may be once you reach a certain monthly spend threshold, a large undetected cost spike occurs, when youāre negotiating a commitment contract with your cloud provider(s), or perhaps when youāre unable to explain spending when asked about it by the exec team or board.
Whatever the event is, cost allocation is your key to unlocking transparency around your cloud spend to manage these situations. Once you allocate costs against your org structure, youāll be able to easily answer business questions around your cloud spend and nudge engineers towards owning their share of costs.
And while itās important that you map your cloud costs to your cost centers, there are also shared costs to contend with ā think support charges, shared resources (ex. storage), and more.
If you donāt takeĀ shared costs into account when performing cost allocation:
- You will either under or over-allocate costs to your cost centers,
- Nobody will take responsibility for those costs, leading them to potentially spiral out of control, and/or
- Any forecasts or budgets will be based on incomplete data, leading to ill-informed decision making
Thatās why weāre excited to introduce Cost Splitting to Cloud Analytics Reports, enabling DoiT customers to easily spread shared and unallocated costs among different stakeholder groups in the DoiT Console
Before we go over how to split shared and unallocated costs in the DoiT Console, letās quickly review two prerequisites to splitting costs:Ā
- Mapping cloud costs to business-specific groupings, andĀ
- Combining them together so that we know which cost centers to spread our shared costs among
Mapping cloud costs against your org structure with Attributions
DoiT customers use Attributions to relate cloud costs to their business. An Attribution is a logical grouping of cloud resources (i.e. individual VMs, tags, projects/accounts, etc.).Ā
With Attributions, you donāt need perfect account structure or tagging to start mapping cloud costs to org-specific categories like products, teams, and more. Or you could enhance your good account structure and thoughtful cost tagging with Attributions and prevent their limitations from stopping you to allocate costs properly.
For example, some cloud services have their own nuances about how costs can be tagged, and to what extent. Google Cloud Storage only features bucket-level labeling, and not per object. That makes it challenging to deal with buckets that are allocatable to multiple entities.
Or you could have a project/account-per-team structure with one or more shared projects that need to have their costs distributed.Ā
Finally, itās not possible to retroactively tag costs. Attributions can complement your tagging strategy in all of these cases to help you achieve exhaustive cost allocation.
Example of an Attribution defining an Engineering teamās costs (any resource tagged with āteam:engineeringā in two accounts)
In the example below, BI Application costs are defined as any resources tagged with a āteamā label or project label value corresponding to āBI Applicationā.Ā
To view other popular use cases for Attributions, read here.
Example of an attribution defining costs for a BI application
Next, weāll also define which shared costs are using Attributions. In our case below, we grouped all charges related to AWS and GCP support but shared costs can also include shared resources like storage or Kubernetes costs.
Attribution defining shared cloud costs
Group Attributions and shared costs together
Attribution Groups help you do cost allocation between a common set of Attributions, setting the stage for splitting shared and unallocated costs (costs that arenāt connected to any Attribution in an Attribution Group).
After creating all of the Attributions youād like to map costs to ā in our case all of our applications + shared costs ā we now want to put them all into an Attribution Group.Ā
Below, you can see an Attribution Group āApplicationsā, containing Attributions representing the costs of three different Applications and our shared costs, along with unallocated costs.
Group of Attributions representing our different Application costs, along with shared costs.
Group of Attributions representing our different Application costs, along with shared costs.
They also allow you to break down a group of Attributions by another group. In the example below, weāre able to break down application costs by environment with two Attribution Groups ā one containing application costs and the other containing environment costs.
Splitting shared and unallocated costs
Now weāre ready to split unallocated and shared costs among the three applications weāre looking to track costs for. Take the interactive tour to experience this yourself or follow along below.
To do so, weāre going to build a report using our āApplicationsā Attribution Group. Then weāre going to click on the vertical ellipsis next to the āApplicationsā chip and then on āDistribute costsā.
Then, weāre going to split our unallocated costs first by selecting the āUnallocatedā item from the dropdown.
You have three options when splitting costs:
- Evenly split - Allocates costs evenly across all selected Attributions.
- Proportional - Allocates costs across your Attributions based on the proportional weighted cost of each selected Attribution.
- Custom - Allocates costs across your targets based on a custom-defined percentage.
Weāre going to split unallocated costs evenly among the three Application Attributions.
Finally, weāre going to click āDistribute costā and re-run the report. We will do this again for our āShared Costsā Attribution as well.
Below we can view how each teamās costs are split between their actual costs and their portion of shared and unallocated costs.
Now we have a more accurate view of what each teamās costs are responsible for. But in the longer-term youād want to minimize those unallocated costs (ideally bringing them down to $0) via tagging and/or refining your Attributions.
Conclusion
One of the main FinOps principles is that āEveryone takes ownership for their cloud usageā. But in order for engineering teams to do that, they need an accurate view of their costs. Otherwise, any conclusions they arrive at from an analysis of their cloud costs risk being way off.Ā
Cost splitting in the DoiT Console allows you to spread shared and unallocated costs among your relevant business units so you can not only drive cost transparency among your cloud users, but accountability as well.
Take the interactive tour, which will take you through creating an Attribution and Attribution Group, and ultimately splitting shared and unallocated costs among them.