Assessment cluster configuration method and computing device

By receiving tenant configuration information and historical workload sequences, and using a bin packing problem algorithm to predict the number of compute nodes and cost of cluster configuration in cloud services, this addresses the shortcomings of existing cluster configuration assessment technologies and improves user experience.

CN122070536APending Publication Date: 2026-05-19HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
Filing Date
2024-03-05
Publication Date
2026-05-19

AI Technical Summary

Technical Problem

Existing technologies cannot quickly assess the scalability and diversity of user workloads in cloud services, causing users to rely on historical experience and trial and error when selecting cluster configurations, lacking effective evaluation methods, which affects user experience.

Method used

A method for evaluating cluster configuration is provided. By receiving tenant configuration information and workload sequences over historical time periods, and using the historical sequences and algorithms for solving the bin packing problem, the method predicts the number of compute nodes and cost for each cluster, and displays the prediction results to the tenant.

Benefits of technology

It improves the accuracy and efficiency of users' cluster configuration evaluation, helps users make scientific decisions before selecting cluster configurations, and enhances the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122070536A_ABST
    Figure CN122070536A_ABST
Patent Text Reader

Abstract

The invention provides a method for evaluating cluster configuration and computing equipment, cluster configuration and a historical time period corresponding to each cluster can be determined based on configuration information input by tenants, and then a historical sequence of the tenants in the historical time period is obtained based on the historical time period; the execution condition of the workload sequence is predicted based on the current cluster configuration, the number of the computing nodes corresponding to each cluster can be obtained, and the cost corresponding to the cluster configuration can be evaluated based on the determined type of the computing nodes corresponding to the cluster configuration and the number of the computing nodes. And the cost corresponding to each cluster is output to the tenant, so that the requirements of the tenant can be better met, and the service experience of the tenant is improved.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to Russian Patent Application No. 2023128504, filed on November 3, 2023, entitled "A method and apparatus for evaluating cluster configuration", the entire contents of which are incorporated herein by reference. Technical Field

[0002] This application relates to the field of cloud services, and more specifically, to a method for evaluating cluster configuration and computing devices. Background Technology

[0003] Currently, using container orchestration services provided by cloud service providers to deploy containerized applications is becoming a mainstream trend. For users of this service, they need to be responsible for managing the virtual cluster configuration consisting of one or more nodes (for example, the cluster configuration includes the type and number of compute nodes in the cluster) to ensure that containers can run normally on these nodes.

[0004] While existing solutions include tools for monitoring the cost of cluster configurations, the scalability, diversity, and dynamism of user workloads make it difficult to quickly evaluate a chosen cluster configuration before deploying it in the cloud. Therefore, users often make decisions based on historical experience, guesswork, and trial and error. To avoid making poor choices, users would much prefer to evaluate a specific cluster configuration before using it.

[0005] Therefore, a method for evaluating cluster configuration is needed to better meet user needs and improve user experience. Summary of the Invention

[0006] This application provides a method for evaluating cluster configuration, which can better meet user needs and improve user experience.

[0007] Firstly, a method for evaluating cluster configuration is provided. This method can be applied to a cloud service system and can be executed by a cloud management platform (or a communication device within the cloud management platform), or by a component (e.g., a chip or circuit) of the cloud management platform (or the communication device within the cloud management platform). In this application, the cloud service system includes multiple clusters, and each cluster includes at least one computing node.

[0008] The method includes: receiving configuration information from a tenant, the configuration information indicating the cluster configuration corresponding to each of at least one cluster and the historical time period in which the tenant uses the cloud service system, wherein each of the at least one cluster is a cluster to be evaluated, and the cluster configuration includes at least one type of compute node; displaying a prediction result to the tenant, the prediction result including the cost corresponding to each of the at least one cluster, wherein the cost corresponding to each cluster is determined based on the at least one type of compute node included in the cluster configuration corresponding to each cluster and the number of compute nodes of each type, and the number of compute nodes of each type is obtained based on the execution status of the historical sequence corresponding to each cluster, the historical sequence being the sequence in which the tenant creates and / or deletes service instances in the cloud service system during a historical time period.

[0009] In this application, each of the at least one cluster is a cluster to be evaluated.

[0010] The "cluster configuration" in this application includes the types of compute nodes. It should be understood that a cluster can typically include multiple types of compute nodes. Optionally, the cluster configuration may also include a CA policy.

[0011] In this application, a sequence of pod creation and / or pod deletion within a tenant's historical cluster can be obtained from the cloud service system using a historical time period. This can also be understood as the cloud service system storing a sequence of the tenant's workloads within a historical time period (i.e., a historical sequence). For example, this historical cluster could be a cluster previously used by the tenant. For example, the services performed by this historical cluster might be similar to the services performed by the cluster currently needed by the tenant; for example, both might be used for high-storage services or high-computation services.

[0012] For example, in this application, the prediction results displayed to the tenant can be presented in the form of graphs, tables, or text. This can also be understood as providing the tenant with an interface on which the prediction results are displayed in the form of graphs, tables, or text.

[0013] Based on the above scheme, this application can determine the cluster configuration and historical time period corresponding to each cluster to be evaluated based on the configuration information input by the tenant. Then, based on the historical time period, the historical sequence of the tenant in that historical time period can be obtained. Based on the current cluster configuration, the number of computing nodes corresponding to each cluster to be evaluated can be predicted. Based on the type and number of computing nodes corresponding to the determined cluster configuration, the cost corresponding to the cluster configuration can be evaluated, and the cost corresponding to each cluster to be evaluated can be output to the tenant. This can better meet the user's needs and improve the user's business experience.

[0014] In conjunction with the first aspect, in one possible implementation, the configuration information includes at least one series of computing nodes and at least one historical time period, wherein the series of each computing node in the at least one series of computing nodes indicates the type of computing node, each cluster in the at least one cluster corresponds to at least one series of computing nodes, and at least one historical time period corresponds one-to-one with at least one cluster.

[0015] This scenario is particularly relevant when tenants only know their cluster configuration requirements but are not very familiar with the specific compute node models. For example, a user can specify at least one series of compute nodes based on their needs, such as meeting high storage requirements or general-purpose enhanced computing needs. Alternatively, it can be understood that the tenant only knows their general needs; for instance, they know their required cluster should include a large amount of memory (e.g., a memory-to-CPU ratio of 5:2), or they need a large amount of CPU (e.g., a memory-to-CPU ratio of 1:6), but they are unclear about the specific resource allocation between memory and CPU, or in other words, they are unaware of the specific node models.

[0016] In conjunction with the first aspect, in one possible implementation, the method further includes: determining at least two moments in a historical time period, and determining a sequence corresponding to each of the at least two moments; based on the sequence corresponding to each moment and a first algorithm, determining the model of at least one computing node corresponding to each cluster in a series of computing nodes, wherein the series of computing nodes includes the model of at least one computing node, and the first algorithm is an algorithm for solving the bin packing problem.

[0017] In this application, the type of a computing node can be indicated by its model number or by its series. A series of computing nodes can include one or more model numbers; therefore, it can be understood that the "model number" is fine-grained information indicating the type of a computing node, while the "series of computing nodes" is coarse-grained information indicating the type of a computing node.

[0018] Based on the above solution, in this scenario, the recommended compute node models can be predicted first, and the cost of the recommended cluster configuration can be further predicted. This allows for the calculation of the cost for each recommended cluster. This model is geared towards tenants who prefer guided configuration tuning solutions. This solution also meets user needs and improves the user's business experience.

[0019] In conjunction with the first aspect, in one possible implementation, the configuration information includes the model of at least one computing node and at least one historical time period, wherein the model of each computing node in the at least one computing node model indicates the type of computing node, each cluster in the at least one cluster corresponds to the model of at least one computing node, and the at least one historical time period corresponds one-to-one with the at least one cluster.

[0020] This scenario is suitable when the tenant already knows that they need to evaluate the cluster configuration. For example, in this scenario, the tenant already knows the specific cluster configuration required for each cluster. For instance, for cluster #1, the tenant can enter the cluster configuration for cluster #1. For example, the configuration information includes: compute node model #a1, compute node model #b1, and compute node model #c1. Similarly, for cluster #2, the tenant can enter the cluster configuration for cluster #2. For example, the configuration information includes: compute node model #a2, compute node model #b2, and compute node model #c2.

[0021] In this application, the configuration information also includes historical time periods entered by the tenant. For example, the historical time period entered by the tenant is from 00:00 on January 1, 2020 to 00:00 on January 7, 2020; another example is that the historical time period entered by the tenant could be "last month", "last week", "last two weeks", etc. In this case, based on the historical time period information entered by the tenant, the cloud management platform can obtain the tenant's workload sequence within that time period. This workload sequence can be a sequence of pods created and / or deleted by the tenant at each moment. For example, if the historical time period entered by the tenant is "last week", then the cloud management platform can obtain the requests for pods created and deleted by the tenant in the last week.

[0022] In conjunction with the first aspect, in one possible implementation, the configuration information further includes at least one cluster autoscaling (CA) policy, with each cluster corresponding to at least one CA policy. Each of the at least one CA policy is a policy for creating and / or deleting nodes in the cluster during prediction. The method further includes: predicting the number of computing nodes corresponding to each model of at least one computing node in each cluster based on the model of at least one computing node corresponding to each cluster, the at least one CA policy, and the execution status of historical sequences.

[0023] For example, the CA strategy may include one or more of the following: prioritizing the deletion of nodes with low utilization; in scenarios with high storage requirements, the type of nodes created may be a high-memory series; for clusters with memory optimization requirements, such as when the memory to CPU ratio is as high as 1:8, it is suitable for database scenarios with high memory capacity requirements; for clusters with general computing enhancement requirements, the computing performance is strong and stable, providing ultra-high network bandwidth and PPS packet sending and receiving capabilities, which can meet the requirements of game scenarios.

[0024] In conjunction with the first aspect, in one possible implementation, the method further includes: determining the initial number of computing nodes corresponding to each model of the at least one computing node at the start time of a historical time period based on the model of the at least one computing node corresponding to each cluster in at least one cluster, the sequence, and the first algorithm; predicting the number of computing nodes corresponding to each model of the at least one computing node in each cluster based on the model of the at least one computing node corresponding to each cluster, at least one CA strategy, and the execution status of the historical sequence, including: predicting the number of computing nodes corresponding to each model of the at least one computing node in each cluster based on the model of the at least one computing node corresponding to each cluster, at least one CA strategy, the initial number of computing nodes corresponding to each model of the at least one computing node at the start time, and the execution status of the historical sequence.

[0025] Based on the above solution, in this scenario, tenants can specify any cluster configuration and evaluate its cost by comparing it with the cost of the current cluster configuration. This mode makes it very convenient for users who prefer to manually adjust cluster configurations to estimate the potential cost savings of switching to another configuration, meeting user needs and improving user experience.

[0026] In conjunction with the first aspect, in one possible implementation, the prediction result also includes at least one of the following: the variation in cost between each cluster in at least one cluster, the maximum number of each model of at least one compute node, and the minimum number of each model of at least one compute node.

[0027] Secondly, this application proposes a computing device for performing the method described in the first aspect. Specifically, the device may include units and / or modules for performing the method for evaluating cluster configuration proposed in this application, such as transceiver units and / or processing units. In this application, the communication device is applied to a cloud management platform. Alternatively, the communication device is a cloud management platform.

[0028] Thirdly, this application provides a computing device comprising: at least one processor for executing a computer program or instructions stored in a memory to perform the method described in the first aspect. Optionally, the device further comprises a memory for storing the computer program or instructions. Optionally, the device further comprises a communication interface through which the processor reads the computer program or instructions stored in the memory.

[0029] In one implementation, the device is a computing device applied in a cloud management platform that enables the implementation of the aforementioned method for evaluating cluster configuration within a chip. Alternatively, the device is a cloud management platform.

[0030] In another implementation, the device is a chip, chip system, or circuit used in a cloud management platform to implement the above-described method for evaluating cluster configuration.

[0031] Fourthly, this application provides a processor, including: an input circuit, an output circuit, and a processing circuit. The processing circuit is used to receive signals through the input circuit and to transmit signals through the output circuit, causing the processor to execute the method described in the first aspect.

[0032] In specific implementation, the processor can be one or more chips, the input circuit can be input pins, the output circuit can be output pins, and the processing circuit can be transistors, gate circuits, flip-flops, and various logic circuits. The input signal received by the input circuit can be received and input by, for example, but not limited to, a transceiver, and the signal output by the output circuit can be, for example, but not limited to, output to and transmitted by a transmitter. Furthermore, the input circuit and the output circuit can be the same circuit, which is used as both the input circuit and the output circuit at different times. This application does not limit the specific implementation of the processor and various circuits.

[0033] Unless otherwise specified, or if it does not contradict its actual function or internal logic in the relevant description, the transmission and acquisition / reception operations involved in the processor can be understood as processor output and reception, input and other operations, or as transmission and reception operations performed by radio frequency circuits and antennas. This application does not limit them in this regard.

[0034] Fifthly, a processing apparatus is provided, including a processor and a memory. The processor is used to read instructions stored in the memory and to receive signals via a transceiver and transmit signals via a transmitter to execute the method described in the first aspect.

[0035] Optionally, the processor may be one or more, and the memory may be one or more.

[0036] Optionally, the memory may be integrated with the processor, or the memory may be separated from the processor.

[0037] In the specific implementation process, the memory can be a non-transitory memory, such as read-only memory (ROM), which can be integrated with the processor on the same chip or set on different chips. The embodiments of this application do not limit the type of memory or the way the memory and processor are set.

[0038] It should be understood that the relevant data interaction process, such as sending indication information, can be the process of the processor outputting indication information, and receiving capability information can be the process of the processor receiving input capability information. Specifically, the data output by the processor can be sent to the transmitter, and the input data received by the processor can come from the transceiver. Here, the transmitter and the transceiver can be collectively referred to as transceivers.

[0039] The processing device mentioned in the fifth aspect above can be one or more chips. The processor in the processing device can be implemented in hardware or software. When implemented in hardware, the processor can be a logic circuit, integrated circuit, etc.; when implemented in software, the processor can be a general-purpose processor that reads software code stored in memory. This memory can be integrated into the processor or located outside the processor and exist independently.

[0040] In a sixth aspect, a computing cluster is provided, including at least one computing device, each computing device including a processor and a memory; the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, such that the computing device cluster performs the method described in any possible implementation of the first aspect.

[0041] Optionally, the processor can be a general-purpose processor, which can be implemented in hardware or software. When implemented in hardware, the processor can be a logic circuit, integrated circuit, etc.; when implemented in software, the processor can be a general-purpose processor that reads software code stored in memory. This memory can be integrated into the processor or located outside the processor and exist independently.

[0042] In a seventh aspect, a computer-readable storage medium is provided that stores program code for execution by a device, the program code including the method described in the first aspect.

[0043] Eighthly, a computer program product containing instructions is provided, which, when run on a computer, causes the computer to perform the method described in the first aspect.

[0044] A ninth aspect provides a chip system including a processor for calling and running a computer program from a memory, causing a device equipped with the chip system to perform the method of the first aspect described above. Attached Figure Description

[0045] Figure 1 This is a schematic diagram illustrating the types of computing nodes shown in this application.

[0046] Figure 2 This is a schematic diagram of a cloud service scenario to which this application applies.

[0047] Figure 3 This is a schematic flowchart of a method 300 for evaluating cluster configuration provided in this application.

[0048] Figure 4 This is a schematic block diagram of the communication device 600 provided in this application.

[0049] Figure 5 This is a schematic block diagram of the communication device 700 provided in this application.

[0050] Figure 6 This is a schematic diagram of the architecture of a computing device cluster provided in this application.

[0051] Figure 7 This is a schematic diagram showing the connection between computing devices 800A and 800B provided in this application via a network. Detailed Implementation

[0052] To better understand the technical solutions provided in this application, the following section will first introduce some of the technical terms involved in this application.

[0053] (1) Service Instance: In this application, "service instance" can be understood as "pod". A pod is the smallest unit created or deployed in Kubernetes. A pod represents a process running on a cluster. A pod consists of one or more containers. Containers in a pod share network, storage, and computing resources and run on the same Docker host. A pod can run multiple containers, but in a production environment, a pod is usually composed of a single container or multiple containers with strong correlation and complementarity. A pod can only run on one host, while a host can have multiple pods.

[0054] (2) Cluster: can be understood as a group of nodes used to run containerized applications. It should be understood that each cluster has at least one worker node.

[0055] (3) Types of compute nodes: This can be understood as the specific configuration of a node in terms of resource capacity. For example, the configuration of a node's central processing unit (CPU) (which can also be understood as CPU cores) and / or memory. Figure 1 This is a schematic diagram illustrating the types of computing nodes shown in this application, such as... Figure 1 As illustrated, for example, the type of compute node can be characterized by the size of the memory and the size of the central processing unit (CPU) included in the node. As mentioned earlier, all pods can be allocated within a node, and the specifications of a pod can be characterized by the size of its memory and the size of its CPU. For example, the resource corresponding to the type of compute node could be 128U256G, meaning that the node's CPU size is 128U and the node's memory size is 256G.

[0056] In this application, the type of a computing node can be indicated by its model number or by its series. A series of computing nodes can include one or more model numbers; therefore, it can be understood that the "model number" is fine-grained information indicating the type of a computing node, while the "series of computing nodes" is coarse-grained information indicating the type of a computing node.

[0057] For example, the compute node series #A can indicate a type of compute node, such as a compute node type whose resource ratio is 1:8 of CPU and memory. For example, the compute node series can be a type of server, such as a high-memory server or a high-computing-capacity server.

[0058] For example, the #A series of compute nodes includes three compute node models: compute node model #A1, compute node model #A2, and compute node model #A3. Compute node model #A1 can indicate a specific type of compute node, for example, the resource corresponding to this type of compute node is 1U 8G; compute node model #A2 can indicate another specific type of compute node, for example, the resource corresponding to this type of compute node is 2U 16G; compute node model #A3 can indicate yet another specific type of compute node, for example, the resource corresponding to this type of compute node is 3U 24G, and so on.

[0059] (4) Node pool: can be understood as a group of nodes of the same type.

[0060] (5) Cluster Autoscaler (CA): This component automatically adjusts the cluster size to ensure that all pods have a place to run, while promptly removing unnecessary nodes. It can also be understood as ensuring that once a pod is created, it has a node to run on. If the resources of a node are full, a new node needs to be created to accommodate the pod. Additionally, a node can be deleted if pods on it are deleted, resulting in the node not being occupied or if pods on that node can be placed on other nodes. The "CA strategy" in this application can be understood as a strategy for predicting the creation and / or deletion of nodes in the cluster.

[0061] (6) Workload: This can be understood as a number of applications, represented as a group of pods running on the cluster. For example, at some point, there may be requests to create and / or delete pods simultaneously. The “historical sequence” in this application can be understood as the workload within a historical time period.

[0062] (7) Tenant: This is a logical concept. For example, after an individual or enterprise registers an account on a public cloud platform, the platform considers us to be a "tenant". The cloud system will allocate cloud resources based on the "tenant". Typically, tenants can rent services provided by cloud service providers on the cloud computing platform. Tenants need to provide identity information, contact person and contact information, as well as the deduction account information for paying cloud service rental fees.

[0063] It should be understood that cloud service tenants can be individuals, businesses, schools, hospitals, government agencies, etc.

[0064] (8) Cloud management platform: can be used to provide access interfaces (e.g., interface or application programming interface (API)). Tenants can operate the client to remotely access the access interface to register a cloud account and password on the cloud management platform and log in to the cloud management platform. After the cloud management platform successfully authenticates the cloud account and password, the tenant can further pay to select and purchase a virtual machine of specific specifications (processor, memory, disk) on the cloud management platform. After the purchase is successful, the cloud management platform provides the remote login account and password of the purchased virtual machine. The client can remotely log in to the virtual machine and install and run the tenant's application in the virtual machine.

[0065] Cloud servers are one of the most popular forms of computing resource services today, especially in the era of cloud computing, where they are widely used to host websites, applications, databases, and various other applications. When using cloud servers, it is sometimes necessary to configure multiple Internet Protocol (IP) addresses to extend the services offered by applications. For example, building a cluster of web servers, providing services with different network characteristics, or having different clients access the internet all require configuring multiple IP addresses on the cloud server.

[0066] Figure 2 This is a schematic diagram of a cloud service scenario used in this application, such as... Figure 2 As shown, this cloud scenario may include: a cloud management platform 210, the Internet 220, and a client 230. For example... Figure 2 As shown, the cloud management platform 210 is used to manage the infrastructure that provides multiple cloud services. The infrastructure includes multiple cloud data centers, each containing multiple servers, and each server containing cloud service resources to provide corresponding cloud services to tenants. In this embodiment, the cloud service resources may be cloud databases.

[0067] The cloud management platform 210 can be located in a cloud data center and can provide access interfaces (such as user interfaces or application program interfaces, APIs). Tenants can use client 230 to remotely access the access interface to register a cloud account and password on the cloud management platform 210 and log in. After successful authentication of the cloud account and password on the cloud management platform 210, the tenant can further select and purchase virtual machines with specific specifications (processor, memory, disk) on the cloud management platform 210. After successful purchase, the cloud management platform 210 provides the remote login account and password for the purchased virtual machine, and client 230 can remotely log in to the virtual machine to install and run the tenant's applications. Therefore, tenants can create, manage, log in to, and operate virtual machines in the cloud data center through the cloud management platform 210.

[0068] The cloud management platform 210 includes, but is not limited to, a tenant console, compute management services, network management services, storage management services, authentication services, and image management services. The tenant console provides an interface or API for interaction with tenants. The compute management services manage servers running virtual machines and containers, as well as bare metal servers. The network management services manage network services (such as gateways and firewalls). The storage management services manage storage services (such as data bucket services). The authentication services manage tenant account passwords. The image management services manage virtual machine images. Tenants use client 230 and can log in to the cloud management platform 210 via the internet 220 to manage their rented cloud services.

[0069] Currently, deploying containerized applications using container orchestration services provided by cloud service providers is becoming a mainstream trend. Users of these services are responsible for managing virtual cluster configurations consisting of one or more nodes (e.g., the type and number of nodes in the cluster) to ensure containers can run correctly on these nodes. While existing solutions include tools to monitor the cost of cluster configurations, the scalability, diversity, and dynamism of user workloads make it difficult to quickly evaluate a chosen cluster configuration before using it in the cloud. Therefore, users often make decisions based on historical experience, guesswork, and trial and error. To avoid making poor choices, users would prefer to evaluate specific cluster configurations before using them. Therefore, a method for evaluating cluster configurations is needed to better meet user needs and improve user experience.

[0070] In view of this, this application provides a method for evaluating cluster configuration. Based on the configuration information input by the tenant, the cluster configuration and historical time period corresponding to each cluster can be determined. Then, based on the historical time period, the historical sequence of the tenant in that historical time period can be obtained. Based on the current cluster configuration and the execution status of the historical sequence, the number of computing nodes corresponding to each cluster can be obtained. Based on the type and number of computing nodes corresponding to the determined cluster configuration, the cost corresponding to the cluster configuration can be evaluated, and the predicted cost corresponding to each cluster can be displayed to the tenant, thereby better meeting the user's needs and improving the user's business experience.

[0071] Figure 3 This is an exemplary flowchart of a method 300 for evaluating cluster configuration provided in this application. For example, the method can be... Figure 2 The cloud management platform 210 in the cloud service system executes, and the cloud service system includes multiple clusters, each of which includes at least one node, such as Figure 3 As shown, the method includes: 310. Receive configuration information from the tenant, which indicates the cluster configuration corresponding to each cluster in at least one cluster and the historical time period during which the tenant used the cloud service system.

[0072] In this application, each of the at least one cluster is a cluster to be evaluated.

[0073] In this application, "cluster configuration" can be understood as the type of compute nodes corresponding to each cluster. It should be understood that a cluster can typically include multiple types of compute nodes.

[0074] In this application, a sequence of pod creation and / or pod deletion within a tenant's historical cluster can be obtained from the cloud service system using a historical time period. This can also be understood as the cloud service system storing a sequence of the tenant's workloads within a historical time period (i.e., a historical sequence). For example, this historical cluster could be a cluster previously used by the tenant. For example, the services performed by this historical cluster might be similar to the services performed by the cluster currently needed by the tenant; for example, both might be used for high-storage services or high-computation services.

[0075] Specifically, this application proposes two scenarios for evaluating the cost of cluster configuration, and the solutions provided in this application are described below for each scenario.

[0076] Scene 1: In one possible implementation of this application, Scenario 1 is suitable when the tenant already knows exactly what cluster configuration needs to be evaluated. In Scenario 1, the configuration information may include the model of at least one compute node and at least one historical time period. Each of the at least one clusters (i.e., the cluster to be evaluated) corresponds to at least one compute node model. This can also be understood as the cluster configuration of each cluster in this application including the model of at least one compute node. In this application, each cluster corresponds to one historical time period. For example, for any cluster, the tenant may specify one or more historical time periods. It should be understood that, typically, the cluster configuration of a cluster may include the models of multiple compute nodes. This application does not limit the number of specified historical time periods corresponding to each cluster.

[0077] In other words, in this scenario, the tenant already knows the specific cluster configuration required for each cluster. For example, for cluster #1, the tenant can input the cluster configuration for cluster #1, such as: compute node model #a1, compute node model #b1, compute node model #b2, and compute node model #c1. Similarly, for cluster #2, the tenant can input the cluster configuration for cluster #2, such as: compute node model #a2, compute node model #b2, and compute node model #c2.

[0078] Additionally, this configuration information includes historical time periods entered by the tenant. For example, the tenant might enter a historical time period from 00:00 on January 1, 2020 to 00:00 on January 7, 2020; or the tenant might enter a historical time period such as "last month," "last week," or "last two weeks." Based on this historical time period information, the cloud management platform can obtain the tenant's workload sequence within that time period. This workload sequence can be a sequence of pod creation and / or pod deletion requests made by the tenant at each point in time. For example, if the tenant enters a historical time period of "last week," the cloud management platform can obtain the tenant's pod creation and deletion requests for the most recent week.

[0079] In this application, the configuration information may further include at least one cluster autoscaling (CA) policy, wherein each cluster corresponds to at least one CA policy, and each CA policy is a policy for creating and / or deleting nodes. The method further includes: determining the number of computing nodes corresponding to each model of at least one computing node in each cluster based on the model of at least one computing node corresponding to each cluster, the at least one CA policy, and the execution status of the historical sequence. For example, in scenario one, the CA policy could be to prioritize deleting nodes with low utilization in the node pool.

[0080] Optionally, in some scenarios, tenants can also pre-input the estimated number of compute nodes. For example, tenants can input the estimated number of each compute node, which makes it easier for the cloud service system to make predictions.

[0081] Specifically, the prediction steps in Scenario 1 are as follows: First, based on the tenant input, the model, historical sequence, and algorithm for solving the bin packing problem of each cluster corresponding to each compute node are used to determine the initial number of each compute node. For example, the algorithm can be an integer linear programming (ILP) solver or a heuristic algorithm. The purpose of determining the initial number of each compute node is to accommodate all pods running at the start of the prediction and to minimize cluster costs.

[0082] Next, the order of arrival times of pod creation and deletion requests within a historical time period can be obtained from the tenant's records to process pod creation and deletion requests and reconstruct the historical sequence of workloads. For example, all pod creation requests at a single moment are moved to the suspended pod list. Then, for each suspended pod, an attempt is made to schedule it on an existing compute node of the same type using a pod scheduling policy. If a pod is successfully scheduled, it is removed from the suspended pod list. If the suspended pod list is not empty (i.e., it contains at least one pod), the CA algorithm is invoked to add a new compute node to the cluster to accommodate all the suspended pods.

[0083] Additionally, when processing pod deletion requests, it is only necessary to release the resources of the compute nodes occupied by the pod. Furthermore, during the forecasting process, the CA (Compatibility and Optimization) strategy is periodically invoked to perform cluster scaling-down operations, deleting unused or underutilized nodes.

[0084] In this application, the predicted evolution of cluster size and structure is jointly determined by the decisions made by the workload sequence, pod scheduling, and CA algorithm. For example, the pod scheduling and CA algorithm in this application can adopt real pod scheduling and CA algorithms on the cloud. Therefore, the CA strategy will also use real cloud CA algorithms, which can ensure the authenticity of the prediction results and make the cluster cost output to the tenants valuable for reference.

[0085] In this application, the pod scheduling strategy can be understood as the strategy for placing pods on compute nodes. This application does not limit the pod scheduling strategy; any commonly used pod scheduling strategy in existing technologies will suffice. For example, in one possible implementation, pod creation requests or resource pod deletion requests can be taken from historical sequences, i.e., obtained through historical time periods input by the tenant. In another possible implementation, the tenant can also perform the pod rebalancing process using other methods, i.e., calculating the optimal size for the pod based on historical data of pod resource utilization. This process is implemented by calling other algorithms. Executing the pod rebalancing process will cause changes in the workload sequence; the updated pod sequence will replace the original pod sequence and be used in the prediction process, but the specific prediction process remains unchanged.

[0086] Finally, the cost of the cluster configuration corresponding to each of the at least one cluster is determined. During the prediction process, the cluster cost at each time point is the sum of the prices based on the type of at least one compute node in the cluster and the number of compute nodes corresponding to each type of compute node, while the total cost of the cluster configuration corresponding to the cluster is the cumulative cost over the prediction period.

[0087] Based on the technical solution provided in this application, in Scenario 1, tenants can specify any cluster configuration and evaluate its cost by comparing it with the cost of the current cluster configuration. This mode allows tenants who prefer to manually adjust cluster configurations to easily estimate the potential cost savings of switching to another configuration, meeting user needs and improving the user's business experience.

[0088] Scene 2: Scenario 2 is suitable for situations where tenants only know their cluster configuration requirements but are not familiar with the specific compute node models. In Scenario 2, the configuration information includes at least one compute node series and at least one historical time period. Each compute node series within the at least one compute node series indicates the type of compute node. Each cluster (i.e., each cluster to be evaluated) corresponds to at least one compute node series, and the at least one historical time period corresponds one-to-one with at least one cluster. In Scenario 2, for each cluster, tenants can specify one or more compute node series, which reflect the tenant's requirements.

[0089] For example, suppose a tenant knows that its cluster requirements are high storage or general-purpose computing enhancements, etc. Based on these requirements, the tenant can specify the corresponding series of compute nodes. Alternatively, it can be understood that the tenant only knows its general needs; for example, the tenant knows that its required cluster should include a large amount of memory (e.g., a memory-to-CPU ratio of 5:2), or that it needs a large amount of CPU (e.g., a memory-to-CPU ratio of 1:6), but it is unclear about the specific resource configuration between memory and CPU, or in other words, the tenant is not actually aware of the specific node models.

[0090] Specifically, the prediction steps in Scenario 2 are as follows: Figure 5 As shown: First, based on the historical time period, historical sequence, and the first algorithm, the model of at least one computing node corresponding to each cluster is determined in each series of computing nodes.

[0091] As mentioned above, in this application, the type of a computing node can be indicated by its model number or by its series. A series of computing nodes can include one or more model numbers; therefore, it can be understood that "compute node model number" is fine-grained information indicating the node type, while "compute node series" is coarse-grained information indicating the node model number. In this application, each series of computing nodes can include one or more model numbers.

[0092] In this application, the first algorithm is an algorithm for solving the bin packing problem.

[0093] Specifically, for example, several moments in the historical sequence can be selected based on the peak of resource allocation. For each selected moment, information about the set of pods running at that moment (i.e., created and / or deleted pods) is recorded, and the following bin packing problem is solved: find the set of nodes with the minimum total cost, satisfying the following two conditions: (1) all recorded pods can be loaded onto these compute node models, and (2) the compute node models are included in the series of compute nodes given by the user. For example, this problem is solved using an ILP solver or a heuristic algorithm, and the results include the models and number of compute nodes used. The relative usage frequency of different compute node models can be calculated by aggregating the solution results at different times. Based on this, the top C most commonly used compute node models are selected as candidate types, where C is a parameter. Based on the obtained candidate compute node models, the solution generates several cluster configurations. This may include all possible combinations of compute node models with a single candidate compute node model size between 2 and MIN (NT_MAX, NT_MAX_USER), where NT_MAX is a parameter that can be set in the algorithm and indicates the maximum number of compute node models; NT_MAX_USER can be set by the tenant and indicates the maximum number of compute node models. If the tenant does not set a value for this parameter, it can be omitted. Candidate configurations with multiple compute node models can also be generated using different CA strategies.

[0094] For example, suppose five moments are selected within this historical time period. The model of the compute node and the number of times each compute node model is used are calculated for each moment. Assume these five moments identify a total of 10 compute node models. Then, the usage frequency of these 10 compute node models is sorted. Some compute node models are used 10 times, some 8 times, some 2 times, and so on. The top five compute node models with the highest usage frequency can then be selected. Let's assume these five compute node models are: Model #A1, Model #B1, Model #B2, Model #C1, and Model #D1. Based on the set parameters NT_MAX and / or NT_MAX_USER, different cluster configurations are generated through permutations and combinations. Assuming the tenant sets NT_MAX_USER to 5 and the algorithm itself sets NT_MAX to 2, then the selected five compute node models can each be selected from values ​​between 2 and 5 to construct different combinations of compute node models. This can also be understood as the parameters "NT_MAX" and "NT_MAX_USER" indicating the number of compute node signals in each combination. For example, one possible combination of compute node models is: compute node model #A1, compute node model #B1; another possible combination is compute node model #A1, compute node model #B1, compute node model #B2; yet another possible combination could be: compute node model #A1, compute node model #B1, compute node model #B2, compute node model #C1, and so on. Thus, through prediction, the combination of compute node models corresponding to each cluster in Scenario 1 can be obtained.

[0095] After determining the combination of compute node types for each cluster, the steps in Scenario 1 can be used to make predictions, thereby determining the number of compute nodes corresponding to each compute node type. Therefore, the subsequent steps in Scenario 2 can be understood by referring to the steps in Scenario 1 and will not be repeated here. In Scenario 2, a prediction needs to be made for each combination of determined compute node types (i.e., each tenant for each compute node type executes each step in Scenario 1 once).

[0096] Based on the technical solution provided in this application, in Scenario 2, a recommended cluster configuration can be calculated through cloud services. This includes, for example, the series and model of the compute nodes used, the number of nodes corresponding to each node model, and predictions of the recommended cluster configuration. This optimizes cluster costs, and this model is geared towards tenants who prefer guided configuration tuning solutions. This solution also meets user needs and improves user experience.

[0097] The above technical solution can also be understood as follows: Based on the cluster configuration corresponding to each cluster, the execution status of the sequence is predicted to determine the number of computing nodes corresponding to each cluster configuration; based on the number of computing nodes and the type of computing nodes corresponding to the cluster configuration, the cost corresponding to each cluster is determined. In other words, the cost corresponding to each cluster is determined based on at least one type of computing node and the number of computing nodes of each type. The number of computing nodes is obtained by predicting the execution status of the sequence based on the cluster configuration corresponding to each cluster, while the type of computing nodes is determined based on the cluster configuration.

[0098] 320, Show the forecast results to the tenant.

[0099] In this application, the prediction results displayed to tenants by the cloud management platform may include the following: the total cluster cost for each cluster in at least one cluster, and the cost changes between the clusters.

[0100] As mentioned earlier, the cost of a cluster is typically determined by the type and number of compute nodes in the cluster. Optionally, the maximum and minimum number of compute nodes for each type can be provided to the tenant.

[0101] For example, in this application, the prediction results displayed to the tenant can be presented in the form of graphs, tables, or text. This can also be understood as providing the tenant with an interface on which the prediction results are displayed in the form of graphs, tables, or text.

[0102] It should be noted that the cost of the cluster is determined by a combination of factors, including the price of the type of compute node used in each time unit, the number of nodes of that type, and the total runtime of the nodes.

[0103] It is understood that the term "and / or" in this article is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. Additionally, the character " / " in this article generally indicates that the preceding and following related objects have an "or" relationship.

[0104] Those skilled in the art will recognize that, based on the units and algorithm steps described in conjunction with the embodiments disclosed herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is implemented in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0105] This application embodiment can divide the computing device into functional modules according to the above method example. For example, each function can be divided into its own functional modules, or two or more functions can be integrated into one processing module. The integrated modules can be implemented in hardware or as software functional modules. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The following description uses the division of functional modules according to each function as an example.

[0106] Figure 6 This is a schematic block diagram of a communication device 600 provided in an embodiment of this application. As shown in the figure, the computing device 600 may include a transceiver module 610 and an output module 630. Optionally, it may also include a processing module 620.

[0107] The modules described above are used to execute the respective steps of the methods mentioned above, which will not be elaborated here.

[0108] It should also be understood that the computing device 600 here is embodied in the form of a functional unit. The term "unit" here may refer to application-specific integrated circuits (ASICs), electronic circuits, processors (e.g., shared processors, proprietary processors, or group processors) and memory for executing one or more software or firmware programs, combined logic circuits, and / or other suitable components that support the described functions.

[0109] The computing device 600 in each of the above schemes has the function of implementing the corresponding steps of the method 300. The function can be implemented in hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions; for example, the determining unit can be replaced by a processor to execute the transmit / receive operations and related processing operations in each method embodiment. Furthermore, the determining unit can be a processing circuit.

[0110] In one possible implementation, the computing device 600 may be a communication device used in the cloud management platform in the above method 300, which is used to perform the actions in the above method 300.

[0111] In another possible implementation, the computing device 600 may be the cloud management platform in the method 300 described above, which is used to perform the actions in the method 300 described above.

[0112] It should be pointed out that, Figure 6The computing device mentioned can be the cloud management platform (or the communication device in the cloud management platform) in the aforementioned method embodiments, or it can be the chip or chip system corresponding to the cloud management platform (or the communication device in the cloud management platform), such as a system on chip (SoC). The processing unit is the processor, microprocessor, or integrated circuit integrated on the chip. No limitation is made here.

[0113] Figure 7 This is a schematic block diagram of another computing device 700 provided in an embodiment of this application. As shown, the device 700 includes at least one processor 720. The processor 720 is coupled to a memory and is used to execute instructions stored in the memory to transmit and / or receive signals. Optionally, the device 700 also includes a memory 730 for storing instructions. Optionally, the device 700 also includes a transceiver 710, which is controlled by the processor 720 to transmit and / or receive signals.

[0114] It should be understood that the processor 720 and memory 730 described above can be combined into a single processing device, with the processor 720 executing the program code stored in the memory 730 to achieve the aforementioned functions. In specific implementations, the memory 730 can be integrated into the processor 720 or independent of the processor 720.

[0115] It should also be understood that transceiver 710 may include a transceiver (or receiver) and a transmitter (or transmitter). The transceiver may further include an antenna, and the number of antennas may be one or more. Transceiver 710 may have a communication interface or interface circuitry.

[0116] Specifically, the processor 720 in device 700 may correspond to the processing module 620 in device 600. The transceiver 710 in device 700 may correspond to the transceiver module 610 in device 600.

[0117] As one approach, the device 700 is used to implement the steps corresponding to the communication device applied in the cloud management platform in the above method 300 embodiment.

[0118] As an alternative, the device 700 is used to implement the steps corresponding to the cloud management platform in the above method 300 embodiment.

[0119] For example, processor 720 is used to execute computer programs or instructions stored in memory 730 to implement the various steps in method 300 above.

[0120] Figure 8 is a schematic diagram of the architecture of a computing device cluster provided in an embodiment of this application. The computing device cluster includes at least one computing device. This computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a desktop computer, a laptop computer, or a smartphone, or other terminal device. As shown in Figure 17, the computing device cluster includes at least one computing device 800. The memory 830 in one or more computing devices 800 in the computing device cluster can store the same instructions for performing the actions executed by the cloud management platform (or the communication device in the cloud management platform) in the above embodiment 300.

[0121] In some possible implementations, the memory 830 of one or more computing devices 800 in the computing device cluster may also store partial instructions for performing the actions executed by the cloud management platform (or the communication device in the cloud management platform) in the method 300 described in the above embodiments. In other words, a combination of one or more computing devices 800 can jointly execute instructions for performing the actions executed by the cloud management platform (or the communication device in the cloud management platform) described in the above embodiments.

[0122] It should be noted that the memory 830 in different computing devices 800 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the computing device 800. That is, the instructions stored in the memory 830 of different computing devices 800 can implement the functions of one or more modules of the transceiver module 810 and the processing module 820.

[0123] Alternatively, the memory 830 in different computing devices 800 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the cloud management platform (or the communication devices within the cloud management platform) corresponding to the aforementioned communication devices 600-700. That is, the instructions stored in the memory 830 of different computing devices 800 can implement the functions of one or more modules in the transceiver module 610 and the processing module 620.

[0124] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 9 illustrates one possible implementation. As shown in Figure 9, two computing devices, 800A and 800B, are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device.

[0125] It should be understood that the functions of computing device 800A shown in Figure 9 can also be performed by multiple computing devices 800. Similarly, the functions of computing device 800B can also be performed by multiple computing devices 800.

[0126] In this embodiment, a computer program product containing instructions is also provided. The computer program product may be a software or program product containing instructions capable of running on a computing device cluster or stored on any available medium. When run by the computing device cluster, it causes the computing device cluster to perform the methods provided above, or causes the computing device cluster to implement the functions of the apparatus provided above.

[0127] In this embodiment, a computer-readable storage medium is also provided. This computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., digital video disc (DVD)), or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that, when executed on a computing device, cause the computing device to perform the method described above.

[0128] In this embodiment, a computer-readable storage medium is also provided. This computer-readable storage medium can be any available medium that a computing device can store, or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state drive). The computer-readable storage medium includes instructions that, when executed by a cluster of computing devices, cause the cluster of computing devices to perform the method described above.

[0129] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0130] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.

[0131] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

[0132] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0133] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.

[0134] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0135] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the scope of the technology disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for evaluating cluster configuration, characterized in that, The method is applied to a cloud management platform in a cloud service system, the cloud service system including multiple clusters, each of the multiple clusters including at least one computing node, the method comprising: Receive configuration information from a tenant, the configuration information being used to indicate the cluster configuration corresponding to each of at least one cluster and the historical time period during which the tenant used the cloud service system, wherein each of the at least one cluster is a cluster to be evaluated, and the cluster configuration includes at least one type of compute node; The prediction results are displayed to the tenant. The prediction results include the cost corresponding to each of the at least one cluster. The cost corresponding to each cluster is determined based on the type of at least one compute node and the number of compute nodes of each type included in the cluster configuration of each cluster. The number of compute nodes of each type is obtained based on the execution status of the historical sequence corresponding to each cluster. The historical sequence is the sequence in which the tenant creates and / or deletes service instances in the cloud service system within the historical time period.

2. The method according to claim 1, characterized in that, The configuration information includes at least one series of computing nodes and at least one historical time period, wherein the series of each computing node in the at least one series of computing nodes indicates the type of computing node, each cluster in the at least one cluster corresponds to the series of the at least one computing node, and the at least one historical time period corresponds one-to-one with the at least one cluster.

3. The method according to claim 1 or 2, characterized in that, The method further includes: Within the historical time period, at least two moments are identified, and the historical sequence corresponding to each of the at least two moments is determined. Based on the historical sequence corresponding to each moment and the first algorithm, the model of at least one computing node corresponding to each cluster in the series of each computing node is determined respectively, wherein the series of each computing node includes the model of the at least one computing node, and the first algorithm is an algorithm for solving the bin packing problem.

4. The method according to claim 1, characterized in that, The configuration information includes the model of at least one computing node and at least one historical time period, wherein the model of each computing node in the at least one computing node model indicates the type of computing node, each cluster in the at least one cluster corresponds to the model of the at least one computing node, and the at least one historical time period corresponds one-to-one with the at least one cluster.

5. The method according to claim 3 or 4, characterized in that, The configuration information also includes at least one cluster autoscaling (CA) policy, with each cluster in the at least one cluster corresponding to one of the at least one CA policy. Each of the at least one CA policy is a policy for creating and / or deleting nodes in each cluster during prediction. The method further includes: Based on the model of the at least one compute node corresponding to each cluster in the at least one cluster, the at least one CA strategy, and the execution status of the historical sequence, predict the number of compute nodes corresponding to each model of the at least one compute node in each cluster.

6. The method according to claim 5, characterized in that, The method further includes: Based on the model of the at least one computing node corresponding to each cluster in the at least one cluster, the historical sequence, and the first algorithm, determine the initial number of computing nodes corresponding to each model of the at least one computing node at the start time of the historical time period. The step of predicting the number of computing nodes corresponding to each model of the at least one computing node in each cluster, based on the model of the at least one computing node corresponding to each cluster in the at least one cluster, the at least one CA strategy, and the execution status of the historical sequence, includes: Based on the model of the at least one compute node corresponding to each cluster in the at least one cluster, the at least one CA strategy, the initial number of compute nodes corresponding to each model of the at least one compute node at the start time, and the execution status of the historical sequence, predict the number of compute nodes corresponding to each model of the at least one compute node in each cluster.

7. The method according to any one of claims 3 to 6, characterized in that, The prediction results also include at least one of the following: The variation in cost between each cluster in the at least one cluster, the maximum number of each type of computing node, and the minimum number of each type of computing node.

8. A cloud management platform, characterized in that, The cloud management platform is applied to a cloud service system, which includes multiple clusters. Each cluster includes at least one computing node. The cloud management platform includes a transceiver module and an output module. The transceiver module is used to receive configuration information from the tenant. The configuration information is used to indicate the cluster configuration corresponding to each cluster in at least one cluster and the historical time period in which the tenant uses the cloud service system. Each cluster in the at least one cluster is a cluster to be evaluated. The cluster configuration includes at least one type of computing node. The output module is used to display the prediction results to the tenant. The prediction results include the cost corresponding to each of the at least one cluster. The cost corresponding to each cluster is determined based on the type of at least one computing node and the number of computing nodes of each type included in the cluster configuration of each cluster. The number of computing nodes of each type is obtained based on the execution status of the historical sequence corresponding to each cluster. The historical sequence is the sequence in which the tenant creates and / or deletes service instances in the cloud service system within the historical time period.

9. The cloud management platform according to claim 8, characterized in that, The configuration information includes at least one series of computing nodes and at least one historical time period, wherein the series of each computing node in the at least one series of computing nodes indicates the type of computing node, each cluster in the at least one cluster corresponds to the series of the at least one computing node, and the at least one historical time period corresponds one-to-one with the at least one cluster.

10. The cloud management platform according to claim 8 or 9, characterized in that, The cloud management platform also includes: a processing module, The processing module is used to determine at least two moments in the historical time period, and to determine the historical sequence corresponding to each of the at least two moments; The processing module is used to determine the model of at least one computing node corresponding to each cluster in the series of at least one computing node, based on the historical sequence corresponding to each time point and the first algorithm, wherein the series of each computing node includes the model of the at least one computing node, and the first algorithm is an algorithm for solving the bin packing problem.

11. The cloud management platform according to claim 8, characterized in that, The configuration information includes the model of at least one computing node and at least one historical time period, wherein the model of each computing node in the at least one computing node model indicates the type of computing node, each cluster in the at least one cluster corresponds to the model of the at least one computing node, and the at least one historical time period corresponds one-to-one with the at least one cluster.

12. The cloud management platform according to claim 10 or 11, characterized in that, The configuration information also includes at least one cluster autoscaling (CA) policy, with each cluster in the at least one cluster corresponding to one of the at least one CA policy. Each of the at least one CA policy is a strategy for creating and / or deleting nodes in each cluster during prediction. The processing module is used to predict the number of computing nodes corresponding to each model of the at least one computing node in each cluster, based on the model of the at least one computing node corresponding to each cluster in the at least one cluster, the at least one CA strategy, and the execution status of the historical sequence.

13. The cloud management platform according to claim 14, characterized in that, The processing module is used to predict the initial number of computing nodes corresponding to each model of the at least one computing node at the start time of the historical time period, based on the model of the at least one computing node corresponding to each cluster in the at least one cluster, the historical sequence, and the first algorithm. The processing module is used to predict the number of computing nodes corresponding to each model of the at least one computing node in each cluster, based on the model of the at least one computing node corresponding to each cluster in the at least one cluster, the at least one CA strategy, and the execution status of the historical sequence, including: The processing module is used to predict the number of computing nodes corresponding to the model of each of the at least one computing nodes in each of the at least one clusters, based on the model of each of the at least one computing nodes in each of the at least one clusters, the at least one CA strategy, the initial number of computing nodes corresponding to each model of the at least one computing node at the start time, and the execution status of the historical sequence.

14. The cloud management platform according to any one of claims 10 to 13, characterized in that, The prediction results also include at least one of the following: The variation in cost between each cluster in the at least one cluster, the maximum number of each type of computing node, and the minimum number of each type of computing node.

15. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in any one of claims 1 to 7.

16. A computer program product containing instructions, characterized in that, When the instruction is executed by the computing device cluster, the computing device cluster performs the method as described in any one of claims 1 to 7.

17. A computer-readable storage medium, characterized in that, It includes computer program instructions, which, when executed by a cluster of computing devices, perform the method as described in any one of claims 1 to 7.