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
In current state of the IT industry, a growing number of enterprises choose to use cloud-native technologies to help with IT transformation. Cloud-native technologies can help enterprises reduce their IT spending based on resource sharing, isolation, and scaling. 68% of the interviewees in the FinOps Kubernetes Report released by CNCF in 2021 said that their enterprises need to spend more money on compute resources after they migrate 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 a lack of cost insights and cost control measures. Traditional enterprises usually lack comprehensive systems to gain cost insights and control the overall costs after they adopt cloud-native architectures.
ACK provides the cost management suite, which offers a cloud cost governance solution to help enterprises control IT spending based on the concept of FinOps. Enterprises can use features provided by the suite, such as resource waste check and resource cost forecasting, to efficiently allocate the costs of cluster resources, improve resource utilization, and reduce resource costs in different scenarios. Enterprises can use a combination of bill analysis, usage statistics, and real-time inquiries to forecast the costs of pods.
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.
You can view cluster resources and their costs in the cluster dimension. These statistics help you learn the overall heath status of your cluster spending. 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.
You can view resource and cost information by namespace in the namespace dimension. 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.
You can view the costs of cluster resources in the node pool dimension. 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 of the cost management suite provides various methods to help enterprises optimize costs in different cloud-native scenarios. 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.
FinOps provides multiple cost optimization strategies. 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.
The IT supervisor or financial analyst is responsible for ensuring that the IT spending of the enterprise does not exceed the budget. When the IT spending exceeds the budget, they need to contact the IT O&M engineer to locate the cause. The IT O&M engineer is responsible for locating the cause of the overage costs, providing a strategy to optimize resource costs, and enforcing the business team to optimize costs. The R&D engineer is responsible for enforcing the cost optimization strategy and reporting the cost governance results to create a closed loop.
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.