Container Service for Kubernetes (ACK) provides the cost management suite, which offers a cloud cost governance solution to help enterprises control IT spending based on FinOps. This solution allows enterprises to allocate the costs of ACK cluster resources, improve resource utilization, and reduce resource costs to meet the business requirements in different scenarios. This topic introduces the cost governance solution and the procedure for cost governance to help enterprises quickly develop an IT spending governance system in cloud-native scenarios.
Background information
Cloud-native technologies can help enterprises reduce their IT spending based on resource sharing, isolation, and scaling. Therefore, they have become the preferred approach for many enterprises undergoing IT transformation. However, 68% of the interviewees in the FinOps Kubernetes Report released by Cloud Native Computing Foundation (CNCF) in 2021 said that their enterprises need to spend more money on compute resources after they migrated to Kubernetes. 36% of the interviewees said that the overall costs increased by more than 20%. This sharp increase in IT spending is caused by the improper use of cloud-native technologies and the lack of effective cost control measures.
To resolve these issues, ACK provides the cost management suite, which offers a cloud cost governance solution based on the concept of FinOps. This suite offers features such as resource waste check and resource cost forecasting. Through a combination of bill analysis, usage statistics, and real-time inquiries to forecast the costs of pods, the cost management suite can help enterprises control IT spending by efficiently allocating the costs of cluster resources, improving resource utilization, and reducing resource costs in different scenarios.
For more information about the concept of FinOps, see the official FinOps document.
Introduction to the FinOps-based cloud cost governance solution
The cloud cost governance solution aggregates and analyzes resource costs in the physical and logical dimensions. The physical dimension consists of cluster nodes, node pools, and resource groups. The logical dimension consists of pods, workloads, and namespaces. This solution aggregates the costs of resources in the logical and physical dimensions and creates a comprehensive resource cost profile to help enterprises fine-tune IT spending governance. FinOps can help enterprises build a visualized IT spending system to coordinate business, O&M, and finance, and digitalize and visualize IT spending. FinOps traces the responsibilities instead of the liabilities of individual stakeholders to help continuously reduce costs.
ACK implements IT spending governance by using FinOps to gain cost insights, optimize costs, and control costs.
Cost insights
FinOps provides cost allocation models and intelligent cost profiling to help you gain insights into metering and billing and allocate container costs in multiple dimensions. FinOps allows you to view cost insights based on the cluster, namespace, node pool, and application dimensions.
The cluster dimension provides comprehensive insights into overall resources and costs, helping to identify cost trends and anomalies. The first and foremost thing that you need to pay attention to is whether the fluctuation of the cluster spending meets your expectation. If the fluctuation of the cluster spending does not meet your expectation, troubleshoot the issue and locate the cause.
The namespace dimension allows you to filter and display resource and cost information for each namespace. To use namespace dashboards to analyze costs, make sure that your departments or business systems are classified by namespace. Then, you can view the allocated costs by department or business system.
The node pool dimension delivers cost insights from the perspective of node pools. Most cluster costs are incurred by Elastic Compute Service (ECS) instances, which are managed by O&M engineers. Node pool cost insights can help you analyze the costs of node pool resources and choose a proper billing method.
You can use label wildcards to filter applications and then view the costs and resources of the applications whose labels match the wildcards. Application cost insights focus on scenario-specific cost optimization. By using label wildcards to filter applications, you can also monitor multiple applications that depend on each other at the same time. For example, you can add the same label to all applications that are streamlined in a pipeline so that you can analyze the costs of the entire pipeline.
Cost optimization
The cost optimization feature provides multiple strategies to identify and minimize resource waste. After you use cost insights to monitor and explore the trends of resource costs and resource waste, you can use the cost optimization feature to select and enforce an optimization strategy to avoid resource waste.
Commonly used cost optimization strategies include:
Choose a proper billing method for the cloud resources that you use. For example, you can use savings plans.
Use application scaling features, such as automatic node scaling, serverless scaling, ECS instance and elastic container instance scaling, and horizontal pod scaling.
Use pod scheduling and rescheduling policies to optimize costs.
Use time-sharing together with preemptible instances.
Optimize performance by using non-uniform memory access (NUMA) or binding vCores.
The cost optimization feature allows you to create resource profiles for Kubernetes-native workloads. The feature analyzes the historical resource usage data and then provides resource specification recommendations for containers. This greatly simplifies the configuration of resource requests and limits for containers. For more information, see Resource profiling.
Cost control
Cost control consists of budget management, quota management, cost forecasting, and cost alerting. Cost control applies to multi-cloud and hybrid cloud scenarios.
Cost insights and cost control are the most efficient measures provided by FinOps to facilitate cost governance. During the cost governance process, the IT supervisor and infrastructure management team are usually responsible for facilitating cost governance. They can use cost insights to identify resource waste in the cloud and then use cost control to reduce resource waste. The business team is responsible for cost optimization. They need to choose proper cost optimization strategies based on their knowledge and technical expertise. However, the improper use of cost optimization strategies may incur technical debt. Therefore, compared with cost optimization, cost insights and cost control can more efficiently help you achieve cost governance goals.
Cost governance procedure
IT spending governance inside an enterprise usually involves the following roles: IT supervisor or financial analyst, IT O&M engineer, and R&D engineer.
IT supervisor or financial analyst: ensures IT costs remain within budget and contacts IT O&M engineers if the costs exceed the budget.
IT O&M engineer: analyzes the causes of the overage costs, designs optimization strategies, and drives business teams to implement optimizations.
R&D engineer: implements optimization strategies and provides feedback on the effectiveness of the strategies.
Therefore, cost governance includes the following steps:
View the cluster cost dashboard and check whether resource waste exists.
If the cluster cost dashboard shows resource waste, find the department or business to which the wasted resources belong and locate the cause. Locate the cause of resource waste based on the following dimensions: namespace, node pool, and application. In most cases, namespaces, node pools, and applications correspond to departments, resources, and businesses, respectively. You can choose a dimension to analyze the issue.
After you locate the cause, contact the relevant business personnel to optimize costs.
View the cluster cost dashboard or the dashboard corresponding to the chosen dimension and confirm the cost governance results.