Few practices exemplify the impact of DevOps more than Infrastructure as Code (IaC).
Anyone who remembers hearing “I don’t know why it’s not working; it worked on my machine …” can vouch for this! IaC provides a standard way to create declarative descriptions of infrastructure to represent desired environment states — essentially allowing teams to manage IT infrastructure using configuration files.
Tools like Terraform and CloudFormation use these descriptions to create the desired infrastructure for millions of organizations worldwide. The problem of environment drift in the release pipeline is essentially a thing of the past (as long as IaC is done right).
By leveraging code instead of manual configuration, IaC delivers numerous benefits, including:
- It can be managed using established software development workflows and tools (version control, IDEs, etc.).
- It creates a common language between developers and operations teams.
- It can be easily automated.
With IaC, responsibility for infrastructure can be shared between developers and ops professionals, built around a common language and tooling.
Today, FinOps is facing a problem similar to what infrastructure management faced prior to IaC.
The top challenge that FinOps teams face (according to the State of FinOps Report 2021) is “getting engineers to take action.” An engineer saying with a shrug, “I don’t know why the AWS bill is so high; my feature is just fine,” is the cloud cost equivalent of “it worked on my machine …”
Legacy cost tools don’t work.
They struggle to keep up with the rapid rate of change and complexity of modern, container-driven cloud architectures. They rely on resource tagging, which is nearly impossible to keep up to date. They require costly consulting engagements to implement. And they ultimately fail to provide a common language that both finance and technical teams can both speak and understand.
But now there is a solution that surfaces cost insights in hours rather than days, weeks, or months.
CloudZero Enables ‘Cost As Code’
CloudZero is excited to introduce a new code-driven way to deliver cloud cost intelligence to connect technical teams with their finance partners. CloudZero’s new technology changes the way software-driven organizations manage costs — as much as Infrastructure as Code changed the way they manage infrastructure.
The output of this approach is CloudZero Dimensions — a foundational part of the CloudZero platform that enables you view, explore, and interact with your cost in meaningful ways, such as by product, feature, customer, and more.
Like IaC, CostFormation provides a standard way to describe a desired state in which to understand cloud costs — in a code artifact and language we call “CostFormation” (think, like Terraform). It is a powerful, shared language that finance and technical teams can use to collaborate around their cost per feature, cost per customer, shared resource costs, team costs, COGS versus R&D costs, and more.
CostFormation is built around code artifacts that are used just like any other configuration file in DevOps/IaC. This means the same benefits for FinOps that DevOps gets from IaC:
- It can be managed using established software development workflows and tools (version control, IDEs, etc.)
- It creates a common language between developers and finance teams
- It can be easily automated to keep up with even the most complex and rapidly changing cloud architectures
With this approach, responsibility for cloud costs can be shared between developers and finance professionals, built around a common language and tooling.
Is CloudZero “tagging” infrastructure in order to organize costs?
No, CloudZero does’t create or maintain AWS tags. Dimensions are built atop AWS tags — even when tags are incomplete or imperfectly maintained — but it also goes far beyond tags to include account information, other resource metadata, Kubernetes workload details (including labels, clusters, and more), or even user activity data from running applications.
This gives SaaS companies who use CloudZero great precision to accurately define the actual cost of delivering their value.
How It Works
The approach uses an easy-to-understand domain-specific language (DSL) to define Dimensions in a code artifact (a YAML file).
Each Dimension is a unique business-relevant way to answer questions about cloud spend:
- What is our average cost per customer?
- How much did a given team spend in a month?
- How do costs compare between our production and R&D environments?
CostFormation defines a set of rules and conditions that are used to assign your cloud charges to Dimensions to answer those questions.
A very basic “hello world” type example of a CostFormation rule looks like this:
This CostFormation rule creates a Dimension called “Environment” and all charges made to accounts 123456789010, 123456789011, or 123456789012 get grouped together under the value “Production.”
In practice, you can create many Dimensions composed using complex logic that draws on cloud provider data, Kubernetes data, tags, other custom organization Dimensions, and more.
Dimensions support multiple sources, transformations to do things like standardize case or extract substrings, conditional logic, and other powerful concepts. This all means that no matter how your business needs to understand its cloud cost, CostFormation can reveal it.
See Your Cost In New Dimensions
So what is the impact of a code-driven approach to organizing cloud cost?
It means CloudZero can organize cloud spend better than anyone else out there. It doesn’t matter what your environment looks like — tags, no tags, containers, no containers, etc. — CloudZero can organize it into meaningful business Dimensions.
And when cloud cost is organized, it enables everyone who relies on cloud cost to make better decisions, based on accurate intelligence. Don’t worry, you don’t need to hire a new team or train your DevOps engineers on how CostFormation works.
CloudZero has a Cost Intelligence Team to help you get up and running. Our team will work with you to understand your spend and determine what questions you want CostFormation to answer for you. They’ll even create the initial Dimensions to get you started.