What I most enjoy about software product management, especially working in the world of cloud computing, is the challenge of taking complex problems and devising simple solutions that directly address the challenges customers face in the market. Organizations are increasingly turning towards public cloud vendors to facilitate scalability and flexibility while managing costs. The use of containers as the mechanism to deploy services on a public cloud is growing at about twice the pace of general cloud computing and integrated financial management for containers has been the proverbial Mt. Everest for the industry in recent years. That is why I’m really excited to share that Apptio has just released new functionality to fully integrate Kubernetes containers into your broader cloud financial management process.
The “Black Box” problem with containers
The rapid growth of container usage today is driven by organizations who embrace modern approaches to application architecture, development, and operations. With containers you are effectively virtualizing an operating system and enabling multiple disparate processes to run on the same kernel in isolation from one another. Utilizing Kubernetes as your container orchestration layer enables your organization to scale its commitment to containerized workloads. This has huge potential benefits for application development but poses a massive new challenge when it comes to cost allocation, analysis, planning and reporting.
The challenge lies in being able to reliably establish the cost of each Kubernetes cluster, which in any given month can be backed by many thousands of short lived cloud resources, and then having a mechanism to assign the costs to individual delivery teams. Since each virtual machine within a cluster is effectively multi-tenant, with multiple applications running on each through independent containers, we can’t rely on regular billing attributes to map costs. In short, neither the total cost of each cluster nor the amount attributable to the software applications within are natively reported by the cloud vendors. What you end up with is a rapidly growing part of your cloud bill that is a black box when it comes to how to accurately apportion costs across an organization’s cost centers.
Unlocking the Black Box
Apptio customers can accurately surface the cost of every deployed Kubernetes cluster and get the required visibility so this spend can be allocated out to the services, apps and teams responsible for it. This is achieved by deploying a lightweight and purpose-built Cloudability container within each cluster that can intelligently map and split all spend. This intelligence is based around sophisticated algorithms that analyze the four relevant resource utilization metrics on each node – CPU, memory, network and disk – and evaluate pod level Quality of Service settings so that resource costs can be broken apart in the context of native Kubernetes constructs. Users can visualize this information via Kubernetes constructs (such as Cluster, Namespace, and Label) through the Container Cost Allocation report. In this case, I’m seeing the costs of each of my four Kubernetes clusters broken down by Namespace.
But this launch is about more than just detailing the resources associated with each Kubernetes cluster and which teams have containers deployed on them. It’s about incorporating all of that information back into your broader cloud financial management process. A true single pane of glass experience for all your cloud spend. Apptio Cloudability customers can view their Kubernetes costs alongside their other cloud costs in cost reports, dashboard widgets, and the TrueCost Explorer. Leveraging an organization's unique Kubernetes labels, users can build and enhance Business Mappings to define cost structures and business units that reflect how their organization handles chargebacks across cost centers. These capabilities are unmatched by any other solution provider and can now produce dashboards to view all of your costs accurately allocated. Below I built a dashboard that shows my container costs right alongside my regular cloud costs (you can see the values where the Cluster Name is ‘(not set)’, indicating non-container costs).
This is the culmination of a lot of work by a group of very talented people. I’m really excited to be able to share this news and see how customers leverage this new functionality to drive increased visibility and accountability into their cloud spend and maximize the value of every dollar spent.