An elastic scaling method, device, equipment and medium in a multi-cloud environment

Through the cross-cloud elastic scaling controller modeling and strategy adjustment of resources in a multi-cloud environment, the problem of manual intervention in a multi-cloud environment is solved, and the automation of minute or even second elastic scaling is achieved, improving resource utilization and service quality.

CN113760516BActive Publication Date: 2025-07-25HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202010495551.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-06-03
Publication Date
2025-07-25
Estimated Expiration
2040-06-03

AI Technical Summary

Technical Problem

In multi-cloud environments, the existing technology requires manual intervention, making it difficult to achieve rapid elastic scaling, resulting in waste of resources or difficult to ensure service quality.

Method used

Through the cross-cloud elastic scaling controller, model the resources of multiple cloud platforms, obtain resource models, and automatically adjust application instances according to the elastic scaling strategy to achieve minute-level or even second-level elastic scaling across cloud platforms.

Benefits of technology

Without manual intervention, the automatic cross-cloud platform elastic scaling of application instances is achieved, improving resource utilization and service quality, and avoiding resource waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113760516B_ABST
    Figure CN113760516B_ABST
Patent Text Reader

Abstract

The present application provides a method for elastic scaling in a multi-cloud environment, including: modeling the resources provided by multiple cloud platforms to obtain resource models of the multiple cloud platforms, and when the monitoring metric values of application instances deployed on the multiple cloud platforms meet preset conditions, adjusting the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy. In this way, automatic cross-cloud elastic scaling of application instances is achieved in the environment of multiple cloud platforms, without manual intervention, improving the elastic scaling efficiency and avoiding resource waste or difficult-to-guarantee service quality caused by manual intervention. The entire scaling process does not require manual participation, and can achieve minute-level or even second-level elastic scaling of application instances across cloud platforms, improving resource utilization rate and guaranteeing service quality.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and in particular, to an elastic scaling method, apparatus, device, and computer-readable storage medium in a multi-cloud environment. Background Art

[0002] Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and networks within a wide area network or a local area network to achieve data computing, storage, processing, and sharing. A service provider that provides services through cloud technology according to user needs is a cloud service provider.

[0003] Applications can be deployed on the cloud platform provided by a cloud service provider to provide services externally. To ensure service quality and save resources at the same time, an elastic scaling method has been proposed in the industry. Specifically, specific metrics of an application are monitored, such as the usage rate of the central processing unit (CPU) and the usage rate of memory. When the metric value of a specific metric reaches a preset threshold, the number of application instances is adjusted according to the set elastic scaling policy.

[0004] However, the above elastic scaling method is mainly applicable to applications deployed on a single cloud platform. For applications deployed on a multi-cloud platform, that is, in a multi-cloud environment, manual intervention is often required, and it is difficult to achieve fast elastic scaling, resulting in resource waste or service quality being difficult to guarantee. Summary of the Invention

[0005] This application provides an elastic scaling method in a multi-cloud environment, which resolves the problems in related technologies that manual intervention is required, it is difficult to achieve fast elastic scaling, resulting in resource waste or service quality being difficult to guarantee. This application also provides an apparatus, device, computer-readable storage medium, and computer program product corresponding to the above method.

[0006] In a first aspect, this application provides an elastic scaling method in a multi-cloud environment. This method is used to achieve automatic cross-cloud elastic scaling of application instances in an environment of multiple cloud platforms, without manual intervention, improving the elastic scaling efficiency and avoiding resource waste or service quality being difficult to guarantee caused by manual intervention.

[0007] Specifically, each of the multiple cloud platforms provides at least one type of resource. The resource can be a hardware resource or a software resource for providing services. The resources can also be classified into computing resources, storage resources, and network resources according to their functions. For example, computing resources can include processor resources such as central processing unit (CPU) resources. Storage resources can include memory resources, external storage resources, etc. Memory resources can be internal memories, and external storage resources can be hard disks, optical discs, flash drives, etc.

[0008] In specific implementation, the cross-cloud elastic scaling controller can first model the resources provided by the multiple cloud platforms to obtain the resource models of the multiple cloud platforms. Among them, the resource model can realize the mapping conversion of the same type of resources between multiple cloud platforms. For example, it can realize the mapping conversion of storage resources between cloud platform A and cloud platform B. Then, when the monitoring metric values of the application instances deployed on the multiple cloud platforms meet the preset conditions, such as when the monitoring metric values reach the set thresholds, the cross-cloud elastic scaling controller can adjust the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policies. Since no manual intervention is required, it can achieve minute-level or even second-level elastic scaling of application instances across cloud platforms, improving resource utilization and ensuring service quality.

[0009] In some possible implementation manners, the cross-cloud elastic scaling controller can configure one or more elastic scaling policies. For example, the cross-cloud elastic scaling controller can configure one or more of the affinity policy, anti-affinity policy, cost-first policy, and performance-first policy. Among them, the affinity policy specifically refers to configuring application instances in adjacent regions of the same cloud platform. The adjacent region includes the same region, and even adjacent nodes (including the same node) in the same region. The anti-affinity policy specifically refers to avoiding configuring application instances in adjacent regions and adjacent nodes in the same region. The cost-first policy is a policy for elastic scaling with the goal of minimizing cost, and the performance-first policy is a policy for elastic scaling with the goal of maximizing performance.

[0010] Based on this, the cross-cloud elastic scaling controller can adjust the application instances according to the resource models of the multiple cloud platforms and any one or more of the affinity policy, anti-affinity policy, cost-first policy, and performance-first policy. Thus, elastic scaling of application instances can be realized according to user requirements.

[0011] In some possible implementation manners, when the cross-cloud elastic scaling controller performs elastic scaling on application instances, it may adjust the number of the application instances according to the resource models of multiple cloud platforms and the elastic scaling policy. For example, new application instances may be added, or existing application instances may be deleted. Of course, the cross-cloud elastic scaling controller may also adjust the configurations of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy. For example, the computing resources, storage resources, and / or network resources of the application instances may be increased or decreased.

[0012] In some possible implementation manners, the cross-cloud elastic scaling controller may debug application instances in the following manner. Specifically, the cross-cloud elastic scaling controller determines a target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy, and then creates a new application instance through the application programming interface (API) of the target cloud platform. The new instance is deployed on the target cloud platform.

[0013] In some possible implementation manners, after a new application instance is created, when the monitoring metric values of the application instances deployed on the multiple cloud platforms do not meet the preset conditions, the cross-cloud elastic scaling controller deletes the new application instance through the API.

[0014] In some possible implementation manners, the multiple cloud platforms include multiple public cloud platforms, or multiple private cloud platforms, or a hybrid cloud platform formed by at least one public cloud platform and at least one private cloud platform. Considering cost issues, multiple public cloud platforms may be selected to deploy application instances. Considering security issues, multiple private cloud platforms may be selected to deploy application instances. Considering both cost and security issues, a hybrid cloud platform formed by at least one public cloud platform and at least one private cloud platform may be selected to deploy application instances.

[0015] In a second aspect, the present application provides an elastic scaling device in a multi-cloud environment. The device includes:

[0016] A modeling unit, configured to model the resources provided by multiple cloud platforms to obtain the resource models of the multiple cloud platforms;

[0017] An adjustment unit, configured to adjust the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy when the monitoring metric values of the application instances deployed on the multiple cloud platforms meet the preset conditions.

[0018] In some possible implementation manners, the adjustment unit is specifically configured to:

[0019] Adjust the application instance according to the resource models of the multiple cloud platforms and any one or more of the affinity policy, anti-affinity policy, cost priority policy, and performance priority policy.

[0020] In some possible implementation manners, the adjustment unit is specifically configured to:

[0021] Adjust the number of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy; or,

[0022] Adjust the configuration of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

[0023] In some possible implementation manners, the adjustment unit is specifically configured to:

[0024] Determine a target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy;

[0025] Create a new application instance through the application programming interface (API) of the target cloud platform.

[0026] In some possible implementation manners, the adjustment unit is further configured to:

[0027] After creating a new application instance, when the monitoring metric value of the application instances deployed on the multiple cloud platforms does not meet the preset condition, delete the new application instance through the API.

[0028] In some possible implementation manners, the multiple cloud platforms include multiple public cloud platforms, or multiple private cloud platforms, or a hybrid cloud platform formed by at least one public cloud platform and at least one private cloud platform.

[0029] In a third aspect, the present application provides a device, which includes a processor and a memory. The processor and the memory communicate with each other. The processor is configured to execute the instructions stored in the memory so that the device executes the elastic scaling method in a multi-cloud environment as described in the first aspect or any one of the implementation manners of the first aspect.

[0030] In a fourth aspect, the present application provides a computer-readable storage medium, in which instructions are stored, and the instructions direct a device to execute the elastic scaling method in a multi-cloud environment as described in the first aspect or any one of the implementation manners of the first aspect.

[0031] In a fifth aspect, the present application provides a computer program product including instructions, which, when running on a device, causes the device to execute the elastic scaling method in a multi-cloud environment as described in the first aspect or any one of the implementation manners of the first aspect.

[0032] Based on the implementation manners provided in the above aspects of the present application, further combinations can be made to provide more implementation manners. BRIEF DESCRIPTION OF THE DRAWINGS

[0033] To more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below.

[0034] Figure 1 Schematic diagram of an application scenario of an elastic scaling method in a multi-cloud environment provided for an embodiment of the present application;

[0035] Figure 2 Architecture diagram of an elastic scaling method in a multi-cloud environment provided for an embodiment of the present application;

[0036] Figure 3 Architecture diagram of an elastic scaling method in a multi-cloud environment provided for an embodiment of the present application;

[0037] Figure 4 Schematic diagram of the structure of an elastic scaling controller provided for an embodiment of the present application;

[0038] Figure 5 Flowchart of an elastic scaling method in a multi-cloud environment provided for an embodiment of the present application;

[0039] Figure 6 Schematic diagram of the structure of elastic scaling in a multi-cloud environment provided for an embodiment of the present application;

[0040] Figure 7 Schematic diagram of the structure of a device provided for an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0041] The terms "first" and "second" in the embodiments of the present application are only for descriptive purposes, and cannot be construed as indicating or implying relative importance or implicitly specifying the quantity of the indicated technical features. Thus, features defined with "first" and "second" may explicitly or implicitly include one or more of such features.

[0042] First, some technical terms involved in the embodiments of the present application will be introduced.

[0043] Cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and networks within a wide area network or a local area network to achieve data computing, storage, processing, and sharing. A service provider that provides services through cloud technology according to user needs is called a cloud service provider, and the services provided by the cloud service provider through cloud technology are also called cloud services.

[0044] Cloud services include the following service models: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). In some implementations, cloud services may also include the Function as a Service (FaaS) model.

[0045] In the IaaS model, the service provider provides hardware resources, and the user deploys the operating system, middleware, and runtime libraries by themselves, and then installs the software by themselves.

[0046] In the PaaS model, the service provider not only provides hardware resources, but also deploys the operating system, provides middleware and runtime libraries, etc., and the user installs the software by themselves.

[0047] In the SaaS model, the service provider provides hardware resources, deploys the operating system, and provides basic environments such as middleware and runtime libraries. In addition, the service provider also provides software, and the user can directly use the software.

[0048] In the FaaS model, software (such as an application) is abstracted into a function. The function is started only when the program is called. When the program is not called, it is not started, so that resources are not occupied.

[0049] A cloud platform, also known as a cloud system, cloud environment, or cloud, is a software system provided by a cloud provider to offer cloud services. It should be noted that the software system can be a software system that provides cloud services in the IaaS model, PaaS model, SaaS model, or FaaS model.

[0050] A public cloud is a cloud platform provided by a third-party public cloud provider for a large number of individuals or enterprises. In a public cloud, the hardware, software, and other structures are all owned and managed by the third-party public cloud provider.

[0051] A private cloud is a dedicated cloud platform provided for an enterprise or organization. The private cloud can be operated internally by the corresponding enterprise or organization. The private cloud is mainly for enterprise users and is also called an enterprise cloud.

[0052] A hybrid cloud refers to a cloud platform formed by different cloud platforms. A hybrid cloud includes at least two cloud platforms, also known as a multi-cloud platform or multi-cloud. Optionally, a hybrid cloud combines a public cloud and a private cloud. For security reasons, some enterprise users are more willing to store data in a private cloud, but at the same time hope to obtain the computing resources of the public cloud. In this case, hybrid clouds including public clouds and private clouds are increasingly adopted. The hybrid cloud mixes and matches the public cloud and the private cloud to obtain good usage effects.

[0053] An application programming interface (API), also known as a program interface, is the "interface between a program and an operating system" provided by the operating system of a cloud platform to users such as programmers. This interface can be used by users (such as developers) during programming. Through this application programming interface, users can access resources in the cloud platform and obtain corresponding services. An application programming interface is a collection of a set of definitions, functions, programs, and / or protocols. For example, an application programming interface of a cloud platform includes one or more system calls, and each system call is a program that can complete a specific function.

[0054] An API gateway (APIG) is specifically a gateway that provides API hosting services. The API gateway can perform unified authentication, metering, publishing, and / or traffic control and other management on the API.

[0055] Resources can be hardware resources or software resources that provide services. Resources can also be classified into computing resources, storage resources, and network resources according to their functions. For example, computing resources can include processor resources such as central processing unit (CPU) resources. Storage resources can include memory resources, external storage resources, and so on. Memory resources can be internal memories, and external storage resources can be hard disks, optical discs, flash drives, and so on.

[0056] Auto scaling is a service that automatically adjusts its business resources according to the business needs of users through policies. For example, when the user's business volume is large, business resources can be automatically increased through policies, such as increasing the application instances corresponding to the business. Among them, an application instance refers to an instance created according to an application. An instance can be considered as an application in a running state. By starting (or opening) an application, an instance can be generated.

[0057] Cloud service providers can provide services to users through the cloud platform. To ensure service quality and save resources at the same time, the industry has proposed an auto-scaling method. Specifically, specific metrics of the application are monitored, such as CPU usage and memory usage. When the metric value of a specific metric reaches a preset threshold, the number of application instances is adjusted according to the set auto-scaling policy.

[0058] However, the above auto-scaling method is mainly applicable to applications deployed on a single cloud platform. For applications deployed in a multi-cloud platform, that is, in a multi-cloud environment, manual intervention is often required, and it is difficult to achieve rapid auto-scaling, resulting in resource waste or the service quality being difficult to guarantee.

[0059] In view of this, the present application provides an elastic scaling method in a multi-cloud environment. This method can be executed by a cross-cloud elastic scaling controller. Specifically, the cross-cloud elastic scaling controller can first model the resources provided by multiple cloud platforms to obtain a resource model of the multiple cloud platforms. Among them, the resource model can realize the mapping conversion of the same type of resources between multiple cloud platforms. For example, it can realize the mapping conversion of storage resources between cloud platform A and cloud platform B. Then, when the monitoring metric values of the application instances deployed on the multiple cloud platforms meet the preset conditions, such as when the monitoring metric values reach the set thresholds, the cross-cloud elastic scaling controller can adjust the application instances according to the resource model of the multiple cloud platforms and the elastic scaling policy.

[0060] In this way, automatic cross-cloud elastic scaling of application instances is realized in the environment of multiple cloud platforms without manual intervention, which improves the elastic scaling efficiency and avoids resource waste or difficult-to-guarantee service quality caused by manual intervention. The entire scaling process does not require manual participation and can achieve minute-level or even second-level elastic scaling of application instances across cloud platforms, improving resource utilization and guaranteeing service quality.

[0061] In order to make the technical solution of the present application clearer and easier to understand, the application scenarios of the elastic scaling method in a multi-cloud environment provided by the embodiments of the present application will be introduced below with reference to the accompanying drawings.

[0062] See Figure 1 the schematic diagram of the application scenario of the elastic scaling method in a multi-cloud environment shown in Figure 1 As shown, this scenario includes an elastic scaling controller 102 and multiple cloud platforms 104. The multiple cloud platforms 104 can be respectively denoted as cloud platform 1 to cloud platform n, where n is greater than 1.

[0063] Instances of application A are deployed on at least one of cloud platform 1 to cloud platform n. Among them, at least one cloud platform can deploy one or more instances of application A. In one example, multiple instances of application A are deployed on cloud platform 1, specifically instances 11 to 1m, and multiple instances of application A are deployed on cloud platform n, specifically instances n1 to nm. Among them, m is a positive integer.

[0064] The elastic scaling controller 102 is connected to the above-mentioned multiple cloud platforms 104, for example, through a communication path. The elastic scaling controller 102 models the resources provided by the multiple cloud platforms 104 to obtain a resource model of the multiple cloud platforms 104. When the monitoring metric values of the application instances deployed on the multiple cloud platforms 104 meet the preset conditions, the elastic scaling controller 102 adjusts the application instances according to the resource model of the multiple cloud platforms and the elastic scaling policy. In this way, automatic elastic scaling in a multi-cloud environment is realized.

[0065] As Figure 2 shown, the elastic scaling controller 102 can be deployed in a cloud environment, specifically on one or more computing devices (e.g., a central server) in the cloud environment. The elastic scaling controller 102 can also be deployed in an edge environment, specifically on one or more computing devices (edge computing devices) in the edge environment. The edge computing device can be a server, a computing box, etc. The cloud environment refers to a cluster of central computing devices owned by a cloud service provider for providing computing, storage, and communication resources; the edge environment refers to a cluster of edge computing devices that are geographically close to the end device (i.e., the end-side device) and are used to provide computing, storage, and communication resources.

[0066] The above-mentioned elastic scaling controller 102 can also be deployed on the end device. The end device includes physical machines such as terminals. Among them, the terminal includes, but is not limited to, a desktop computer, a laptop computer, a tablet computer, or a smart phone. The elastic scaling controller 102 can also be deployed in a virtual machine or a container on the above-mentioned physical machine. Considering load balancing and reliability, in some implementation manners, the elastic scaling controller 102 can also be deployed in a cluster in the form of multiple replicas.

[0067] Furthermore, as Figure 3 shown, the elastic scaling controller 102 can include multiple parts (e.g., including multiple functional modules). Based on this, each part of the elastic scaling controller 102 can also be distributedly deployed in different environments. For example, a part of the elastic scaling controller 102 can be deployed on three environments, or any two of the cloud environment, the edge environment, and the end device respectively.

[0068] There are various ways to divide the functional modules inside the elastic scaling controller 102, and the present application does not limit it. Figure 4 For an exemplary division method, as Figure 4 shown, the elastic scaling controller 102 includes a metric monitoring module 1022 and an elastic scaling control module 1024. In some implementation manners, the elastic scaling controller 102 can also include one or more of an elastic scaling policy management module 1026, a multi-cloud cost insight module 1028, and a multi-cloud performance evaluation module 1029.

[0069] Among them, the metric monitoring module 1022 is used to read the monitoring metric values corresponding to the application-related monitoring metrics through the APIs opened by the monitoring systems of each cloud platform. When the monitoring metric value meets a preset condition, for example, when the monitoring metric value reaches a preset threshold, the elastic scaling control module 1024 can adjust the application instance according to the resource models of multiple cloud platforms 104 and the elastic scaling policy.

[0070] In some ways, the elastic scaling policy management module 1026 is used to manage elastic scaling policies for use by the elastic scaling control module 1024. Specifically, the elastic scaling policy management module 1026 provides a cross-cloud elastic scaling policy management component through which users can configure elastic scaling policies based on multiple application performance metrics or other user-defined metrics. The elastic scaling policy may include one or more of an affinity policy, an anti-affinity policy, a performance-first policy, or a cost-first policy.

[0071] For elastic scaling policies, the embodiments of the present application only describe affinity policies, anti-affinity policies, cost-first policies, performance-first policies, etc. In some implementation manners, the elastic scaling controller 102 can also standardize and plugin the elastic scaling policy management module 1026. Subsequently, if more similar policies need to be supported, third-party developers can develop and select corresponding plugins as needed.

[0072] Among them, the affinity policy specifically refers to configuring application instances in adjacent regions (including the same region) of the same cloud platform, or even adjacent nodes (including the same node) in the same region. The anti-affinity policy specifically refers to avoiding configuring application instances in adjacent regions or adjacent nodes in the same region. When the application has high requirements for response efficiency, the application instances can be configured in adjacent regions of the same cloud platform. When the application has high requirements for service reliability, the application instances can be avoided from being configured in adjacent regions of the same cloud platform.

[0073] The multi-cloud cost insight module 1028 is used to evaluate the costs of resources on multiple cloud platforms. For public clouds, the multi-cloud cost insight module 1028 can obtain quotes for various specifications of various resources by accessing the resource quote system of the public cloud, so as to obtain the costs of various specifications of various resources on the public cloud. For private clouds, the multi-cloud cost insight module 1028 can analyze the one-time fixed investment costs and periodic maintenance costs of the private cloud based on configuration information such as the hardware configuration and operating system configuration of the private cloud, and determine the costs of various specifications of various resources based on these costs. For example, the usage costs of various computing, storage, network, etc. resources per unit time per unit measurement are determined.

[0074] The multi-cloud performance evaluation module 1029 is used to evaluate the performance of resources on each cloud platform. Specifically, the multi-cloud performance evaluation module 1029 can perform performance tests on the same configured resources of different specifications on different cloud platforms, such as benchmark tests, to obtain performance values such as computing speed, network speed, and disk input / output (I / O) speed.

[0075] When performing elastic scaling using the cost - priority strategy, the elastic scaling control module 1024 can also obtain the costs of various specifications of various types of resources on multiple cloud platforms 104 from the multi - cloud cost insight module 1028, and then adjust the application instances based on the resource models of the multiple cloud platforms 104, the costs of various specifications of various types of resources on the multiple cloud platforms 104, and the cost - priority strategy.

[0076] When performing elastic scaling using the performance - priority strategy, the elastic scaling control module 1024 can also obtain the performance of various specifications of various types of resources on multiple cloud platforms 104 from the multi - cloud performance evaluation module 1029, and then adjust the application instances based on the resource models of the multiple cloud platforms 104, the performance of various specifications of various types of resources on the multiple cloud platforms 104, and the performance - priority strategy.

[0077] Next, from the perspective of the elastic scaling controller, the elastic scaling method in a multi - cloud environment provided by the embodiments of the present application will be introduced.

[0078] See Figure 5 the flowchart of the elastic scaling method in the multi - cloud environment shown in the figure. The method includes:

[0079] S502: The elastic scaling controller 102 models the resources provided by multiple cloud platforms to obtain the resource models of the multiple cloud platforms.

[0080] Among them, the resource model can realize the mapping conversion of the same type of resources between multiple cloud platforms. For example, it can realize the mapping conversion of storage resources between cloud platform A and cloud platform B. In some implementation manners, resources can be characterized by resource parameters. The resource parameters can specifically be parameters describing the resource configuration. For example, for computing resources, the resource parameters can include the number of cores, such as 4 cores for the CPU. Another example is that for storage resources, the resource parameters can include the memory capacity, such as 2GB (Gigabyte) for the memory.

[0081] The format of the resource parameters (schema, also known as the specification), is simply referred to as the resource parameter format. For example, the resource parameter format corresponding to a certain resource can be: the resource parameters are computing resource specification parameters such as the number of CPUs or the number of GPUs. In specific implementation, the elastic scaling controller 102 can unify the resource parameter format to achieve unified modeling of resources.

[0082] In some implementations, the elastic scaling controller 102 can obtain the standard resource parameter format, and then establish the correspondence between the resource parameter formats supported by at least one of the multiple cloud platforms 104 (for example, it can be each cloud platform) and the above standard resource parameter format, so as to obtain the resource models of the multiple cloud platforms 104. This resource model can also be called an escape model. Taking the standard resource parameter format in this resource model as a reference value, the resource parameter format is escaped, and the mapping conversion relationship of the same type of resources among multiple cloud platforms can be obtained.

[0083] Among them, the standard resource parameter format can be the resource parameter format supported by one of the multiple cloud platforms 104. Of course, the standard resource parameter format can also be obtained by processing the resource parameter formats supported by at least one of the multiple cloud platforms 104.

[0084] S504: When the monitoring metric values of the application instances deployed on the multiple cloud platforms 104 meet the preset conditions, the elastic scaling controller 102 adjusts the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

[0085] The elastic scaling controller 102 can monitor the metrics of the application instances deployed on the multiple cloud platforms 104 to obtain the monitoring metric values. Specifically, the elastic scaling controller 102 can read the monitoring metric values from the monitoring system on the cloud platform 104. The monitoring system can include the metric values of multiple monitoring metrics, and the elastic scaling controller 102 obtains the corresponding monitoring metric values according to actual needs. In some examples, the monitoring metric values obtained by the elastic scaling controller 102 can be CPU usage, memory usage, and so on.

[0086] When the monitoring metric values meet the preset conditions, the elastic scaling controller 102 can adjust the application instances according to the resource models of the multiple cloud platforms 104 and the elastic scaling policy. Among them, the preset conditions can be set according to actual needs. For example, the preset conditions can be set as the monitoring metric value is greater than the threshold corresponding to the metric, or the monitoring metric value is less than the threshold corresponding to the metric, and so on. The threshold corresponding to the metric can be set according to empirical values, and the embodiments of the present application do not limit this.

[0087] In some implementations, when the elastic scaling controller 102 adjusts the application instances, it can adjust the application instances according to any one or more of the resource models of the multiple cloud platforms and the affinity policy, anti-affinity policy, cost-first policy, and performance-first policy.

[0088] Among them, when the application has a high requirement for response rate, the elastic scaling controller 102 can adjust the application instances according to the resource models of the multiple cloud platforms and the affinity policy. For example, the elastic scaling controller 102 can deploy the application instances with high response rate requirements in adjacent regions of the same cloud platform, such as on adjacent nodes in the same region.

[0089] When the application has high requirements for reliability and availability, the elastic scaling controller 102 can adjust the application instances according to the resource models of the multiple cloud platforms 104 and the anti-affinity policy. For example, the elastic scaling controller 102 can avoid deploying the application instances with high requirements for reliability and availability in adjacent regions of the same cloud platform, that is, the elastic scaling controller 102 can deploy them on different cloud platforms 104.

[0090] When the user gives priority to cost, when the elastic scaling controller 102 adjusts the application instances, it can adjust the application instances according to the resource models of the multiple cloud platforms 104 and the cost priority policy. For example, the elastic scaling controller 102 can select the cloud platform 104 with the lowest price to deploy the application instances.

[0091] When the user gives priority to performance, when the elastic scaling controller 102 adjusts the application instances, it can adjust the application instances according to the resource models of the multiple cloud platforms 104 and the performance priority policy. For example, the elastic scaling controller 102 can select the cloud platform 104 with the best performance to deploy the application instances.

[0092] In some implementation manners, when the elastic scaling controller 102 adjusts the application instances, it can adjust the number of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy. For example, the elastic scaling controller 102 can add application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy. Another example is that the elastic scaling controller 102 can delete application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

[0093] In other implementation manners, when the elastic scaling controller 102 adjusts the application instances, it can adjust the configuration of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy. For example, the elastic scaling controller 102 can upgrade the configuration of the application instance from 1 core 1G (indicating a single-core processor and 1G of memory) to 4 cores 2G (indicating a 4-core processor and 2G of memory).

[0094] Taking the adjustment of the number of application instances as an example below, the adjustment process will be described in detail.

[0095] Specifically, the elastic scaling controller 102 can determine the target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy, and then create a new application instance through the API of the target cloud platform. In this example, it is assumed that the elastic scaling policy is the cost - priority policy. When the monitoring metric value is greater than the corresponding threshold, the elastic scaling controller 102 needs to add application instances.

[0096] To this end, the elastic scaling controller 102 can determine how many measurement units of the resources of the cloud platform correspond to one measurement unit of the standard resources through the correspondence between the resource parameter formats supported by each cloud platform in the resource model and the standard resource parameter format, and then determine the cloud platform with the lowest total cost of deploying application instances based on the costs of various specifications of various resources as the target cloud platform. The elastic scaling controller 102 calls this API to create a new application instance on the target cloud platform, thereby ensuring service quality through more application instances.

[0097] Further, after adding application instances, when the monitoring metric values of the application instances deployed on the multiple cloud platforms do not meet the preset conditions, the elastic scaling controller 102 can also delete the new application instances through the API, thereby avoiding resource waste.

[0098] It should be noted that when adding or deleting application instances, the elastic scaling controller 102 can also select a suitable cloud platform, that is, the target cloud platform, to create or delete application instances through the hybrid cloud API gateway.

[0099] As described above in conjunction with Figures 1 to 5 the elastic scaling method in a multi - cloud environment provided by the embodiments of the present application has been introduced in detail. Next, the devices and equipment provided by the embodiments of the present application will be introduced with reference to the accompanying drawings.

[0100] See Figure 6 the structural schematic diagram of the elastic scaling device in a multi - cloud environment shown in the figure. The device 600 includes:

[0101] A modeling unit 602, configured to model the resources provided by multiple cloud platforms to obtain the resource models of the multiple cloud platforms;

[0102] An adjustment unit 604, configured to adjust the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy when the monitoring metric values of the application instances deployed on the multiple cloud platforms meet the preset conditions.

[0103] In some possible implementation manners, the adjustment unit 604 is specifically configured to:

[0104] Adjust the application instance according to the resource models of the multiple cloud platforms and any one or more of the affinity policy, anti-affinity policy, cost priority policy, and performance priority policy.

[0105] In some possible implementation manners, the adjustment unit 604 is specifically configured to:

[0106] Adjust the number of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy; or adjust the configuration of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

[0107] In some possible implementation manners, the adjustment unit 604 is specifically configured to:

[0108] Determine a target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy;

[0109] Create a new application instance through the application programming interface (API) of the target cloud platform.

[0110] In some possible implementation manners, the adjustment unit 604 is further configured to:

[0111] After creating a new application instance, when the monitoring metric value of the application instances deployed on the multiple cloud platforms does not meet the preset condition, delete the new application instance through the API.

[0112] In some possible implementation manners, the multiple cloud platforms include multiple public cloud platforms, or multiple private cloud platforms, or a hybrid cloud platform formed by at least one public cloud platform and at least one private cloud platform.

[0113] The elastic scaling device 600 in the multi-cloud environment according to the embodiments of the present application may correspond to executing the methods described in the embodiments of the present application, and the above and other operations and / or functions of each module / unit of the elastic scaling device 600 in the multi-cloud environment are respectively for implementing Figure 5 The corresponding processes of the respective methods in the illustrated embodiments, and for the sake of brevity, will not be described herein again.

[0114] The embodiments of the present application further provide a device 700. The device 700 may be an end-side device such as a laptop computer or a desktop computer, or may be a computer cluster in a cloud environment or an edge environment. The elastic scaling controller 102 is deployed in the device 700, and the device 700 is specifically configured to implement the functions of the elastic scaling device 600 in the multi-cloud environment as shown in Figure 6 the illustrated embodiments.

[0115] Figure 7 A schematic structural diagram of a device 700 is provided, as shown in Figure 7As shown, device 700 includes bus 701, processor 702, communication interface 703, and memory 704. The processor 702, memory 704, and communication interface 703 communicate with each other via bus 701.

[0116] Bus 701 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be divided into address buses, data buses, control buses, etc. For the sake of simplicity of representation, Figure 7 only a thick line is used to represent it in the figure, but it does not mean that there is only one bus or one type of bus.

[0117] Among them, the processor 702 can be a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), a Micro Processor (MP), or a Digital Signal Processor (DSP), or any one or more of such processors.

[0118] The communication interface 703 is used for external communication. For example, obtaining the costs of various specifications of various types of resources on multiple cloud platforms 104, or obtaining the performance of various specifications of various types of resources on multiple cloud platforms 104, etc.

[0119] The memory 704 can include volatile memory, such as Random Access Memory (RAM). The memory 704 can also include non-volatile memory, such as Read-Only Memory (ROM), flash memory, Hard Disk Drive (HDD), or Solid State Drive (SSD).

[0120] The memory 704 stores executable code, and the processor 702 executes the executable code to perform the aforementioned elastic scaling method in a multi-cloud environment.

[0121] Specifically, when implementing Figure 6 the embodiments shown, and Figure 6 when each unit of the elastic scaling device 600 in the multi-cloud environment described in the embodiments is implemented by software, execute Figure 6The software or program code required for the functions of the modeling unit 602 and the elastic scaling control unit 604 in [it] is stored in the memory 704. The communication module function is implemented through the communication interface 703.

[0122] The communication interface 703 receives the resource parameter formats of multiple cloud platforms 104, transmits them through the bus 701 to the processor 702, and the processor 702 executes the program codes corresponding to each unit stored in the memory 704, such as the program codes corresponding to the modeling unit 602 and the elastic scaling control unit 604, to perform modeling on the resources provided by the multiple cloud platforms according to the resource parameter formats of the multiple cloud platforms 104 and the standard resource parameter formats, obtain the resource models of the multiple cloud platforms, and when the monitoring metric values of the application instances deployed on the multiple cloud platforms meet the preset conditions, adjust the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

[0123] In some implementation manners, the processor 702 is specifically configured to execute the program code corresponding to the elastic scaling control unit 604 to perform the following method steps:

[0124] Adjust the application instances according to the resource models of the multiple cloud platforms and any one or more of the affinity policy, anti-affinity policy, cost priority policy, and performance priority policy.

[0125] In some implementation manners, the processor 702 is specifically configured to execute the program code corresponding to the elastic scaling control unit 604 to perform the following method steps:

[0126] Adjust the number of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy; or,

[0127] Adjust the configuration of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

[0128] In some implementation manners, the processor 702 is specifically configured to execute the program code corresponding to the elastic scaling control unit 604 to perform the following method steps:

[0129] Determine the target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy;

[0130] Create a new application instance through the application programming interface (API) of the target cloud platform.

[0131] In some implementation manners, the processor 702 is specifically configured to execute the program code corresponding to the elastic scaling control unit 604 to perform the following method steps:

[0132] After creating a new application instance, when the monitoring metric values of the application instances deployed on the multiple cloud platforms do not meet the preset conditions, the new application instance is deleted through the API.

[0133] An embodiment of the present application also provides a computer-readable storage medium, which includes instructions that direct a computer to execute the elastic scaling method in a multi-cloud environment of the elastic scaling device 600 applied to a multi-cloud environment as described above.

[0134] An embodiment of the present application also provides a computer-readable storage medium, which includes instructions that direct a computer to execute the elastic scaling method in a multi-cloud environment of the elastic scaling device 600 applied to a multi-cloud environment as described above.

[0135] An embodiment of the present application also provides a computer program product. When the computer program product is executed by a computer, the computer executes any one of the foregoing elastic scaling methods in a multi-cloud environment. The computer program product can be a software installation package. In the case where any one of the foregoing elastic scaling methods in a multi-cloud environment is required, the computer program product can be downloaded and executed on the computer.

[0136] In addition, it should be noted that the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed to multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. In addition, in the attached drawings of the device embodiments provided in the present application, the connection relationship between the modules indicates that they have a communication connection, which can be specifically implemented as one or more communication buses or signal lines.

[0137] Through the description of the above embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general hardware. Of course, it can also be implemented by dedicated hardware including application-specific integrated circuits, dedicated CPUs, dedicated memories, dedicated components, etc. Generally, functions completed by computer programs can be easily implemented by corresponding hardware, and the specific hardware structures for implementing the same function can also be various, such as analog circuits, digital circuits, or dedicated circuits. However, for this application, software program implementation is a better embodiment in more cases. Based on such an understanding, the technical solution of this application, in essence, or the part that makes a contribution to the prior art, can be embodied in the form of a software product. This computer software product is stored in a readable storage medium, such as a floppy disk, USB flash drive, mobile hard disk, ROM, RAM, magnetic disk, or optical disc of a computer, and includes several instructions to enable a computer device (which can be a personal computer, training device, or network device, etc.) to execute the methods described in various embodiments of this application.

[0138] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product.

[0139] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are generated in whole or in part. The computer can be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website, computer, training device, or data center to another website, computer, training device, or data center in a wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) manner. The computer-readable storage medium can be any available medium that a computer can store, or a data storage device such as a training device or data center that includes one or more integrated available media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)).

Claims

1. An elastic scaling method in a multi-cloud environment, characterized in that, The method includes: Modeling the resources provided by multiple cloud platforms to obtain a resource model of the multiple cloud platforms, where the resource model is used to implement mapping conversion of the same type of resources among the multiple cloud platforms; When the monitoring metric values of application instances deployed on the multiple cloud platforms meet a preset condition, adjusting the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

2. The method according to claim 1, characterized in that, The adjusting the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy includes: Adjusting the application instances according to the resource models of the multiple cloud platforms and any one or more of the affinity policy, anti-affinity policy, cost priority policy, and performance priority policy.

3. The method according to claim 1 or 2, characterized in that, The adjusting the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy includes: Adjusting the number of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy; or, Adjusting the configuration of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

4. The method according to any one of claims 1 to 2, characterized in that The adjusting the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy includes: Determining a target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy; Creating a new application instance through the application programming interface (API) of the target cloud platform.

5. The method according to claim 4, characterized in that, After creating the new application instance, the method further includes: When the monitoring metric values of application instances deployed on the multiple cloud platforms do not meet the preset condition, deleting the new application instance through the API.

6. The method according to any one of claims 1 to 2, characterized in that, The multiple cloud platforms include multiple public cloud platforms, or multiple private cloud platforms, or a hybrid cloud platform formed by at least one public cloud platform and at least one private cloud platform.

7. An elastic scaling device in a multi-cloud environment, characterized in that, The apparatus includes: A modeling unit, configured to model the resources provided by multiple cloud platforms to obtain a resource model of the multiple cloud platforms, where the resource model is used to implement mapping conversion of the same type of resources among the multiple cloud platforms; An adjusting unit, configured to adjust the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy when the monitoring metric values of application instances deployed on the multiple cloud platforms meet a preset condition.

8. The device according to claim 7, wherein The adjusting unit is specifically configured to: Adjust the application instances according to the resource models of the multiple cloud platforms and any one or more of the affinity policy, anti-affinity policy, cost priority policy, and performance priority policy.

9. The device according to claim 7 or 8, characterized in that, The adjusting unit is specifically configured to: Adjust the number of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy; or, Adjust the configuration of the application instances according to the resource models of the multiple cloud platforms and the elastic scaling policy.

10. The device according to any one of claims 7 to 8, characterized in that, The adjusting unit is specifically configured to: Determine a target cloud platform according to the resource models of the multiple cloud platforms and the elastic scaling policy; Create a new application instance through the application programming interface (API) of the target cloud platform.

11. The device according to claim 10, characterized in that, The adjusting unit is further configured to: After creating a new application instance, when the monitoring metric values of the application instances deployed on the multiple cloud platforms do not meet the preset conditions, the new application instance is deleted through the API.

12. The device according to any one of claims 7 to 8, characterized in that, The multiple cloud platforms include multiple public cloud platforms, or multiple private cloud platforms, or a hybrid cloud platform formed by at least one public cloud platform and at least one private cloud platform.

13. A device, characterized in that, The device includes a processor and a memory; The processor is configured to execute the instructions stored in the memory to cause the device to perform the method according to any one of claims 1 to 6.

14. A computer-readable storage medium, characterized in that, It includes instructions that direct the device to perform the method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • A method and a system for processing resources across cloud platforms

    CN109144666A