Cost management for cloud services
Every Cent Counts
Cloud services generally have the reputation of achieving significant cost advantages over on-premises installations. However, practical experience shows that many companies fail to estimate the expenses they will incur and the expenses that will arise during ongoing operations. In this context, they also fail to analyze existing services to identify a potential for optimization.
Cloud costs can only be meaningfully evaluated by comparing them with the value they generate; that is, optimizing cloud expenses is always related to optimizing applications and balancing performance and cost. Optimization depends on understanding the application performance and the value of all workloads running in the cloud.
In this respect, it is no surprise that solutions in the fields of cost, performance, and capacity management are becoming increasingly important – especially with the cloud and application sides combined. Koku [1] aims to identify and bundle cost data from different sources. The result is a database that supports decisions regarding utilization and potential optimization opportunities. Koku not only records and analyzes costs, but also forecasts of cost trends.
Project Koku
Koku is open source software for cost management of clouds, containers, and hybrid cloud environments. The software is designed to identify, centrally bundle, and analyze the pertinent cost data associated with various services. In doing so, the cost specialist pursues the overriding goal of transparency, recording expenses where they are incurred and mapping these expenses across the cloud.
By bundling and analyzing these costs, including their development, over time, you can draw conclusions about the potential for optimization. Additionally, unnecessary expenses are identified with forecasts for cost developments. Koku visualizes the various data, improving visibility for cloud-specific costs.
Decision makers gain several advantages. On the basis of visualization of resource use and expenses, use patterns that require further analysis can be identified in a targeted way. Moreover, you can consolidate and process the acquired data with third-party tools. The current version of Koku supports public clouds such as Amazon Web Services (AWS) and Microsoft Azure, as well as container platforms such as Kubernetes and OpenShift. In this context, Koku is already an integral part of OpenShift's cost management setup.
The free cost management environment is based on a modular architecture that comprises three components:
- Koku API (report and query API service)
- Koku UI (front-end web user interface)
- Masu (data acquisition service)
For development and testing purposes, Koku has a built-in test data generator in the form of Nise.
Koku in OpenShift
Even though Koku is an open source tool, it is strongly tied to Red Hat's OpenShift platform. The Koku UI in particular depends on Red Hat Insights, making it difficult to deploy in other environments. Unfortunately, the developers do not provide any hints on how to integrate the program into third-party environments.
The Koku package includes a template file to help Koku interact with the OpenShift environment. According to the developers, this template has presets for most application scenarios. To prepare the Koku API application for interaction with OpenShift, run
make oc-create-all
in the OpenShift command-line interface (CLI). The task of configuring the environment is complicated by the fact that the developers provide virtually no information on the options. To start the deployment of the web application and PostgreSQL database, type:
make oc-create-koku make oc-create-db
The name of the web front end is Koku UI and is based on PatternFly and ReactJS, which you need to install individually. The developers describe the procedure for this in detail online [2]. You also need to import the Masu component, which comprises various parts, including a web service, a message bus, and workers. Unfortunately, the Koku developers do not provide packages to support a simple installation and configuration process.
Integrating Relevant Data
The first step in establishing the cost management environment is to define the data acquisition source. It is also important to identify the data sources of your existing clouds. In particular, you need service-specific tags and metadata. Finally, you need to determine who has access to cost management. Because Koku is tightly integrated with Red Hat Insights, the platform gives you easy answers to the questions posed here.
To use Koku, you first need to install an OpenShift container platform cluster. The cost management operator is not preinstalled by default. However, you can change this in the Operators | OperatorHub tab. In the Install Operator dialog, select the cost-management-metrics-operator namespace for the installation. If the namespace does not yet exist, it will be created for you. Pressing the Install button starts the installation. After a short wait, the Cost Management Metrics Operator will be globally available.
Buy this article as PDF
(incl. VAT)