FinOps FOCUS, succinctly
I attended the FinOps Roadshow in New York back in the late winter, and FOCUS was a large topic. Talking to my friend Dann B after the thing, it became clear that for as much buzz as there is around FOCUS, it's ironically unclear what the deliverable of this project actually is. I hope to bring some clarity here.
The Problem
Billing data is all over the place.
All of these fabulous toys in the technology market generally and the cloud computing market specifically cost money. I don't know how many hundreds of billions of dollars a year it is, but it's probably in the 12 figures order of magnitude.
All of these toys that cost money have to bill their customers, and each of those bills must be legible, auditable, and understandable by the customer who's expected to pay them. This means ultimately that cloud billing is not like a receipt from a grocery store - a finished product you can scan over in 20 seconds - and more like a data source upon which you might build your own reports of the activity within it.
As this whole market has matured and the quantity of billers and the magnitude of their bills have grown, it's become its own job just wrangling and understanding all of this billing data. This may form the largest expense that your company pays, after all. Wrangling and understanding the billing data is one of the fundamental FinOps motions, so that we may facilitate the understanding of our business partners in Finance and Engineering about how to, y'know... make our money go farther.
It's gets knotty though, because every vendor has their own format, delivery method, and vocabulary for their bills. It's almost as if the eventual billing data is NOT the first thing on the engineering team’s mind as they work through the product engineering lifecycle! So begins a mad scramble to figure out a billing format, without the time to consult outside sources or the market in general.
Solution
A common vocabulary for billing data
FOCUS - FinOps Open Cost and Usage Spec - aims to reverse engineer a common billing interface from a handful of pre-existing implementations, namely the major public cloud service providers - AWS, GCP, Azure, Oracle. Put simply, FOCUS is a common vocabulary for billing data. The exact format of each vendor's bill is different, but if you spend time looking at them and understanding their structure you start to see patterns:
- An invoice period, or billing month
- A timestamp for the beginning and end of some period, during which usage of a resource is measured
- A column or two that tell you the SKU, and maybe give you a human readable description of it
- Some columns about usage quantity, and what unit of measure is that usage reported in
- Some columns that tell you the unit price for that SKU
- Another column that multiplies unit price (P) by quantity (Q) to arrive at the cost (C) of that line item.
- User added tags, credits or discounts applied, additional columns describing the service, etc, etc, etc
While there is a lot that is conceptually the same, getting to know just the structure of a cloud vendor's bill is such an enormous job that literally dozens of competing vendors in the FinOps tooling space have sprung up to make it a little easier, especially for customers who utilize more than 1 cloud vendor. A big feature of all these tools is that they will normalize your various bills in some way that allows you to visualize and report on more than 1 at a time.
Into this space steps the FOCUS project, to provide guidance to cloud vendors, practitioners, tooling vendors, and the software engineering community at large that says:
What FOCUS is not
FOCUS is not a product. It does not do anything in and of itself. It's a very intriguing idea to many of us that have to wrangle data, but I answered several people's questions at the FinOps X conference last week about "How can I use it?". I'll be answering that question here in greater depth for quite a while, so stay tuned.