Orchestration method and apparatus for cloud-based application

By implementing the orchestration method of cloud applications on the cloud platform, and by creating and associated multiple cloud service units, the problem that the existing Kubernetes orchestration system cannot meet the growing demand for cloud services is solved, and cross-service resource orchestration management and automated deployment and operation of cloud applications are realized.

WO2025113514A1PCT designated stage expired Publication Date: 2025-06-05HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/135033
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-30
Filing Date
2024-11-27
Publication Date
2025-06-05

AI Technical Summary

Technical Problem

The existing Kubernetes orchestration system cannot effectively meet the growing demand for cloud services, especially when non-business components are divested to cloud services/third-party middleware, it is difficult to achieve cross-service resource orchestration management.

Method used

By implementing a cloud application orchestration method on the cloud platform, the cloud platform receives user application deployment requests, creates a first cloud service based on business logic, determines the second cloud service based on auxiliary functions, and associates the two to form a cloud service unit to respond to the access request of cloud applications.

Benefits of technology

It realizes cross-service resource orchestration management, solves the application orchestration problem when non-business components are separated from cloud services/third-party middleware, ensures the automated deployment and operation of cloud applications, and helps the further development of cloud applications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024135033_05062025_PF_FP_ABST
    Figure CN2024135033_05062025_PF_FP_ABST
Patent Text Reader

Abstract

The present application relates to the technical field of cloud services, and discloses an orchestration method and apparatus for a cloud-based application. The method comprises: a cloud platform receives an application deployment request sent by a user, the application deployment request indicating the service logic of a cloud-based application and an assistant function required for implementing the service logic; the cloud platform uses the cloud resources owned by the cloud platform to create a first cloud service on the basis of the service logic, determine a second cloud service on the basis of the assistant function, and associate the first cloud service with the second cloud service, so as to obtain a cloud service unit of the cloud-based application; on the basis of the cloud service unit, the cloud platform responds to an access request for the cloud-based application. The present application can achieve cross-service resource orchestration management, and can solve the application orchestration problem when a non-service component is stripped to a cloud service / third-party middleware.
Need to check novelty before this filing date? Find Prior Art

Description

Method and device for orchestrating cloud applications

[0001] This application claims priority to Chinese patent application number 202311628963.1, filed on November 30, 2023, entitled “Method and device for orchestrating cloud applications,” the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of cloud service technology, and in particular to a method and device for orchestrating cloud applications. Background Art

[0003] With the continuous development of cloud service technology, more and more users, such as enterprises and organizations (also known as tenants or cloud tenants), are using cloud services to implement their own business. In the process of providing cloud services to users, cloud platforms need to use cloud resources to deploy applications used to implement user business, and then use these applications to implement user business.

[0004] Currently, cloud platforms often use Kubernetes to orchestrate and manage the applications used to implement their business needs when providing cloud services to users. Kubernetes is an open-source container orchestration engine developed by Google that supports automated deployment, large-scale scalability, and containerized application management. In Kubernetes, you can create multiple containers and run an application instance in each container.

[0005] However, the scope of Kubernetes orchestration is limited and cannot meet the growing demand for cloud services. Summary of the Invention

[0006] This application provides a method and device for orchestrating cloud applications. This application can implement cross-service resource orchestration management, solve the application orchestration problem when non-business components are separated into cloud services / third-party middleware, ensure the automated deployment and operation of cloud applications, and contribute to the further development of cloud applications. The technical solutions provided by this application are as follows:

[0007] In a first aspect, the present application provides a method for orchestrating cloud applications. The method is applied to a cloud platform. The method includes: the cloud platform receives an application deployment request from a user, where the application deployment request indicates the business logic of the cloud application and the auxiliary functions required to implement the business logic; the cloud platform uses its own cloud resources to create a first cloud service based on the business logic, determines a second cloud service based on the auxiliary functions, associates the first cloud service with the second cloud service, and obtains a cloud service unit for the cloud application; and the cloud platform responds to the access request to the cloud application based on the cloud service unit.

[0008] From this, it can be seen that when the business logic of the cloud application needs to rely on auxiliary functions, the cloud platform can create a cloud service unit including the first cloud service and the second cloud service, and respond to the access request of the cloud application as a whole. Since the first cloud service and the second cloud service are both separate cloud services, the way this application orchestrates applications is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can realize cross-service resource orchestration management, solve the application orchestration problem when non-business components are stripped to cloud services / third-party middleware, ensure the automated deployment and operation of cloud applications, and contribute to the further development of cloud applications.

[0009] In one implementation, after obtaining the cloud service unit of the cloud application, the method further includes: the cloud platform configuring the external access interface of the first cloud service as the external access interface of the cloud service unit. The cloud platform then responds to the access request of the cloud application based on the cloud service unit, including: the cloud platform responding to the access request to the cloud service unit based on the access interface of the first cloud service.

[0010] The application deployment request carries attribute information of the cloud application, and the attribute information indicates the business logic, auxiliary functions, and the dependency relationship between the business logic and the auxiliary functions.

[0011] Furthermore, the attribute information also indicates one or more of the following: specifications or types of cloud resources used by the first cloud service and the second cloud service, deployment methods, working modes or service assurance policies of the first cloud service and the second cloud service, and access methods of cloud service units.

[0012] In some implementation scenarios, the cloud platform can also manage cloud applications on a per-cloud service unit basis, including performing one or more of the following management operations on cloud service units: lifecycle management, availability management, elastic scaling, and migration.

[0013] The cloud platform's lifecycle management operations on cloud service units primarily include deleting, modifying, and querying cloud service units. Deleting a cloud service unit includes deleting the cloud service unit. Modifying a cloud service unit includes modifying the number and configuration of cloud services within the unit and modifying the relationships between cloud services within the unit. Querying a cloud service unit includes querying the operating status and configuration of the cloud service unit and its cloud services.

[0014] The cloud platform performs availability management operations on cloud service units, including: when a cloud service unit fails, the cloud platform uses a backup cloud service unit to replace the cloud service unit to provide cloud services. By performing availability management operations on cloud service units, high availability of cloud services can be guaranteed.

[0015] The cloud platform's elastic scaling operations on cloud service units may include: adjusting the specifications of the cloud resources used by the first cloud service and / or the second cloud service, and / or adjusting the total number of cloud service units. For example, the cloud platform monitors the load of the cloud service and, when the load meets specified conditions within a specified time period, performs elastic scaling operations on the cloud service units. By performing elastic scaling operations on cloud service units, the amount of cloud resources used by the cloud service can be automatically adjusted based on business needs, thereby ensuring the efficient utilization of cloud resources and reducing unnecessary cloud service costs.

[0016] The cloud platform performs migration operations on cloud service units, including migrating the entire cloud service unit. The cloud platform can perform migration operations on the entire cloud service unit for disaster recovery or business transition purposes, ensuring that all cloud service versions within the cloud service unit are consistent and correctly associated, and avoiding any impact on the cloud service unit's functionality.

[0017] In this application, the cloud service unit satisfies one or more of the following: it is obtained by cloud resource deployment based on different cloud resource deployment areas in the cloud platform; or it is obtained by deployment based on at least two of public network resources, cloud resources in the cloud resource deployment area, and the user's own resources.

[0018] In one implementation, the cloud platform determines the second cloud service based on the auxiliary function, including: the cloud platform creates the second cloud service based on the auxiliary function, or the cloud platform purchases the second cloud service based on the auxiliary function.

[0019] Optionally, the cloud platform associates the first cloud service with the second cloud service, including: the cloud platform configures the first cloud service to have permission to access the second cloud service.

[0020] In a second aspect, the present application provides an orchestration device for cloud applications. The device is applied to a cloud platform. The device includes: an interaction unit for receiving an application deployment request sent by a user, the application deployment request indicating the business logic of the cloud application and the auxiliary functions required to implement the business logic; an orchestration unit for utilizing cloud resources owned by the cloud platform to create a first cloud service based on the business logic, determine a second cloud service based on the auxiliary functions, associate the first cloud service with the second cloud service, and obtain a cloud service unit for the cloud application; and an interaction unit for responding to access requests from the cloud application based on the cloud service unit.

[0021] Optionally, the orchestration unit is further configured to configure the external access interface of the first cloud service as the external access interface of the cloud service unit. Accordingly, the interaction unit is specifically configured to respond to the access request to the cloud service unit based on the access interface of the first cloud service.

[0022] Optionally, the application deployment request carries attribute information of the cloud application, where the attribute information indicates the business logic, auxiliary functions, and the dependency relationship between the business logic and the auxiliary functions.

[0023] Optionally, the attribute information also indicates one or more of the following: specifications or types of cloud resources used by the first cloud service and the second cloud service, deployment methods, working modes or service assurance policies of the first cloud service and the second cloud service, and access methods of cloud service units.

[0024] Optionally, the orchestration unit is further configured to: deploy a backup cloud service unit for the cloud service unit based on the application deployment request; and replace the cloud service unit with the backup cloud service unit when the cloud service unit fails.

[0025] Optionally, the orchestration unit is further configured to: adjust specifications of cloud resources used by the first cloud service and / or the second cloud service; and / or adjust the total number of cloud service units.

[0026] Optionally, the orchestration unit is further configured to: migrate cloud service units based on the cloud service units.

[0027] Optionally, the cloud service unit satisfies one or more of the following: is deployed based on cloud resources in different cloud resource deployment areas in the cloud platform; or is deployed based on at least two of public network resources, cloud resources in cloud resource deployment areas, and the user's own resources.

[0028] Optionally, the orchestration unit is specifically configured to: create a second cloud service based on the auxiliary function, or the cloud platform purchases the second cloud service based on the auxiliary function.

[0029] Optionally, the orchestration unit is specifically configured to: configure the first cloud service to have permission to access the second cloud service.

[0030] In a third aspect, the present application provides a computing device comprising a memory and a processor, wherein the memory stores program instructions, and the processor runs the program instructions to execute the method provided in the first aspect of the present application and any possible implementation thereof.

[0031] In a fourth aspect, the present application provides a computing device cluster, comprising multiple computing devices, wherein the multiple computing devices include multiple processors and multiple memories, wherein program instructions are stored in the multiple memories, and the multiple processors execute the program instructions, so that the computing device cluster executes the method provided in the first aspect of the present application and any possible implementation thereof.

[0032] In a fifth aspect, the present application provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium. The computer-readable storage medium includes program instructions. When the program instructions are executed on a computing device, the computing device executes the method provided in the first aspect of the present application and any possible implementation thereof.

[0033] In a sixth aspect, the present application provides a computer program product comprising instructions, which, when run on a computer, enables the computer to execute the method provided in the first aspect of the present application and any possible implementation thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] FIG1 is a schematic diagram of a structure of an implementation scenario involved in a method for orchestrating cloud applications provided in an embodiment of the present application;

[0035] FIG2 is a schematic diagram of the deployment of basic resources in a cloud platform provided in an embodiment of the present application;

[0036] FIG3 is a schematic diagram of providing cloud services by utilizing the function of cloud resource orchestration application according to an embodiment of the present application;

[0037] FIG4 is a schematic diagram of a cloud application orchestration method provided by an embodiment of the present application implemented through multiple functional modules;

[0038] FIG5 is a flowchart of a method for orchestrating cloud applications provided in an embodiment of the present application;

[0039] FIG6 is a schematic diagram of attribute information carried in an application deployment request provided in an embodiment of the present application;

[0040] FIG7 is a flow chart of obtaining a cloud service unit provided by an embodiment of the present application;

[0041] FIG8 is a schematic diagram of a cloud service unit provided in an embodiment of the present application, including a first cloud service service and a second cloud service DCS instance and a Nosql instance;

[0042] FIG9 is a schematic diagram of an apparatus for orchestrating cloud applications according to an embodiment of the present application;

[0043] FIG10 is a schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0044] FIG11 is a schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0045] In order to make the objectives, technical solutions and advantages of this application clearer, the implementation methods of this application will be further described in detail below with reference to the accompanying drawings.

[0046] To facilitate understanding, the technology and background involved in the embodiments of this application are explained below.

[0047] Physical machine (PM): A physical resource used to host virtualization technology. A host is also called a physical machine. Typically, a physical server is a host used to deploy virtual instances. A physical machine has multiple physical devices. For example, a physical server has physical devices such as a processor and memory. Multiple virtual instances can be deployed on a single host. Multiple virtual instances deployed on the same host share the host's physical resources. Depending on the usage scenario, multiple virtual instances deployed on a single host can belong to the same user or different users.

[0048] A resource pool is a collection of various hardware and software resources involved in a cloud computing data center. Generally, by resource type, the resources in a resource pool can be divided into computing resources, storage resources, and network resources.

[0049] Virtualization is a resource management technology. It abstracts and transforms a host's physical resources, such as computing, networking, and storage, to create a more tangible representation. This breaks down the inherent barriers between the host's physical structure and allows users to utilize these resources in a more efficient manner than their original configuration. The resources created through virtualization are called virtualized resources, and they are not restricted by the configuration, location, or physical configuration of existing physical resources.

[0050] A virtual instance runs on the host's operating system and has its own operating system. The virtual instance's operating system runs applications that implement user services. Virtual instances can use the host's hardware resources and are isolated from each other. Typically, virtual instances can be virtual machines, containers, or independent processes.

[0051] Virtual machine (VM): refers to a complete computer system with complete hardware system functions and running in a completely isolated environment, which is simulated through virtualization technology. Some instruction subsets of the virtual machine can be processed in the host machine, and other instructions can be executed in a simulated manner. A virtual machine is also called a virtual server. A virtual machine can be regarded as a collection of several virtual devices, which have complete hardware system functions and run in a completely isolated environment. Virtual devices are virtualized through virtualization technology on the basis of physical devices that can share resources. For example, a virtual processor virtualized on the basis of a processor based on virtualization technology is a virtual device. For another example, a training card virtualized on the basis of a field-programmable gate array (FPGA) based on virtualization technology is also a virtual device. By way of example, the virtual machine in this application can be a kernel-based virtual machine (KVM).

[0052] Containers provide a lightweight virtual runtime environment. Containers can be obtained by packaging all the code, libraries, and dependencies of a user's application into an image. When the image is executed, the image runs in the virtual runtime environment. At this time, the container is a runtime instance of the image, similar to a lightweight sandbox, which can be started, started, stopped, and deleted. The image does not share the host's memory, processor (such as the central processing unit (CPU)), and disk resources with other images, achieving container isolation between the image and the host, and between the image and other images, ensuring that the process within the container cannot monitor any process or resources outside the container.

[0053] An Internet data center (IDC) is an Internet-based network that provides operational maintenance facilities and related service systems for equipment that centrally collects, stores, processes, and transmits data. Conceptually, it can be understood as a public, commercial Internet "computer room." It is also a form of IT professional service and a vital infrastructure for the IT industry. IDC is not only a service concept, but also a network concept. It constitutes part of the network's basic resources, just like the backbone network and access network, providing high-end data transmission services and high-speed access services. Generally speaking, a user's offline IDC can be understood as the user's offline computer room, where the user utilizes existing Internet communication lines and bandwidth resources to establish a standardized, professional-grade telecommunications computer room environment, which is used to provide a full range of services such as server hosting, leasing, and related value-added services.

[0054] A service level agreement (SLA) is an agreement between a service provider and a customer that details the service levels, service grades, and terms of the relationship that the service provider promises to provide.

[0055] Infrastructure as a service (IaaS) provides virtual machines or other resources as services to users.

[0056] The role of platform as a service (PaaS) is to provide a development platform as a service to users.

[0057] Software as a service (SaaS) provides applications (Apps, also known as applications) as services to customers.

[0058] In computing, orchestration refers to the automated arrangement, coordination, and management of complex computer systems, middleware, and services. Orchestration typically involves three aspects: 1) resource orchestration, which is responsible for allocating resources; 2) workload orchestration, which is responsible for sharing workloads among resources and managing their lifecycles; and 3) service orchestration, which is responsible for service discovery and high availability.

[0059] Cloud-native technologies are used to build and manage applications using the underlying resources of cloud platforms. These applications are also called cloud-native applications or cloud-based applications. Cloud-native technologies emphasize designing cloud applications as microservices and deploying them using containerization and automation to achieve high availability, elasticity, and scalability. Cloud-based applications are typically able to operate optimally to meet business needs and remain responsive.

[0060] A crucial aspect of application modernization is cloud-native applications. Cloud applications enable the building and running of scalable applications in modern, dynamic environments, such as public, private, and hybrid clouds. Containers, microservices, service meshes, and automation are key features, and major carriers offer a rich suite of cloud-native services. Cloud applications involve complex and frequent calls between microservices and instances, and they often encompass a wide variety of microservices. Coordination and communication between microservices is achieved through a message bus.

[0061] As more and more applications are developed, deployed, and operated based on cloud-native architectures, the cloud service capabilities offered by cloud service providers (CSPs) are becoming increasingly challenging. This is driven by the need for global enterprise business development, considerations for disaster recovery, reliability, data security, and resource-intensive factors similar to the nation's "Eastern Data Westward Computing" strategy. Against this backdrop, an increasing number of enterprise business applications are looking to cloud service providers for cross-regional, convenient business development, deployment, and runtime services.

[0062] To help customers deploy, scale, and automatically migrate applications across regions conveniently and efficiently, the industry has conducted extensive research. This research can be called cross-region, region-independent, multi-region, or global distribution. Regardless of the name, the goal is to further upgrade the distributed capabilities of application architectures. Applications can run not only within a region but also across different regions, achieving globally optimal distribution according to SLA requirements, thereby enhancing customer competitiveness.

[0063] In addition, all microservice components of current cloud applications no longer need to be developed and deployed by customers themselves. Instead, they use the many middleware and other services provided by the cloud. For example, non-business components of cloud applications use cloud middleware, which further increases the complexity of applications and orchestration.

[0064] However, cloud platforms currently typically use Kubernetes to orchestrate and manage applications. Kubernetes is an open-source container orchestration engine developed by Google that supports automated deployment, large-scale scalability, and containerized application management. In Kubernetes, you can create multiple containers and run an application instance in each container.

[0065] However, Kubernetes's orchestration scope is limited and cannot effectively meet the growing demand for cloud services. For example, with the development of cloud-native technologies, more and more non-business components are gradually being offloaded to cloud services or third-party middleware. As a result, actual cloud applications with microservices architectures have exceeded the scope of Kubernetes orchestration.

[0066] To this end, an embodiment of the present application provides a method for orchestrating cloud applications. The method is applied to a cloud platform. In this method, after receiving an application deployment request sent by a user, the cloud platform can obtain the business logic of the cloud application indicated by the application deployment request and the auxiliary functions required to implement the business logic. Then, the cloud platform can create a first cloud service based on the business logic, determine a second cloud service based on the auxiliary functions, and associate the first cloud service with the second cloud service to obtain a cloud service unit for the cloud application. The cloud platform then responds to the access request of the cloud application based on the cloud service unit. Among them, the first cloud service is used to implement the business logic, that is, the first cloud service is a business component for implementing the business logic. The second cloud service is used to provide the auxiliary functions required to implement the business logic, that is, the second cloud service is a non-business component for implementing the auxiliary functions.

[0067] From this, it can be seen that when the business logic of the cloud application needs to rely on the implementation of auxiliary functions, the cloud platform can create a cloud service unit including the first cloud service and the second cloud service, and respond to the access request of the cloud application as a whole. Since the first cloud service and the second cloud service are different cloud services, the way this application orchestrates applications is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can realize cross-service resource orchestration management, solve the application orchestration problem when non-business components are stripped to cloud services / third-party middleware, ensure the automated deployment and operation of cloud applications, and contribute to the further development of cloud applications.

[0068] This article provides a detailed introduction to the technical solution of this application from multiple perspectives, including implementation scenarios, method flow, hardware devices, and software devices.

[0069] The following first illustrates an implementation scenario of the embodiment of the present application with examples.

[0070] Figure 1 is a structural diagram of an implementation environment involved in a method for orchestrating cloud applications provided in an embodiment of the present application. As shown in Figure 1, the implementation environment includes: a cloud platform 1 and a client 2. A communication connection can be established between the cloud platform 1 and the client 2 through a network. Optionally, the network can be a local area network, the Internet, or other networks, which is not limited in the embodiment of the present application. Users can interact with the cloud platform 1 through the client 2. For example, users can send instructions and cloud service requests and other information to the cloud platform 1 through the client 2. The cloud platform 1 is used to respond based on the information sent by the client 2 to the cloud platform 1.

[0071] A large number of basic resources owned by the cloud service provider, such as computing resources, storage resources, and network resources, are deployed in the cloud platform 1. For example, computing resources can be computing devices (such as servers, etc.) that can provide computing capabilities. The cloud platform can use this large amount of basic resources to implement the orchestration method for cloud applications provided in the embodiment of the present application. In the embodiment of the present application, the cloud platform 1 can be a cloud platform of a central cloud, a cloud platform of an edge cloud, or a cloud platform including a central cloud and an edge cloud, and the embodiment of the present application does not make specific limitations on it. Moreover, when the cloud platform 1 is a cloud platform including a central cloud and an edge cloud, the technical solution provided in the embodiment of the present application can be partially executed by the cloud platform deployed in the edge cloud and partially executed by the cloud platform deployed in the central cloud. Furthermore, the cloud platform 1 can be a cloud platform of a private cloud, a public cloud, or a hybrid cloud, and the embodiment of the present application does not make specific limitations on it.

[0072] In one implementation, as shown in Figure 2, the location of basic resources in a cloud platform can be described using cloud resource deployment regions and availability zones (AZs). Users can choose to deploy cloud services based on resources in specific regions and AZs. Regions are divided based on geographic location and network latency. Public services such as elastic computing, block storage, object storage, virtual private cloud (VPC) networks, Elastic Internet Protocol (EIP) addresses, and images are shared within the same region. Regions are categorized as general regions and dedicated regions. General regions provide general cloud services to public tenants. Dedicated regions are dedicated regions that carry the same type of business or provide business services to specific tenants. An AZ is a collection of one or more physical data centers. Computing, networking, and storage resources within an AZ are logically divided into multiple clusters. A region typically includes multiple AZs. Multiple AZs within a region are connected by high-speed fiber optic cables to meet users' needs for building high-availability systems across AZs.

[0073] Client 2 may be a computer, a personal computer, a laptop computer, a mobile phone, a smart phone, a tablet computer, a cloud host, a portable mobile terminal, a multimedia player, an e-book reader, a wearable device, a smart home appliance, an artificial intelligence device, a smart wearable device, a smart vehicle-mounted device or an Internet of Things device, etc.

[0074] In the embodiment of the present application, a user can send an application deployment request to the cloud platform 1 through the client 2, so that the cloud platform 1 can perform application orchestration based on the cloud resources owned by the cloud platform 1 in response to the application deployment request. Application orchestration includes: deploying applications and managing applications.

[0075] Optionally, the cloud platform 1 utilizes the function of orchestrating applications using cloud resources, which can be abstracted into a cloud service by the cloud service provider on the cloud platform 1. This cloud service can be provided as an independent cloud service or as an additional service to other cloud services. For example, this cloud service can be optionally provided as an enhanced capability of existing cloud services (Kubernetes, cloud native services, container cluster services, etc.). As shown in Figure 3, a large number of basic resources owned by the cloud service provider are deployed in the cloud platform 1. Based on these basic resources, the cloud platform 1 can provide an infrastructure management platform and provide basic cloud services such as IaaS based on the infrastructure management platform. On this basis, the cloud platform 1 can also provide high-level cloud services such as PaaS and SaaS. At the same time, the cloud platform 1 uses the method for orchestrating cloud applications provided in the embodiment of the present application to further orchestrate applications for users based on the basic resources owned by the cloud platform, the basic cloud services already provided by the cloud platform, and the high-level cloud services. In this case, this function is equivalent to adding an application orchestration layer for comprehensive management of the infrastructure management platform and high-level services on the basis of the cloud platform 1. It adds a more convenient and automated way of application management, and it does not affect the use of existing cloud services such as IaaS, PaaS and SaaS. Alternatively, the function of orchestrating applications in this application can also be provided in the form of an automation tool, which is used to orchestrate applications based on user instructions. For example, this function is used as an automation tool provided by a cloud service provider. When the automation tool is run, it can orchestrate applications based on the application orchestration information provided by the user. In addition, this function can also be provided to the outside world as an open source tool, an open source project, an enhanced function of an open source tool or an open source project. The embodiments of this application do not specifically limit its presentation form.

[0076] In one implementation, the cloud application orchestration method provided in the embodiment of the present application can be implemented by running an executable program on a computing device in the cloud platform 1. For example, the executable program that implements the cloud application orchestration method can be optionally presented in the form of an application installation package. After the computing device in the cloud platform 1 installs the application installation package, it can implement the cloud application orchestration method provided in the embodiment of the present application by running the executable program therein.

[0077] Furthermore, the cloud application orchestration method provided in the embodiments of the present application can be implemented through multiple functional modules. For example, as shown in Figure 4, the method can be implemented through an interaction module, a unit management module, a unit scheduling module, a cloud service management module, a unit status monitoring module, and an execution module. The interaction module, unit management module, unit scheduling module, cloud service management module, and unit status monitoring module are deployed on the management side, while the execution module is deployed on the execution side. The interaction module is used to receive requests sent by users, distribute the requests to the modules responsible for responding to the requests, and provide feedback to the user on the execution results of the requests. During the deployment of cloud applications, the unit management module is used to determine the various cloud services required to implement the cloud application and their cloud resource requirements based on the application deployment requests distributed by the interaction module. The unit scheduling module is used to schedule resources for deploying the cloud application based on the cloud application's cloud resource requirements and information about the basic resources owned by the cloud platform. The cloud service management module is used to provide the various cloud services required by the cloud application based on the scheduling decisions made by the unit scheduling module. The unit management module is also used to obtain cloud service units based on the various cloud services provided by the cloud service management module to complete the deployment of the cloud application. The unit status monitoring module is responsible for monitoring cloud service units based on specified management objectives and providing monitoring results to the unit management module. Based on the monitoring results, the unit management module is also responsible for deciding whether to execute a management operation corresponding to the management objective on the cloud service unit. When a management operation is required, it sends instructions to the execution module. The execution module is responsible for executing the corresponding management operation on the cloud service unit based on the instructions sent by the unit management module.

[0078] In one implementation scenario, a cloud application includes one or more cloud service unit sets, each of which includes one or more cloud service units that provide the same capabilities. For example, when a cloud application is implemented through multiple microservices, each microservice can be implemented through one or more cloud service unit sets, and a cloud service unit set includes multiple cloud service units that provide the same capabilities.

[0079] It should be understood that the above content is an illustrative description of the application scenarios of the orchestration method for cloud applications provided in the embodiments of the present application, and does not constitute a limitation on the application scenarios of the orchestration method for cloud applications. A person of ordinary skill in the art will know that as business needs change, its application scenarios can be adjusted according to application needs, and the embodiments of the present application do not list them one by one.

[0080] The following describes the method for orchestrating cloud applications provided by an embodiment of the present application. As shown in FIG5 , the method for orchestrating cloud applications includes the following steps:

[0081] Step 501: The cloud platform receives an application deployment request sent by a user. The application deployment request indicates the business logic of the cloud application and the auxiliary functions required to implement the business logic.

[0082] When a user needs to deploy an application on the cloud, they can send an application deployment request to the cloud platform through their client, requesting that the cloud platform deploy their application using cloud resources. This request specifies the business logic of the application on the cloud and the auxiliary functions required to implement that logic, enabling the cloud platform to deploy the application based on it.

[0083] Optionally, the application deployment request may directly indicate the business logic and auxiliary functions. For example, the application deployment request carries attribute information of the application on the cloud, and the attribute information indicates the business logic and auxiliary functions. Alternatively, the application deployment request indirectly indicates the business logic and auxiliary functions. For example, the application deployment request does not carry information indicating the business logic and auxiliary functions, but the user also sends other requests to the cloud platform, and the other requests carry information indicating the business logic and auxiliary functions (such as attribute information), and the other requests are associated with the application deployment request. Based on the association between the other requests and the application deployment request, the information indicating the business logic and auxiliary functions carried by the other requests can be determined to indicate the business logic and auxiliary functions of the cloud application indicated by the application deployment request. The following explanation is given by taking the application deployment request carrying attribute information as an example.

[0084] Users can transmit attribute information indicating cloud applications to the cloud platform through application orchestration templates and configuration interfaces. Among them, application orchestration templates are documents used to deploy a cloud application written according to certain application orchestration specifications. For example, the application orchestration template instructs the user to fill in which functions the entire application needs to include and the relationship between each function. When the user needs to indicate the attribute information of the cloud application to the cloud platform, he can first obtain the application orchestration template, and then add the attribute information of the cloud application to be deployed to the application orchestration template according to the instructions of the application orchestration template, and then transmit the application orchestration template with the added attribute information to the cloud platform. When the cloud platform provides the user with a configuration interface, the user can choose to select or fill in the attribute information in the configuration interface, and achieve the purpose of transmitting the attribute information to the cloud platform by submitting the attribute information filled in in the configuration interface.

[0085] In one implementation, the attribute information indicates the business logic of the cloud application, the auxiliary functions required to implement the business logic, and the dependencies between the business logic and the auxiliary functions. Business logic is used to indicate the logic used to implement the cloud application. For example, assuming that the cloud service is used to implement video review, the business logic is used to indicate how the video is reviewed. Auxiliary functions required to implement business logic refer to functions that the cloud application must have in order to implement the business logic, but are not functions of the business logic. For example, in order to review a video, it is necessary to cache the video to be reviewed. The function of caching the video is a function that is required for video review, but this function is not a function of the business logic. Therefore, the function of caching the video is an auxiliary function required for video review. The dependency between the business logic and the auxiliary function is the dependency between the first cloud service used to implement the business logic and the second cloud service used to implement the auxiliary function during deployment and runtime. For example, if the second cloud service is a database, the dependency can be: the address of the database needs to be loaded into the configuration item of the first cloud service to ensure that the first cloud service can start normally.

[0086] Optionally, the attribute information also indicates one or more of the following: specifications or types of cloud resources used by the first cloud service and the second cloud service, deployment methods, working modes or service assurance policies of the first cloud service and the second cloud service, and access methods of cloud service units.

[0087] The cloud resources used by cloud services are virtual instances created from the physical resources owned by the cloud platform. The specifications of cloud resources indicate the specifications of the virtual instances created from the physical resources owned by the cloud platform. For example, cloud services use containers as cloud resources. The container specifications indicate the number of virtual processors and cores used by the container, the virtual memory capacity, the virtual bandwidth, and so on.

[0088] The cloud resource type optionally indicates whether the cloud resource is a base instance or an instance with deployed services. Options for base instances include one or more of the following virtual instances: virtual machines or containers. Instances with deployed services include one or more of the following: relational database service (RDS) instances, distributed cache service (DCS) instances, base instances in a cloud container engine (CCE) cluster, or cloud container instances (CCI).

[0089] The deployment mode of the cloud service indicates the deployment strategy of the cloud service, such as a multi-active strategy, a master-slave strategy, or other strategies to ensure performance (such as cost strategy and regional affinity strategy). Optionally, the deployment mode of the cloud service also indicates the conditions that need to be met for obtaining the deployment location of the cloud resources. For example, the deployment location indicates the cloud resource deployment area (region) and / or availability zone where the physical resources used to deploy the cloud resources are located. For another example, the deployment strategy indicates that the deployment of multiple cloud services in the cloud service unit meets one or more of the following: cloud resource deployment based on the same cloud resource deployment area in the cloud platform; or cloud resource deployment based on different cloud resource deployment areas in the cloud platform; or at least two of the public network resources, cloud resources in the cloud resource deployment area, and the user's own resources. Public network resources are resources deployed on the Internet. The user's own resources are resources owned by the user and located outside the cloud platform. For example, the own resources are the resources of the user's offline computer room, such as IDC, or resources in other cloud platforms purchased by the user.

[0090] The operating mode of a cloud service indicates how the cloud service provides its services. For example, the operating mode may indicate whether the cloud service provides services in a primary-backup mode, as well as the cloud service's backup strategy. Optionally, the operating mode of a cloud service also indicates the requirements the cloud service imposes on the operation objects when performing operations on them. For example, if the cloud service is used to store data, the operating mode may also indicate the type of data stored by the cloud service.

[0091] The service assurance policy of a cloud service unit indicates the policy used to ensure the service quality of a cloud service. The policy may optionally include internal policies of the cloud service unit and external policies of the cloud service unit. The internal policies of the cloud service unit include: policies that affect the performance of each cloud service in the cloud service unit. For example, the access latency and throughput of the cloud service. The internal policies of the cloud service unit affect the deployment location of each cloud service in the cloud service unit, for example, whether different cloud services in the cloud service unit need to be deployed in the same availability zone. The external policies of the cloud service unit include: policies that affect the business objectives of the cloud service provided by the cloud service unit. For example, the throughput (such as the number of transactions per second (TPS)) and latency of the cloud service unit. The external policies of the cloud service unit affect the scheduling decisions when orchestrating the cloud service unit, for example, whether the cloud service unit can be deployed across cloud resource deployment zones.

[0092] The access method of the cloud service unit indicates the method for accessing the cloud service unit. In one implementable method, since the first cloud service is created based on the business logic of the cloud application, it can be known that the first cloud service is used to implement the business logic of the cloud application, then the access method of the cloud service unit indicates: use the external access interface of the first cloud service as the external access interface of the cloud service unit. Optionally, the access method of the cloud service unit can also indicate the presentation form of the external access interface of the cloud service unit. For example, the external access interface is presented in the form of an endpoint, or in the form of an application programming interface (API).

[0093] For example, Figure 6 is a schematic diagram of attribute information carried in an application deployment request provided in an embodiment of the present application. As shown in Figure 6, the attribute information indicates the following:

[0094] 1) The content after "service" in FIG6 indicates that the first cloud service used to implement the business logic of the cloud application includes: service-1 and service-2;

[0095] 2) The content after API in FIG6 indicates that the external access interface of the first cloud service service-1 is used as the external access interface of the cloud service unit, and the presentation form of the external access interface is API;

[0096] 3) The content after replicas in FIG6 indicates that the primary and backup strategies of the multiple first cloud services all use replication for backup;

[0097] 4) The content after status in FIG6 indicates the requirements for the running status of the instance used to deploy multiple cloud services;

[0098] 5) The content after add-service in FIG6 indicates that the second cloud service for implementing the auxiliary function includes: datastore;

[0099] 6) The content after "mode" in FIG6 indicates the working mode of the second cloud service datastore;

[0100] 7) The content after backup-up strategy in Figure 6 indicates the backup strategy of the second cloud service datastore;

[0101] 8) In FIG6 , the content after pipeline indicates the relationship between the first cloud service and the second cloud service, including a dependency relationship, and the content after configuration indicates the configuration policy corresponding to the relationship;

[0102] 9) In FIG6 , resources indicates the specifications and types of cloud resources used by the first cloud service and the second cloud service;

[0103] 10) In Figure 6, policy indicates the SLA and other policies of the cloud service unit.

[0104] It should be noted that the business logic may optionally rely on multiple auxiliary functions for implementation. In this case, the cloud service unit may optionally include multiple second cloud services, and each second cloud service is used to implement an auxiliary function. For example, the auxiliary functions required to implement the business logic of the cloud application include: data storage function, message service function, and log service function. These three functions can be implemented through three second cloud services respectively. This article takes the implementation of the business logic relying on an auxiliary function as an example to illustrate the implementation process of the orchestration method for cloud applications provided by this application. When the business logic relies on multiple auxiliary functions for implementation, please refer to the implementation process of the business logic relying on an auxiliary function for its implementation process, and the embodiments of this application will not go into details about it.

[0105] Step 502: The cloud platform uses the cloud resources owned by the cloud platform to create a first cloud service based on business logic, determines a second cloud service based on auxiliary functions, associates the first cloud service with the second cloud service, obtains a cloud service unit for the cloud application, and deploys a backup cloud service unit for the cloud service unit.

[0106] After the cloud platform receives an application deployment request sent by a user, it can deploy a cloud service unit based on the application deployment request. The process of the cloud platform deploying a cloud service unit includes: using the cloud resources owned by the cloud platform to create a first cloud service based on business logic, determining a second cloud service based on auxiliary functions, and associating the first cloud service with the second cloud service to obtain a cloud service unit. Optionally, when the attribute information indicates that the cloud platform needs to create a component other than the cloud service unit, the cloud platform also needs to create the component based on the attribute information. For example, when the attribute information indicates that the cloud service unit is running in master-slave mode, the cloud platform also needs to create a backup cloud service unit for the cloud service unit.

[0107] In one implementation, a cloud platform can, based on the attribute information of a cloud application, identify one or more of the following: the cloud services required to implement the cloud application, their cloud resource requirements, the cloud service deployment method and operating mode, the service assurance policy of the cloud service unit, and the access method. Then, based on this information, resource scheduling is performed to determine the cloud resources used to create the cloud service unit. Based on these cloud resources, a first cloud service is created to implement the business logic, a second cloud service is created or purchased to implement auxiliary functions, and the first cloud service is configured with access permissions to the second cloud service. The first and second cloud services are then packaged into a cloud service unit. After obtaining the cloud service unit, the cloud platform also needs to configure the cloud service unit's external access interface based on the cloud service unit's access method, so that it can respond to access requests from the cloud application based on this external access interface. For example, when the cloud service unit's access method indicates that the first cloud service's external access interface serves as the cloud service unit's external access interface, the cloud platform configures the first cloud service's external access interface as the cloud service unit's external access interface. It should be noted that in some scenarios, the user may not specify some of the information that resource scheduling relies on in the above process. In this case, the cloud platform can adaptively determine this unspecified information and then perform resource scheduling based on it. For example, if the user does not specify the deployment location of the first and second cloud services, the cloud platform can determine the deployment location of the first and second cloud services based on the service guarantee policy and the usage of the basic resources in the cloud platform.

[0108] When creating virtual instances for multiple cloud services within the same cloud service unit, a separate virtual instance can be created for each cloud service. After completing the creation of a virtual instance for any cloud service, the virtual instance can be bound to that cloud service for use. Furthermore, to ensure the functionality of the cloud service unit, the network resources and storage resources required for operation also need to be configured for the cloud service unit during the configuration process. When a cloud service unit includes multiple first cloud services, components such as a gateway for distributing tasks to the multiple first cloud services also need to be configured within the cloud service unit during the configuration process.

[0109] For example, Figure 7 is a flowchart of obtaining a cloud service unit provided by an embodiment of the present application. As shown in Figure 7, after receiving the application deployment request, the cloud platform can obtain the attribute information of the application on the cloud, and identify the second cloud service component that the first cloud service component service depends on as a cloud service instance with storage function and its demand for cloud resources based on the attribute information, identify the demand of the first cloud service component for cloud resources, obtain the cloud resources required by the first cloud service component as Kubernetes containers, and identify the SLA requirements and other information that the cloud service unit needs to meet, and obtain the service capabilities, resource capacity and price of different regions in the cloud platform. Then, based on this information, resource scheduling is performed to determine the region where the cloud resources used by the cloud service unit are created. Then, based on the resources in the region, containers and networks are created in the Kubernetes cluster, and the first cloud service service and its endpoint are registered in the Kubernetes cluster. At the same time, cloud service instances with storage functions (such as DCS instances and Nosql instances) are purchased as second cloud services. Then, the first cloud service is configured to have access to the second cloud service, the first cloud service and the second cloud service are encapsulated into a cloud service unit, and the endpoint of the first cloud service is configured as the endpoint of the cloud service unit to use the endpoint to provide cloud services to the outside world. FIG8 is a schematic diagram of a cloud service unit including a first cloud service and a second cloud service DCS instance and a Nosql instance. The dotted box in FIG4 shows another schematic diagram of a cloud service unit configured within a region. As shown in FIG4 , the cloud service unit includes a gateway, a first cloud service and a second cloud service, and the cloud service unit is created based on a virtual instance.

[0110] As can be seen from the above, the process of orchestrating applications includes many tedious and complex operations. The orchestration method for cloud applications provided in the embodiments of the present application can automatically perform the above operations. Without the orchestration method for cloud applications provided in the embodiments of the present application, the operations that exceed the orchestration scope of Kubernetes in the above operations need to be completed manually by the user. For example, all operations related to the second cloud service in the above operations need to be performed manually by the user. Therefore, the present application reduces the difficulty of providing cloud services.

[0111] Step 503: The cloud platform responds to the access request of the cloud application based on the cloud service unit.

[0112] After obtaining the cloud service unit, the cloud platform can use the cloud service unit as a whole to respond to access requests from cloud applications. In one implementation, when the cloud platform configures the external access interface of the first cloud service as the external access interface of the cloud service unit, the cloud platform responds to access requests directed to the cloud service unit based on the access interface of the first cloud service.

[0113] Step 504: The cloud platform manages cloud applications using cloud service units.

[0114] The cloud platform manages cloud applications in cloud service units, including performing one or more of the following management operations on cloud service units: lifecycle management operations, availability management operations, elastic scaling operations, and migration operations.

[0115] The cloud platform performs lifecycle management operations on cloud service units, mainly including: performing deletion, modification and query operations on cloud service units based on cloud service units. Performing deletion operations on cloud service units includes: deleting cloud service units. Performing modification operations on cloud service units includes: modifying the number and configuration of cloud services included in the cloud service unit, modifying the relationship between different cloud services in the cloud service unit, etc. Performing query operations on cloud service units includes: querying the operating status and configuration information of the cloud service unit and the cloud services therein, etc. When the orchestration method for cloud applications provided in the embodiment of the present application is implemented through the multiple functional modules shown in Figure 4, the cloud platform performs lifecycle management operations on cloud service units through the unit management module and the cloud service management module. The unit management module is used to receive lifecycle management requests sent by users and forward the requests to the cloud service management module. The cloud service management module is used to execute the operations indicated by the request.

[0116] The cloud platform performs available management operations on the cloud service unit, including: when the cloud service unit fails, the cloud platform uses the backup cloud service unit to replace the cloud service unit to provide cloud services. By performing available management operations on the cloud service unit, the high availability of the cloud service can be guaranteed. When the orchestration method for cloud applications provided in the embodiment of the present application is implemented by multiple functional modules shown in Figure 4, the cloud platform performs available management operations on the cloud service unit through the unit management module, the unit status monitoring module and the execution module. The unit status monitoring module is used to monitor the operating status of the cloud service unit, and when the cloud service unit fails, it sends a notification to the unit management module indicating that the cloud service unit has failed. The unit management module is used to instruct the execution module to use the backup cloud service unit to replace the cloud service unit to provide cloud services based on the notification. The execution module is used to use the backup cloud service unit to replace the cloud service unit to provide cloud services based on the instruction of the unit management module.

[0117] The cloud platform performs elastic scaling operations on cloud service units, including: the cloud platform adjusts the specifications of the cloud resources used by the first cloud service and / or the second cloud service, and / or the cloud platform adjusts the total number of cloud service units. For example, the cloud platform monitors the load of the cloud service, and when the load of the cloud service meets specified conditions within a specified time period, the cloud platform performs elastic scaling operations on the cloud service unit. The specified time period and specified conditions can be set according to application requirements and are not specifically limited here. In addition, the cloud platform can also determine whether to perform elastic scaling operations based on other elastic scaling policies, which are not exemplified in this application. By performing elastic scaling operations on cloud service units, the amount of cloud resources used by cloud services can be automatically adjusted according to business needs, which can ensure the effective utilization of cloud resources on the one hand and reduce unnecessary cloud service costs on the other hand. When the orchestration method for cloud applications provided in the embodiment of the present application is implemented through the multiple functional modules shown in Figure 4, the cloud platform performs available management operations on cloud service units through the unit management module, the unit status monitoring module, and the execution module. The unit status monitoring module is used to monitor the business load of the cloud service unit and send the business load of the cloud service unit to the unit management module. The unit management module is responsible for deciding whether to perform elastic scaling operations on cloud service units based on their workloads. When elastic scaling operations are required, it sends instructions to the execution module. The execution module performs elastic scaling operations on cloud service units based on the instructions from the unit management module.

[0118] The cloud platform performs migration operations on cloud service units, including: the cloud platform migrates the cloud service units as a whole based on cloud service units. The cloud platform can perform migration operations on the cloud service units as a whole based on considerations such as disaster recovery or business transfer, to ensure that all cloud service versions in the cloud service units are consistent and correctly associated, etc., to avoid affecting the functions of the cloud service units. When the orchestration method for cloud applications provided in the embodiment of the present application is implemented by multiple functional modules shown in Figure 4, the cloud platform performs migration operations on cloud service units through the unit management module and the execution module. The unit management module is used to decide whether to perform migration operations on cloud service units, and to send instructions to the execution module when it is necessary to perform migration operations on cloud service units. The execution module is used to perform migration operations on cloud service units based on instructions from the unit management module.

[0119] In summary, in the method for orchestrating cloud applications provided in the embodiments of the present application, when the business logic of the cloud application needs to rely on the implementation of auxiliary functions, the cloud platform can create a cloud service unit including the first cloud service and the second cloud service, and respond to the access request of the cloud application with the cloud service unit as a whole. Since the first cloud service and the second cloud service are both separate cloud services, the way in which the present application orchestrates applications is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can realize resource orchestration management across services, can solve the application orchestration problem when non-business components are stripped to cloud services / third-party middleware, ensure the automated deployment and operation of cloud applications, and contribute to the further development of cloud applications.

[0120] It should be noted that the order of the steps of the cloud application orchestration method provided in the embodiment of the present application can be appropriately adjusted, and the steps can be increased or decreased accordingly. Any person skilled in the art who can easily think of a modified method within the technical scope disclosed in this application should be included in the scope of protection of this application, so it will not be repeated here.

[0121] The following describes the virtual device in the embodiment of the present application by way of example.

[0122] The above introduces the method for orchestrating cloud applications in an embodiment of the present application. Corresponding to the above method, an embodiment of the present application also provides an orchestration device for cloud applications. Figure 9 is a structural diagram of an orchestration device for cloud applications provided by an embodiment of the present application. Based on the following multiple components shown in Figure 9, the orchestration device for cloud applications shown in Figure 9 can perform all or part of the operations shown in Figure 5 above. It should be understood that the device may include more additional components than the components shown or omit some of the components shown therein, and the embodiment of the present application does not limit this. Optionally, the orchestration device for cloud applications may be configured on a cloud platform. As shown in Figure 9, the orchestration device 90 for cloud applications may include:

[0123] The interaction unit 901 is used to receive an application deployment request sent by a user, where the application deployment request indicates the business logic of the cloud application and the auxiliary functions required to implement the business logic.

[0124] The orchestration unit 902 is used to use the cloud resources owned by the cloud platform to create a first cloud service based on business logic, determine a second cloud service based on auxiliary functions, associate the first cloud service with the second cloud service, and obtain a cloud service unit for the cloud application.

[0125] The interaction unit 901 is used to respond to the access request of the cloud application based on the cloud service unit.

[0126] Optionally, the orchestration unit 902 is further configured to configure the external access interface of the first cloud service as the external access interface of the cloud service unit. Accordingly, the interaction unit 901 is specifically configured to respond to the access request to the cloud service unit based on the access interface of the first cloud service.

[0127] Optionally, the application deployment request carries attribute information of the cloud application, where the attribute information indicates the business logic, auxiliary functions, and the dependency relationship between the business logic and the auxiliary functions.

[0128] Optionally, the attribute information also indicates one or more of the following: specifications or types of cloud resources used by the first cloud service and the second cloud service, deployment methods, working modes or service assurance policies of the first cloud service and the second cloud service, and access methods of cloud service units.

[0129] Optionally, the orchestration unit 902 is further configured to: deploy a backup cloud service unit for the cloud service unit based on the application deployment request; and use the backup cloud service unit to replace the cloud service unit when the cloud service unit fails.

[0130] Optionally, the orchestration unit 902 is further configured to: adjust specifications of cloud resources used by the first cloud service and / or the second cloud service; and / or adjust the total number of cloud service units.

[0131] Optionally, the orchestration unit 902 is further configured to: migrate cloud service units based on the cloud service units.

[0132] Optionally, the cloud service unit satisfies one or more of the following: is deployed based on cloud resources in different cloud resource deployment areas in the cloud platform; or is deployed based on at least two of public network resources, cloud resources in cloud resource deployment areas, and the user's own resources.

[0133] Optionally, the orchestration unit 902 is specifically configured to: create a second cloud service based on the auxiliary function, or the cloud platform purchases the second cloud service based on the auxiliary function.

[0134] Optionally, the orchestration unit 902 is specifically configured to configure the first cloud service to have permission to access the second cloud service.

[0135] Here, please refer to the description of the previous method embodiment for the detailed working process of the interaction unit 901 and the orchestration unit 902. For example, the interaction unit 901 adopts step 501 of the aforementioned orchestration method for cloud applications to receive an application deployment request sent by a user; the orchestration unit 902 adopts step 502 of the aforementioned orchestration method for cloud applications to utilize the cloud resources owned by the cloud platform, create a first cloud service based on business logic, determine a second cloud service based on auxiliary functions, associate the first cloud service with the second cloud service, and obtain a cloud service unit for the cloud application. This embodiment of the present application will not be repeated here.

[0136] In summary, in the orchestration device for cloud applications provided in the embodiments of the present application, when the business logic of the cloud application needs to rely on the implementation of auxiliary functions, the cloud platform can create a cloud service unit including the first cloud service and the second cloud service, and respond to the access request of the cloud application with the cloud service unit as a whole. Since the first cloud service and the second cloud service are both separate cloud services, the way in which the present application orchestrates applications is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can realize resource orchestration management across services, can solve the application orchestration problem when non-business components are stripped to cloud services / third-party middleware, ensure the automated deployment and operation of cloud applications, and contribute to the further development of cloud applications.

[0137] The interaction unit 901 and the orchestration unit 902 can be implemented in software or hardware. For example, the implementation of the interaction unit 901 will be described below using the interaction unit 901 as an example. Similarly, the implementation of the orchestration unit 902 can refer to the implementation of the interaction unit 901.

[0138] As an example of a software functional unit, the interaction unit 901 may include code running on a computing instance. The computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Furthermore, the computing instance may be one or more. For example, the interaction unit 901 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Furthermore, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one data center or multiple geographically close data centers. Typically, a region may include multiple AZs.

[0139] Similarly, multiple hosts / virtual machines / containers running the code can be distributed within the same virtual private cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Cross-region communication between two VPCs within the same region, or between VPCs in different regions, requires a communication gateway within each VPC to interconnect the VPCs.

[0140] As an example of a hardware functional unit, the interaction unit 901 may include at least one computing device, such as a server. Alternatively, the interaction unit 901 may be implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0141] The multiple computing devices included in the interaction unit 901 can be distributed in the same region or in different regions. The multiple computing devices included in the interaction unit 901 can be distributed in the same AZ or in different AZs. Similarly, the multiple computing devices included in the interaction unit 901 can be distributed in the same VPC or in multiple VPCs. The multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.

[0142] It should be noted that in other embodiments, either the interaction unit 901 or the orchestration unit 902 can be used to execute any step in the method for orchestrating cloud applications. The steps that the interaction unit 901 and the orchestration unit 902 are responsible for implementing can be specified as needed. By having the interaction unit 901 and the orchestration unit 902 respectively implement different steps in the method for orchestrating cloud applications, the full functionality of the orchestration device for cloud applications can be realized.

[0143] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the various components described above can refer to the corresponding contents in the aforementioned method embodiments and will not be repeated here.

[0144] The following is an example of the basic hardware structure involved in the embodiments of the present application.

[0145] An embodiment of the present application provides a computing device. The computing device is used to implement some or all of the functions in the method for orchestrating cloud applications provided in an embodiment of the present application. Figure 10 is a structural diagram of a computing device provided in an embodiment of the present application. As shown in Figure 10, the computing device 1000 includes a processor 1001, a memory 1002, a communication interface 1003, and a bus 1004. Among them, the processor 1001, the memory 1002, and the communication interface 1003 are connected to each other through the bus 1004.

[0146] Processor 1001 may include a general-purpose processor and / or a dedicated hardware chip. A general-purpose processor may include: a central processing unit (CPU), a microprocessor or a graphics processing unit (GPU). The CPU is, for example, a single-core processor (single-CPU) or a multi-core processor (multi-CPU). A dedicated hardware chip is a hardware module for high-performance processing. Dedicated hardware chips include at least one of a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or a network processor (NP). Processor 1001 may also be an integrated circuit chip with signal processing capabilities. During implementation, some or all of the functions of the cloud application orchestration method of the present application may be completed by hardware integrated logic circuits in processor 1001 or instructions in software form.

[0147] Memory 1002 is used to store computer programs, which include an operating system 1002a and executable code (i.e., program instructions) 1002b. Memory 1002 may be, for example, a read-only memory or other type of static storage device capable of storing static information and instructions, or a random access memory or other type of dynamic storage device capable of storing information and instructions, or an electrically erasable programmable read-only memory, a read-only optical disc or other optical disc storage, an optical disc storage (including a compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium, or other magnetic storage device, or any other medium capable of carrying or storing desired executable code in the form of instructions or data structures and accessible by a computer, but not limited to these. For example, memory 1002 is used to store an outbound port queue, etc. Memory 1002 may be independent and connected to processor 1001 via bus 1004. Alternatively, memory 1002 and processor 1001 may be integrated. Memory 1002 can store executable code. When the executable code stored in memory 1002 is executed by processor 1001, processor 1001 is used to perform some or all of the functions of the cloud application orchestration method provided in the embodiment of this application. For the implementation of the process executed by processor 1001, please refer to the relevant description in the aforementioned embodiment. Memory 1002 may also include software modules and data required for other running processes such as the operating system.

[0148] The communication interface 1003 uses a transceiver module, such as, but not limited to, a transceiver, to communicate with other devices or communication networks. For example, the communication interface 1003 can be any one or a combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, or other device with network access capabilities.

[0149] Bus 1004 is any type of communication bus used to interconnect the internal components of a computing device (e.g., memory 1002, processor 1001, and communication interface 1003). For example, a system bus is provided. The embodiments of this application illustrate the interconnection of the aforementioned components within a computing device via bus 1004. Alternatively, the aforementioned components within computing device 1000 may be communicatively connected to each other using other connection methods besides bus 1004. For example, the aforementioned components within computing device 1000 may be interconnected via an internal logical interface.

[0150] It should be noted that the above-mentioned multiple devices can be respectively arranged on independent chips, or at least partially or completely arranged on the same chip. Whether each device is independently arranged on different chips or integrated on one or more chips often depends on the needs of product design. The embodiments of the present application do not limit the specific implementation form of the above-mentioned devices. The descriptions of the processes corresponding to the above-mentioned figures have different focuses. For parts that are not described in detail in a certain process, please refer to the relevant descriptions of other processes.

[0151] In the above embodiments, all or part of the embodiments may be implemented through software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product that provides a program development platform includes one or more computer instructions. When these computer program instructions are loaded and executed on a computing device, all or part of the functions of the cloud application orchestration method provided in the embodiments of the present application are implemented.

[0152] Furthermore, computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium stores computer program instructions that provide a program development platform.

[0153] Embodiments of the present application also provide a computing device cluster. The computing device cluster includes at least one computing device. The 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 terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0154] Optionally, the structure of at least one computing device included in the computing device cluster may refer to the computing device 1000 shown in Figure 10. The memory 1002 in one or more computing devices 1000 in the computing device cluster may store the same instructions for executing the orchestration method for cloud applications.

[0155] In some possible implementations, the memory 1002 of one or more computing devices 1000 in the computing device cluster may also store partial instructions for executing the orchestration method for cloud applications. In other words, the combination of one or more computing devices 1000 can jointly execute the instructions for executing the orchestration method for cloud applications.

[0156] It should be noted that the memory 1002 in different computing devices 1000 in the computing device cluster can store different instructions, each for executing part of the functions of the orchestration apparatus for cloud applications. In other words, the instructions stored in the memory 1002 in different computing devices 1000 can implement one or more functions of the interaction unit 901 and the orchestration unit 902.

[0157] In some possible implementations, one or more computing devices in a computing device cluster may be connected via a network. The network may be a wide area network or a local area network, etc. FIG11 shows a possible implementation. As shown in FIG11 , two computing devices 1100A and 1100B are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, computing devices 1100A and 1100B include a bus 1102, a processor 1104, a memory 1106, and a communication interface 1108. The memory 1106 in the computing device 1100A stores instructions for executing the functions of the interaction unit 901. At the same time, the memory 1106 in the computing device 1100B stores instructions for executing the functions of the orchestration unit 902.

[0158] It should be understood that the functions of computing device 1100A shown in FIG11 may also be performed by multiple computing devices 1100. Similarly, the functions of computing device 1100B may also be performed by multiple computing devices 1100. Furthermore, the deployment method of the units for implementing the orchestration method for cloud applications in the computing devices may also be adjusted according to application requirements.

[0159] An embodiment of the present application also provides a computer-readable storage medium, which is a non-volatile computer-readable storage medium. The computer-readable storage medium includes program instructions. When the program instructions are executed on a computing device, the computing device implements the cloud application orchestration method provided in the embodiment of the present application.

[0160] An embodiment of the present application also provides a computer program product containing instructions. When the computer program product is run on a computer, it enables the computer to implement the cloud application orchestration method provided by the embodiment of the present application.

[0161] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, which may be a read-only memory, a disk, or an optical disk, etc.

[0162] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, storage, display, etc.), and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the raw data and executable code involved in this application were obtained with full authorization.

[0163] In the embodiments of the present application, the terms "first," "second," and "third" are used for descriptive purposes only and should not be understood as indicating or implying relative importance. The term "at least one" refers to one or more, and the term "plurality" refers to two or more, unless otherwise expressly limited.

[0164] In this application, the term "and / or" simply describes an association between related objects, indicating that three possible relationships exist. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the character " / " in this document generally indicates that the related objects are in an "or" relationship.

[0165] The above description is merely an optional embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the concepts and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A method for orchestrating cloud applications, characterized in that: The method is applied to a cloud platform, and the method comprises: The cloud platform receives an application deployment request sent by a user, where the application deployment request indicates the business logic of the cloud application and the auxiliary functions required to implement the business logic; The cloud platform uses the cloud resources owned by the cloud platform to create a first cloud service based on the business logic, determines a second cloud service based on the auxiliary function, associates the first cloud service with the second cloud service, and obtains a cloud service unit of the on-cloud application; The cloud platform responds to the access request of the cloud application based on the cloud service unit.

2. The method according to claim 1, characterized in that After obtaining the cloud service unit of the cloud application, the method further includes: The cloud platform configures the external access interface of the first cloud service as the external access interface of the cloud service unit; The cloud platform responds to the access request of the cloud application based on the cloud service unit, including: The cloud platform responds to the access request for the cloud service unit based on the access interface of the first cloud service.

3. The method according to claim 1 or 2, characterized in that The application deployment request carries attribute information of the cloud application, where the attribute information indicates the business logic, the auxiliary functions, and the dependency relationship between the business logic and the auxiliary functions.

4. The method according to claim 3, characterized in that The attribute information also indicates one or more of the following: specifications or types of cloud resources used by the first cloud service and the second cloud service, deployment methods, working modes or service assurance policies of the first cloud service and the second cloud service, and access methods of the cloud service units.

5. The method according to any one of claims 1 to 4, characterized in that: The method further comprises: The cloud platform deploys a backup cloud service unit for the cloud service unit based on the application deployment request; When the cloud service unit fails, the cloud platform uses the backup cloud service unit to replace the cloud service unit.

6. The method according to any one of claims 1 to 5, characterized in that: The method further comprises: The cloud platform adjusts specifications of cloud resources used by the first cloud service and / or the second cloud service; And / or, the cloud platform adjusts the total number of the cloud service units.

7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: The cloud platform migrates the cloud service units based on the cloud service units.

8. The method according to any one of claims 1 to 7, characterized in that: The cloud service unit meets one or more of the following requirements: The cloud resource deployment based on different cloud resource deployment areas in the cloud platform is obtained; Alternatively, it is obtained based on at least two deployments of public network resources, cloud resources in the cloud resource deployment area, and the user's own resources.

9. The method according to any one of claims 1 to 8, characterized in that: The cloud platform determines a second cloud service based on the auxiliary function, including: The cloud platform creates the second cloud service based on the auxiliary function, or the cloud platform purchases the second cloud service based on the auxiliary function.

10. The method according to any one of claims 1 to 9, characterized in that: The cloud platform associates the first cloud service with the second cloud service, including: The cloud platform configures the first cloud service to have permission to access the second cloud service.

11. A cloud application orchestration device, characterized in that: The device is applied to a cloud platform, and comprises: An interaction unit, configured to receive an application deployment request sent by a user, wherein the application deployment request indicates the business logic of the cloud application and auxiliary functions required to implement the business logic; An orchestration unit, configured to utilize cloud resources owned by the cloud platform, create a first cloud service based on the business logic, determine a second cloud service based on the auxiliary function, associate the first cloud service with the second cloud service, and obtain a cloud service unit of the cloud application; The interaction unit is used to respond to the access request of the cloud application based on the cloud service unit.

12. The device according to claim 11, characterized in that The orchestration unit is further configured to configure the external access interface of the first cloud service as the external access interface of the cloud service unit; The interaction unit is specifically configured to respond to an access request to the cloud service unit based on an access interface of the first cloud service.

13. The device according to claim 11 or 12, characterized in that The application deployment request carries attribute information of the cloud application, where the attribute information indicates the business logic, the auxiliary functions, and the dependency relationship between the business logic and the auxiliary functions.

14. The device according to claim 13, characterized in that The attribute information also indicates one or more of the following: specifications or types of cloud resources used by the first cloud service and the second cloud service, deployment methods, working modes or service assurance policies of the first cloud service and the second cloud service, and access methods of the cloud service units.

15. The device according to any one of claims 11 to 14, characterized in that: The arrangement unit is further used for: deploying a backup cloud service unit for the cloud service unit based on the application deployment request; When the cloud service unit fails, the backup cloud service unit is used to replace the cloud service unit.

16. The device according to any one of claims 11 to 15, characterized in that The arrangement unit is further used for: Adjusting specifications of cloud resources used by the first cloud service and / or the second cloud service; And / or, adjusting the total number of the cloud service units.

17. The device according to any one of claims 11 to 16, characterized in that: The arrangement unit is further used for: The cloud service unit is migrated based on the cloud service unit.

18. The device according to any one of claims 11 to 17, characterized in that: The cloud service unit meets one or more of the following requirements: The cloud resource deployment based on different cloud resource deployment areas in the cloud platform is obtained; Alternatively, it is obtained based on at least two deployments of public network resources, cloud resources in the cloud resource deployment area, and the user's own resources.

19. The device according to any one of claims 11 to 18, characterized in that The arrangement unit is specifically used for: The second cloud service is created based on the auxiliary function, or the cloud platform purchases the second cloud service based on the auxiliary function.

20. The device according to any one of claims 11 to 19, characterized in that The arrangement unit is specifically used for: The first cloud service is configured to have permission to access the second cloud service.

21. A computing device cluster, characterized in that: The method comprises a plurality of computing devices, wherein the plurality of computing devices comprises a plurality of processors and a plurality of memories, wherein program instructions are stored in the plurality of memories, and the plurality of processors execute the program instructions, so that the computing device cluster executes any one of the methods described in claims 1 to 10.

22. A computer-readable storage medium, characterized in that: The method comprises program instructions, and when the program instructions are executed on a computing device, the computing device is caused to execute the method according to any one of claims 1 to 10.

23. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Cloud resource arrangement method and device, equipment and storage medium

    CN114020448A

  • System and method for centralized authentication and authorization for cloud platform with multiple deployments

    US20180270219A1

  • Cloud platform system

    US20200218580A1