All Products
Search
Document Center

Container Service for Kubernetes:Use FinOps to optimize and control costs

Last Updated:Jul 09, 2024

This topic describes how to use FinOps to control and optimize costs in order to efficiently manage the costs of resources in the cloud.

What is FinOps?

Finance and DevOps (FinOps) is the combination of cloud financial management culture and practice. According to the description on the FinOps official website, FinOps is an operational framework and cultural practice that maximizes the business value of cloud, enables timely data-driven decision making, and creates financial accountability through collaboration between engineering, finance, and business teams.

FinOps in cloud computing is intended for helping enterprises make the costs of cloud resources predicable, transparent, and accountable. This ensures that enterprises can control and optimize costs while pursuing technology agility and innovation.

For more information about cost insights and cost optimization, see Cost management suite overview.

Implementation of FinOps

If you want to use FinOps to achieve the expected results, an enterprise must meet the following conditions:

  • In the preparation stage, build an internal FinOps framework and team, complete cultural transformation, and set up FinOps strategic goals.

  • In the implementation stage, build a comprehensive resource and cost monitoring system, select proper cost optimization strategies, and develop a long-term operation mechanism to efficiently manage the costs of cloud resources.

image

The following section describes the preparation and implementation stages of FinOps.

Preparation stage before the implementation of FinOps

Before the implementation of FinOps, you must choose strategies and transform mindsets. These factors determine whether FinOps can be successfully implemented and whether the expected results can be achieved. You must pay close attention to the following items:

  • Promote FinOps values: In cloud-native scenarios, resources and costs are extremely dynamic and must be co-managed by multiple teams, such as the O&M, business, and finance teams. In this case, all members must develop cost control awareness.

  • Set up unified FinOps goals: A consensus must be formed among members from the top to the basic level of the enterprise to set up unified FinOps goals that fit the strategy of the company.

  • Build a shared responsibility system: A shared responsibility system must be built to ensure that all employees can assume corresponding responsibilities during the implementation process and work collaboratively to meet the FinOps goals.

Implementation stage of FinOps

Step 1: Cost insights

The cost insights feature is the first step in the implementation stage of FinOps and is integral throughout the entire FinOps process. Enterprises must build a cost monitoring system. The key capabilities of the system include business cost allocation, resource monitoring, and cost estimation. Different roles within an enterprise analyze cost insights in different perspectives due to their responsibilities.

image
  • IT directors or finance personnel: Check whether the total cost exceeds the budget and whether the cost trend is normal from a global perspective.

  • IT O&M engineers: When costs are unexpectedly high, check whether the resource billing strategy can be optimized at the resource level or work with the business team to identify the department or business that causes the anomaly.

  • Developers: Check the resource usage of the service, analyze the causes of cost increases, and assess optimization strategies.

In the cloud-native architecture, enterprises usually use cloud-native FinOps tools to resolve issues in business cost allocation. The cost management suite of Container Service for Kubernetes (ACK) provides the cost insights dashboard and an API to export cost data. You can directly use the multidimensional cost insights dashboard or build an internal FinOps system that integrates the cost API. For more information, see Best practices for the cost insights feature.

Step 2: Cost optimization

During the cost optimization phase, enterprises must assess the potential for cost optimization based on resource watermarks and the budget. Then, developers can determine cost optimization strategies based on resource allocation, billing strategies, and business conditions. Finally, cost optimization is implemented based on these strategies.

image
  • Select the business-unaware cost optimization strategy

    You can optimize resource allocation or billing strategies to reduce resource waste caused by low resource utilization.

    • Optimize the resource allocation of applications: You can use resource profiling to adjust resource requests and limits and optimize scheduling strategies.

    • Adjust the purchase strategy of cloud resources: Change the instance types, optimize the billing strategies, and release idle resources.

  • Select the business-aware optimization strategy

    • Select an appropriate scaling feature: Auto scaling is widely used in ACK clusters. In most cases, auto scaling is used in scenarios such as online workload scaling, large-scale computing and training, GPU-accelerated deep learning, inference and training based on shared GPU resources, and periodical workload scheduling. Auto scaling includes workload scaling and node scaling.

    • Colocation: The dynamic resource overcommitment feature can schedule resources that are allocated to pods but are not in use. You can also colocate latency-sensitive (LS) and best-effort (BE) workloads to improve resource utilization. For more information, see Overview of colocation.

Step 3: Cost control

After you gain insights from cost data and implement cost optimization strategies, you can use cost control to limit the length of the cost governance lifecycle. This helps prevent cost overruns in clusters and applications. For more information about how to control costs, see Cost control.

References

  • You can view the cost insights dashboard or use the HTTP API to view the costs of departments and applications. For more information, see Best practices for the cost insights feature and Call the Allocation API to query cost insights data.

  • If you want to simplify the configuration of resource requests and limits for containers, you can use resource profiling to obtain resource configuration suggestions for individual containers. This helps you adjust the application resource configuration. For more information, see Resource profiling.

  • In multi-cloud and hybrid cloud scenarios, resources from different cloud service providers or in on-premises environments are used. For more information about how to use Distributed Cloud Container Platform for Kubernetes (ACK One) to manage hybrid cloud costs, see Cluster cost insights.