Confidently Run Kubernetes on Public Cloud With Unit Economics

Unit cost metrics help understand realized business value and tracking efficiency of your K8s investments.

Given operational benefits around agility and resource efficiency, it’s no surprise that Kubernetes (K8s) deployments are steadily growing as a percentage of public cloud spend. This shift requires organizations to extend their FinOps capabilities so that financial accountability can be brought to this spend. Learn how unit cost metrics can be a powerful tool for understanding realized business value and tracking efficiency of your K8s investments.

What is unit economics for cloud?

Unit economics refers to the average revenue or costs (or the margin) directly associated with a specific unit delivered by an organization. The “unit” could be an end product delivered to a customer, such as pair of jeans, flight taken, or ride shared. For digital companies, obvious units will be metrics like daily active users (DAU), page visits, or even internal metrics like records processed. Surfacing unit economics is becoming more popular in the context of public cloud – in this case, establishing the exact cloud costs incurred per unit of value delivered.

Why is unit economics gaining popularity and what does it mean for Kubernetes?

The obvious answer to this first question is that businesses move to the cloud with the clear intention that these deployments will produce real business value. Unit economics provides a means to measure these outcomes and track trends.

However, there are additional reasons for this heightened focus on unit economics. Surfacing unit costs is an extremely effective way to transcend the incredible complexity of cloud billing. Beginning from the outside looking in, consolidated cloud bills typically edge higher month to month even with disciplined usage and optimization efforts, so tracking headline cost figures isn’t a good indicator of the relative return of cloud investments. Grouping costs with accounts/subscriptions or resources tags, and thus breaking apart bills, can help by clarifying the exact cost of specific initiatives or applications. However, it’s not immediately obvious whether a cost decrease (perhaps as a result of eliminating waste, increasing reserved instance coverage or less business activity) or a cost increase (possibly due to increased business activity) is a good thing. Instead, if we can identify that cloud consumed per DAU has increased from 20c to 50c in the last month, we have an objective gauge and can choose to address underlying issues.

So why is this relevant for K8s? Because we need to evaluate this increasing segment of cloud spend but must handle another layer of complexity with this cloud-inside-a-cloud to do so. As noted by the Cloud Native Computing Foundation in their joint Kubernetes research with the FinOps Foundation, “The more organizations know about their clusters, the more they can optimize them to free up money or grow their spend with the confidence that they are getting maximized output for their dollar.”

Establish the full cost of cloud consumption

There is good reason to believe your investment in K8s will be economically sound – containers are lightweight deployments that don’t require a dedicated OS, and their rapid scaling characteristics bode well for elasticity.

The first step is to establish the cost of the application or set of services that is serving a specific business need. Since K8s clusters are typically a multi-tenant entity with underlying virtual machines and volumes being shared, this involves applying rules to each cluster so that costs can be split by K8s constructs such as Namespace and Labels. It is also important to include the regular, non-containerized infrastructure costs that support the business need – in this case, most likely associated by resource tag or account.

Here is a simplified illustration that demonstrates how the cost of an application could be ascertained on AWS using a combination of resource tags and Namespaces:

thumbnail - Confidently Run Kubernetes on Public Cloud With Unit Economics - Apptio
Figure 1: Establishing the cost of an application using resource tags and Namespaces

In fact, this closely resembles how we understand the cost of a specific type of customer here at Apptio. Defining these allocation rules with Business Mapping accomplishes a monthly showback and enables an ongoing unit cost calculation.

Know your units, then track your unit cost

Depending on your business or department, there are many different types of unit that may be applicable, either as something sold to an end consumer or purely as a proxy of business activity. Clarifying the business outcomes to be measured will be worthwhile. Processing and enriching detailed billing files is central to Cloudability. For Apptio’s data pipeline team, it therefore made sense to track the cost (for the “worker” app) per billing line processed (the unit):

thumbnail 1 - Confidently Run Kubernetes on Public Cloud With Unit Economics - Apptio
Figure 2: Surfacing the unit cost for Billions of Billing Lines Processed

As demonstrated in the figure above, the work Apptio’s engineering team has done to optimize pipeline infrastructure and increase commitment coverage has paid off. Even though the number of lines processed every month has nearly doubled in this period and overall processing costs have edged up recently, the cost per billing line has been steadily dropping. Just knowing that we can reliably process a billion lines for a relatively small cost figure is valuable information for the business.

Surface unit costs for your Kubernetes applications today

There’s a good chance you started your K8s journey to improve your cost efficiency. Capabilities across Apptio Cloudability help you get this benefit, and by integrating Business Metrics, you can track the various unit costs crucial to your business.

Not already a customer? Sign up for a free trial today to see how we can help you.