Method and device for arranging applications on cloud
By creating and associated cloud service units with business logic and auxiliary functions on the cloud platform, the problem of limited Kubernetes orchestration scope is solved, and cross-service resource orchestration management and automated deployment and operation of cloud applications are realized.
Patent Information
- Application Number
- CN202311628963.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-30
- Publication Date
- 2025-05-30
AI Technical Summary
Kubernetes has limited orchestration scope and cannot effectively meet the growing demand for cloud services, especially when non-business components are divested to cloud services/third-party middleware, application orchestration becomes complicated.
By receiving user application deployment requests on the cloud platform, creating a first cloud service based on business logic, determining the second cloud service based on auxiliary functions, and associating the two to form a cloud service unit to realize cross-service resource orchestration management.
It realizes cross-service resource orchestration management, solves the application orchestration problem when non-business components are separated into cloud services/third-party middleware, ensures the automated deployment and operation of cloud applications, and helps the further development of cloud applications.
Smart Images

Figure CN120075217A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of cloud services, and particularly relates to an orchestration method and device for applications on the cloud. Background Art
[0002] With the continuous development of cloud service technology, more and more enterprises, institutions and other users (also called tenants or cloud tenants) use cloud services to implement their own businesses. In the process of the cloud platform providing cloud services to users, the cloud platform needs to use cloud resources to deploy application programs for implementing user businesses, and use the application programs to implement user businesses.
[0003] Currently, in the process of the cloud platform providing cloud services to users, Kubernetes is usually used to orchestrate and manage the application programs for implementing user businesses. Kubernetes is an open-source container orchestration engine developed by Google, which supports automated deployment, large-scale scalability, and application containerization management. In Kubernetes, multiple containers can be created, and an application instance can be run in each container.
[0004] However, the orchestration scope of Kubernetes is limited and cannot well meet the growing cloud service requirements. Summary of the Invention
[0005] This application provides an orchestration method and device for applications on the cloud. This application can achieve cross-service resource orchestration management, can solve the application orchestration problem in the case of stripping non-business components to cloud services / third-party middleware, ensures the automated deployment and operation of applications on the cloud, and helps the further development of applications on the cloud. The technical solutions provided by this application are as follows:
[0006] In a first aspect, this application provides an orchestration method for applications on the cloud. This method is applied to a cloud platform. The method includes: the cloud platform receives an application deployment request sent by a user, and the application deployment request indicates the business logic of the application on the cloud 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 functions, associates the first cloud service with the second cloud service to obtain a cloud service unit of the application on the cloud; the cloud platform responds to an access request for the application on the cloud based on the cloud service unit.
[0007] It can be seen from this that when the business logic of the cloud application needs to rely on auxiliary functions to be implemented, the cloud platform can create a cloud service unit including a first cloud service and a second cloud service, and use the cloud service unit as a whole to respond to the access request of the cloud application. Since both the first cloud service and the second cloud service are separate cloud services, the application orchestration method of this application is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can achieve cross-service resource orchestration management, solve the application orchestration problem in the case of non-business components being 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.
[0008] In one implementation, 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. Then, 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.
[0009] Among them, the application deployment request carries the 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.
[0010] Furthermore, the attribute information also indicates one or more of the following: the specifications or types of cloud resources used by the first cloud service and the second cloud service, the deployment methods, working modes, or service guarantee policies of the first cloud service and the second cloud service, and the access method of the cloud service unit.
[0011] In some implementation scenarios, the cloud platform can also manage the cloud application in units of cloud service units. It includes performing one or more of the following management operations on the cloud service unit: lifecycle management operations, availability management operations, elastic scaling operations, and migration operations.
[0012] The cloud platform's execution of lifecycle management operations on the cloud service unit mainly includes: performing operations such as deletion, modification, and query on the cloud service unit in units of the cloud service unit. Performing a deletion operation on the cloud service unit includes: deleting the cloud service unit. Performing a modification operation on the cloud service unit includes: modifying the number and configuration of the cloud services included in the cloud service unit, modifying the relationship between different cloud services in the cloud service unit, etc. Performing a query operation on the cloud service unit includes: querying the running status and configuration information of the cloud service unit and the cloud services therein.
[0013] The cloud platform's execution of availability management operations on the cloud service unit includes: when the 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 the cloud service unit, the high availability of the cloud service can be ensured.
[0014] The elastic scaling operation performed by the cloud platform on the cloud service unit includes: 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 the specified conditions within the specified duration, the cloud platform performs an elastic scaling operation on the cloud service unit. By performing an elastic scaling operation on the cloud service unit, the amount of cloud resources used by the cloud service can be automatically adjusted according to business requirements. On the one hand, it can ensure the effective utilization of cloud resources, and on the other hand, it can reduce unnecessary cloud service costs.
[0015] The migration operation performed by the cloud platform on the cloud service unit includes: the cloud platform takes the cloud service unit as a unit and migrates the entire cloud service unit. The cloud platform can perform a migration operation on the entire cloud service unit based on considerations such as disaster recovery or business transfer to ensure that all cloud service versions in the cloud service unit are consistent and correctly associated, etc., and avoid affecting the functions of the cloud service unit.
[0016] In this application, the cloud service unit satisfies one or more of the following: obtained based on the cloud resource deployment in different cloud resource deployment areas in the cloud platform; or, obtained based on at least two of public network resources, cloud resources in the cloud resource deployment area, and the user's own resources.
[0017] 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.
[0018] Optionally, the cloud platform associates the first cloud service with the second cloud service, including: the cloud platform configures the first cloud service with the permission to access the second cloud service.
[0019] In a second aspect, this application provides an orchestration device for cloud applications. The device is applied to the cloud platform. The device includes: an interaction unit for receiving 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; an orchestration unit for using the 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 function, and associate the first cloud service with the second cloud service to obtain a cloud service unit of the cloud application; an interaction unit for responding to an access request for the cloud application based on the cloud service unit.
[0020] 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. Correspondingly, the interaction unit is specifically configured to respond to an access request for the cloud service unit based on the access interface of the first cloud service.
[0021] Optionally, the application deployment request carries attribute information of the cloud application, and the attribute information indicates business logic, auxiliary functions, and the dependency relationships between the business logic and the auxiliary functions.
[0022] Optionally, the attribute information further indicates one or more of the following: the specifications or types of cloud resources used by the first cloud service and the second cloud service, the deployment methods, working modes, or service guarantee policies of the first cloud service and the second cloud service, and the access methods of the cloud service units.
[0023] 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 use the backup cloud service unit to replace the cloud service unit when the cloud service unit fails.
[0024] Optionally, the orchestration unit is further configured to: adjust the specifications of the cloud resources used by the first cloud service and / or the second cloud service; and / or, adjust the total number of cloud service units.
[0025] Optionally, the orchestration unit is further configured to: migrate the cloud service units in units of cloud service units.
[0026] Optionally, the cloud service unit satisfies one or more of the following: being deployed based on cloud resources in different cloud resource deployment regions in the cloud platform; or being deployed based on at least two of public network resources, cloud resources in the cloud resource deployment region, and the user's own resources.
[0027] Optionally, the orchestration unit is specifically configured to: create a second cloud service based on the auxiliary function, or the cloud platform purchases a second cloud service based on the auxiliary function.
[0028] Optionally, the orchestration unit is specifically configured to: configure the first cloud service to have the permission to access the second cloud service.
[0029] In a third aspect, the present application provides a computing device, including a memory and a processor, where 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 manner thereof.
[0030] In a fourth aspect, the present application provides a computing device cluster, including a plurality of computing devices, the plurality of computing devices including a plurality of processors and a plurality of memories, where program instructions are stored in the plurality of memories, and the plurality of processors run 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 manner thereof.
[0031] 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 run on a computing device, the computing device is caused to execute the method provided in the first aspect of the present application and any possible implementation manner thereof.
[0032] Sixth aspect, the present application provides a computer program product containing instructions. When the computer program product runs on a computer, the computer is caused to execute the method provided in the first aspect of the present application and any possible implementation manner thereof. Description of the Drawings
[0033] Figure 1 FIG. is a schematic structural diagram of an implementation scenario involved in an orchestration method for cloud applications provided in an embodiment of the present application;
[0034] Figure 2 FIG. is a schematic deployment diagram of basic resources in a cloud platform provided in an embodiment of the present application;
[0035] Figure 3 FIG. is a schematic diagram of providing cloud services by using the function of orchestrating applications with cloud resources provided in an embodiment of the present application;
[0036] Figure 4 FIG. is a schematic diagram of an orchestration method for cloud applications implemented through multiple functional modules provided in an embodiment of the present application;
[0037] Figure 5 FIG. is a flowchart of an orchestration method for cloud applications provided in an embodiment of the present application;
[0038] Figure 6 FIG. is a schematic diagram of attribute information carried in an application deployment request provided in an embodiment of the present application;
[0039] Figure 7 FIG. is a flowchart of obtaining a cloud service unit provided in an embodiment of the present application;
[0040] Figure 8 FIG. is a schematic diagram of a cloud service unit including a first cloud service service and second cloud service DCS instances and Nosql instances provided in an embodiment of the present application;
[0041] Figure 9 FIG. is a schematic diagram of an orchestration device for cloud applications provided in an embodiment of the present application;
[0042] Figure 10 FIG. is a schematic structural diagram of a computing device provided in an embodiment of the present application;
[0043] Figure 11It is a schematic structural diagram of a computing device cluster provided by an embodiment of the present application. Detailed implementation manners
[0044] To make the objectives, technical solutions and advantages of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.
[0045] For ease of understanding, the technologies and backgrounds involved in the embodiments of the present application will be explained first below.
[0046] Host (physical machine, PM): The physical resources used to carry virtualization technology. A host is also called a physical machine. Generally, the host for deploying virtual instances is a physical server. A physical machine has multiple physical devices. For example, a physical server has physical devices such as a processor and a memory. Multiple virtual instances can be deployed on one host, and the multiple virtual instances deployed on the same host share the physical resources of the host. According to different usage scenarios, the multiple virtual instances deployed on one host can optionally belong to the same user or different users respectively.
[0047] A resource pool is a collection of various hardware resources and software resources involved in a cloud computing data center. Generally, according to the type of resources, the resources in the resource pool can be divided into computing resources, storage resources, network resources, etc.
[0048] Virtualization is a resource management technology. Virtualization can abstract and transform various entity resources of a host, such as computing resources, network resources, and storage resources, and present them, so as to break the non-separable barriers between the entity structures of the host, enabling users to apply these resources in a better way than the original configuration. The resources obtained through virtualization are called virtualized resources, and the virtualized resources are not restricted by the installation method, setting location, or physical configuration of the existing entity resources.
[0049] A virtual instance runs on the operating system of a host, and the virtual instance itself is set with an operating system. The operating system of the virtual instance runs an application program, which is used to implement the user's business. The virtual instance can use the hardware resources of the host, and different virtual instances are isolated from each other. Generally, a virtual instance can be a virtual machine, a container, an independent process, etc.
[0050] Virtual machine (VM): It refers to a complete computer system with the functions of a complete hardware system obtained through virtualization technology and running in a completely isolated environment. A partial subset of the instructions of the virtual machine can be processed in the host machine, and the other part of the instructions can be executed in an emulated manner. The virtual machine is also called a virtual server. The virtual machine can be regarded as a collection of several virtual devices. The collection of these several virtual devices has the functions of a complete hardware system and runs in a completely isolated environment. The virtual devices are virtually obtained through virtualization technology based on physical devices that can share resources. For example, based on virtualization technology, a virtual processor virtually obtained based on a processor is a kind of virtual device. Another example is that based on virtualization technology, a training card virtually obtained based on a field-programmable gate array (FPGA) is also a kind of virtual device. By way of example, the virtual machine in this application can be a kernel-based virtual machine (KVM).
[0051] A container provides a lightweight virtual running environment. A container can be obtained by packaging all the code, libraries, dependencies, etc. of a user's application program into an image. When the image is executed, the image runs in the virtual running environment. At this time, the container is the running instance of the image, similar to a lightweight sandbox, which can be started, started, stopped, and deleted. The image does not share the resources of the host machine such as memory, processor (such as central processing unit (CPU)), and disk with other images, realizing container isolation between the image and the host, and between the image and other images, ensuring that the processes in the container cannot monitor any processes or resources outside the container.
[0052] An Internet data center (IDC) is a facility and related service system for the operation and maintenance of devices that centrally collect, store, process, and send data based on the Internet network. Conceptually, it can be understood as a public commercial Internet "computer room", and at the same time it is also a kind of IT professional service and an important infrastructure of the IT industry. An IDC is not only a service concept but also a network concept. It constitutes a part of the network basic resources, just like the backbone network and the access network, providing a high-end data delivery service and a high-speed access service. Generally, a user's offline IDC can be understood as the user's offline computer room, where the user uses the existing Internet communication lines and bandwidth resources to establish a standardized telecommunications professional-level computer room environment for providing all-round services such as server hosting, leasing, and related value-added services.
[0053] A service level agreement (SLA) is an agreement signed between a service provider and a customer, which details the service levels, service grades, and relationship terms that the service provider undertakes to provide.
[0054] The role of infrastructure as a service (IaaS) is to provide virtual machines or other resources as services to users.
[0055] The role of platform as a service (PaaS) is to provide a development platform as a service to users.
[0056] The role of software as a service (SaaS) is to provide applications (also known as apps) as services to customers.
[0057] Orchestration in the field of computing 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 resource allocation; 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, etc.
[0058] Cloud-native technologies are used to build and manage applications using the underlying resources owned by a cloud platform. Such applications are also referred to as cloud-native applications or cloud-based applications. Cloud-native technologies emphasize designing cloud-based applications as microservice architectures and deploying them using containerization and automation to achieve high availability, elasticity, and scalability of cloud-based applications. Cloud-based applications can generally operate in an optimal state to meet business needs and respond promptly.
[0059] A very important aspect of application modernization is the cloud-native transformation of applications. Cloud-based applications can build and run scalable applications in modern dynamic environments such as public clouds, private clouds, and hybrid clouds. Containers, microservices, service meshes, and automation are its main features, and major operators all have rich cloud-native suite services. There are complex and frequent calls between various microservices and instances in cloud-based applications, and cloud-based applications contain various types of microservices. The coordination and communication between microservices are achieved through a message bus.
[0060] As more and more application programs are developed, deployed, and operated based on the cloud-native architecture, it brings more challenges to the cloud service capabilities provided by cloud service providers (CSPs). This is due to the need for the globalization of enterprise business, considerations of disaster recovery, reliability, data security, etc., and strategic factors such as the national "Eastern Data and Western Computing" development strategy at the resource level. Under multiple backgrounds, more and more enterprise business application programs hope that cloud service providers can provide cross-regional, convenient business development, deployment, and runtime services.
[0061] To help customer applications achieve cross-regional deployment, scaling, and automatic migration conveniently and efficiently, there are also many studies in the industry, which can be called cross-regional or region-independent, or Multi-region or Global distributed. No matter what name it is called, the purpose is similar, that is, to achieve a new upgrade of the distributed capabilities of the application architecture. The application program can not only run distributed within a region, but also across different regions, and run distributed in the most optimal way globally according to SLA requirements, so as to enhance the competitiveness of customers.
[0062] In addition, not all microservice components of current cloud applications need to be developed and deployed by customers themselves, but many middleware and other services provided on the cloud are used. For example, non-business components of cloud applications use middleware on the cloud, which further increases the complexity of application programs and orchestration.
[0063] However, cloud platforms usually use Kubernetes to orchestrate and manage application programs at present. Kubernetes is an open-source container orchestration engine developed by Google. It supports automated deployment, large-scale scalability, and application containerization management. In Kubernetes, multiple containers can be created, and an application instance can be run in each container.
[0064] However, the orchestration scope of Kubernetes is limited and cannot well meet the growing cloud service requirements. For example, with the development of cloud-native technologies, more and more non-business components are gradually separated into cloud services / third-party middleware, resulting in the fact that a cloud application with an actual microservice architecture has exceeded the orchestration scope of Kubernetes.
[0065] To this end, the embodiments of the present application provide an orchestration method for cloud applications. This 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 of the cloud application. Then, the cloud platform responds to an access request for 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.
[0066] It can be seen from this that when the business logic of a cloud application needs to rely on auxiliary functions for implementation, the cloud platform can create a cloud service unit including the first cloud service and the second cloud service, and respond to an access request for the cloud application with the cloud service unit as a whole. Since the first cloud service and the second cloud service are different cloud services, the application orchestration method of the present application is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can achieve cross-service resource orchestration management, can solve the application orchestration problem in the case of stripping non-business components to cloud services / third-party middleware, ensures the automated deployment and operation of cloud applications, and helps the further development of cloud applications.
[0067] This article introduces the technical solutions of the present application in detail from multiple perspectives such as implementation scenarios, method processes, hardware devices, software devices, etc.
[0068] First, the implementation scenarios of the embodiments of the present application will be illustrated by examples.
[0069] Figure 1 It is a schematic structural diagram of the implementation environment involved in an orchestration method for cloud applications provided by the embodiments of the present application. As Figure 1 shown, 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 embodiments of the present application. A user can interact with the cloud platform 1 through the client 2. For example, a user can send information such as instructions and cloud service requests 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.
[0070] A large number of basic resources owned by cloud service providers are deployed in the cloud platform 1, such as computing resources, storage resources, and network resources, etc. For example, the computing resources can be computing devices (such as servers, etc.) that can provide computing capabilities. The cloud platform can utilize this large number of basic resources to implement the orchestration method of cloud applications provided in the embodiments of this application. In the embodiments of this application, the cloud platform 1 can be the cloud platform of the central cloud, the cloud platform of the edge cloud, or the cloud platform including the central cloud and the edge cloud. The embodiments of this application do not make specific limitations on it. And when the cloud platform 1 is the cloud platform including the central cloud and the edge cloud, the technical solutions provided in the embodiments of this 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. And the cloud platform 1 can be the cloud platform of a private cloud, a public cloud, or a hybrid cloud. The embodiments of this application do not make specific limitations on it.
[0071] In one implementation, as Figure 2 shown, the location of the basic resources in the cloud platform can be described by the cloud resource deployment region (region) and the availability zone (AZ). The user can optionally deploy cloud services based on the resources in a specific region and AZ. Among them, the region is divided from the dimensions of geographical location and network latency. The same region shares public services such as elastic computing, block storage, object storage, virtual private cloud (VPC) network, elastic internet protocol (EIP) address, and image. The region is divided into a general region and a dedicated region. The general region refers to the region that provides general cloud services for public tenants. The dedicated region refers to the dedicated region that carries the same type of business or provides business services for specific tenants. The AZ is a collection of one or more physical data centers. The computing, network, and storage resources within the AZ are logically divided into multiple clusters. A region usually includes multiple AZs. The multiple AZs in a region are connected by high-speed optical fibers to meet the user's need to build a highly available system across AZs.
[0072] The client 2 can optionally be a computer, a personal computer, a laptop computer, a mobile phone, a smartphone, 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.
[0073] In the embodiments 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 performs application orchestration based on the cloud resources owned by the cloud platform 1 for the application deployment request. Among them, application orchestration includes: deploying an application and managing the application.
[0074] Optionally, the function of the cloud platform 1 to orchestrate applications using cloud resources can be abstracted by a cloud service provider into a cloud service in the cloud platform 1. This cloud service can be provided as an independent cloud service or as an additional service of other cloud services. For example, this cloud service can optionally be provided as an enhanced capability of existing cloud services (such as Kubernetes, cloud native services, container cluster services, etc.). As Figure 3 shown, a large number of basic resources owned by the cloud service provider are deployed in the cloud platform 1. The cloud platform 1 can provide an infrastructure management platform based on these basic resources and provide basic cloud services such as IaaS based on this infrastructure management platform. On this basis, the cloud platform 1 can also provide higher-order cloud services such as PaaS and SaaS. At the same time, by using the application orchestration method for cloud applications provided in the embodiments of the present application, the cloud platform 1 can further orchestrate applications for users based on the basic resources owned by the cloud platform, the basic cloud services and higher-order cloud services already provided by the cloud platform. At this time, this function is equivalent to adding an application orchestration layer that comprehensively manages the infrastructure management platform and higher-order services on the basis of the cloud platform 1. It adds a more convenient and automated application management method and does not affect the use of existing cloud services such as IaaS, PaaS, and SaaS. Alternatively, the function of orchestrating applications in the present application can also be provided in the form of an automated tool, which is used to orchestrate application programs based on user instructions. For example, this function is used as an automated tool provided by a cloud service provider. When running this automated tool, it can orchestrate applications based on the application orchestration information provided by the user. In addition, this function can also be provided externally in the form of an open-source tool, an open-source project, an enhanced function of an already open-sourced tool or an already open-sourced project. The embodiments of the present application do not make specific limitations on its presentation form.
[0075] In one implementation, the application orchestration method for cloud applications provided in the embodiments of the present application can be implemented by a computing device in the cloud platform 1 running an executable program. For example, the executable program for implementing this application orchestration method for cloud applications can optionally be presented in the form of an application installation package. After the computing device in the cloud platform 1 installs this application installation package, it can implement the application orchestration method for cloud applications provided in the embodiments of the present application by running the executable program therein.
[0076] Furthermore, the application orchestration method for cloud applications provided in the embodiments of the present application can be implemented by multiple functional modules. Exemplarily, asFigure 4 As shown in the figure, 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. Among them, the interaction module, the unit management module, the unit scheduling module, the cloud service management module, and the unit status monitoring module are deployed on the management side, and 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 for responding to the requests, and feedback the execution results of the requests to the users. The unit management module is used to determine various cloud services required to implement the cloud application and their requirements for cloud resources based on the application deployment requests distributed by the interaction module during the process of deploying cloud applications. The unit scheduling module is used to schedule the resources for deploying cloud applications based on the requirements of cloud applications for cloud resources and the relevant information of the basic resources owned by the cloud platform. The cloud service management module is used to provide various cloud services required for cloud applications based on the scheduling decisions of 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 cloud applications. The unit status monitoring module is used to monitor cloud service units based on specified management purposes and provide monitoring results to the unit management module. The unit management module is also used to decide whether to perform management operations corresponding to the execution management purposes on cloud service units based on the monitoring results, and send instructions to the execution module when it is necessary to perform management operations on cloud service units. The execution module is used to perform corresponding management operations on cloud service units based on the instructions sent by the unit management module.
[0077] In one implementation scenario, a cloud application includes one or more cloud service unit sets, and each cloud service unit set 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.
[0078] It should be understood that the above content is an exemplary description of the application scenario of the cloud application orchestration method provided in the embodiments of the present application, and does not constitute a limitation on the application scenario of the cloud application orchestration method. Those of ordinary skill in the art know that as the business requirements change, its application scenario can be adjusted according to application requirements, and the embodiments of the present application do not list them one by one.
[0079] Next, the cloud application orchestration method provided in the embodiments of the present application will be described. As Figure 5 shown, the cloud application orchestration method includes the following steps:
[0080] Step 501: The cloud platform receives an application deployment request sent by a user, and the application deployment request indicates the business logic of the cloud application and the auxiliary functions required to implement the business logic.
[0081] When a user needs to deploy an application on the cloud, an application deployment request can be sent from the client used by the user to the cloud platform to request the cloud platform to deploy the user's application using cloud resources. The application deployment request can indicate the business logic of the application on the cloud and the auxiliary functions required to implement the business logic, so that the cloud platform can deploy the application for the user based on this.
[0082] Optionally, the application deployment request can directly indicate the business logic and auxiliary functions. For example, the application deployment request carries attribute information of the application on the cloud, and this attribute information indicates the business logic and auxiliary functions. Or, 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 this other request carries information indicating the business logic and auxiliary functions (such as attribute information), and if this other request is associated with the application deployment request, then based on the association relationship between the other request and the application deployment request, it is possible to determine the information indicating the business logic and auxiliary functions carried by this other request, which is used to indicate the business logic and auxiliary functions of the application on the cloud indicated by the application deployment request. The following takes the application deployment request carrying attribute information as an example for illustration.
[0083] The user can use the application orchestration template and the configuration interface to transmit to the cloud platform the attribute information indicating the application on the cloud. Among them, the application orchestration template is a document used to deploy an application on the cloud written according to certain application orchestration specifications. For example, the application orchestration template instructs the user to fill in what functions the entire application needs to include and the relationships between the various functions. When the user needs to indicate the attribute information of the application on the cloud to the cloud platform, the user can first obtain the application orchestration template, then according to the instructions of the application orchestration template, add the attribute information of the application on the cloud to be deployed in 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 optionally 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 the configuration interface.
[0084] 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 dependency relationship between the business logic and the auxiliary functions. The business logic is used to indicate the logic for implementing the cloud application. For example, assuming that a cloud service is used to implement video review, the business logic is used to indicate the way to review the video. The auxiliary functions required to implement the business logic refer to the functions that the cloud application must have to implement the business logic, but are not the functions of the business logic. For example, to review a video, it is necessary to cache the video to be reviewed first. Then, the function of caching the video is a function that must be available for video review, but this function is not the function of the business logic. Therefore, the function of caching the video is an auxiliary function required for video review. The dependency relationship between the business logic and the auxiliary functions is the dependency relationship between the first cloud service for implementing the business logic and the second cloud service for implementing the auxiliary functions during deployment and operation. For example, when the second cloud service is a database, the dependency relationship can be that 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 be started normally.
[0085] Optionally, the attribute information further indicates one or more of the following: the specifications or types of cloud resources used by the first cloud service and the second cloud service, the deployment methods, working modes, or service guarantee policies of the first cloud service and the second cloud service, and the access method of the cloud service unit.
[0086] The cloud resources used by the cloud service are virtual instances created based on the physical resources owned by the cloud platform. The specifications of the cloud resources indicate the specifications of the virtual instances created based on the physical resources owned by the cloud platform. For example, if the cloud resources used by the cloud service are containers, the specifications of the containers indicate the number and cores of virtual processors used by the containers, the capacity of virtual memory, the size of virtual bandwidth, etc.
[0087] The type of cloud resources can optionally indicate that the cloud resources are basic instances or instances with deployed services. The alternatives for basic 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, basic instances in a cloud container engine (CCE) cluster, or cloud container instance (CCI) instances.
[0088] The deployment method of the cloud service indicates the deployment strategy of the cloud service, such as the multi-active strategy, the primary / standby strategy, or other strategies for ensuring performance (such as the cost strategy and the regional affinity strategy), etc. Optionally, the deployment method 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 region (region) and / or availability zone where the physical resources for deploying the cloud resources are located, etc. For another example, the deployment strategy indicates that the deployment of multiple cloud services in the cloud service unit satisfies one or more of the following: being deployed based on the cloud resources in the same cloud resource deployment region in the cloud platform; or being deployed based on the cloud resources in different cloud resource deployment regions in the cloud platform; or being deployed based on at least two of the public network resources, the cloud resources in the cloud resource deployment region, and the user's own resources. The public network resources are the resources deployed on the Internet. The user's own resources are the resources owned by the user outside the cloud platform. For example, the own resources are the resources of the user's offline computer room, such as IDC, or the resources in other cloud platforms purchased by the user.
[0089] The working mode of the cloud service indicates the way in which the cloud service provides services. For example, the working mode indicates that the cloud service provides services in the primary / standby working mode, as well as the backup strategy of the cloud service. Optionally, the working mode of the cloud service is also used to indicate the requirements for the operation object when the cloud service performs an operation on the operation object. For example, when the cloud service is used for storing data, the working mode of the cloud service also indicates the type of data stored by the cloud service.
[0090] The service guarantee strategy of the cloud service unit indicates the strategy used to ensure the service quality of the cloud service. This strategy may optionally include the strategy of the cloud service unit internally and the strategy of the cloud service unit externally. The strategy of the cloud service unit internally includes: the strategy that affects the performance of each cloud service in the cloud service unit. For example, the access latency and throughput of the cloud service, etc. The strategy of the cloud service unit internally will affect the deployment location of each cloud service in the cloud service unit. For example, it affects whether different cloud services in the cloud service unit need to be deployed in the same availability zone. The strategy of the cloud service unit externally includes: the strategy that affects the business goals of the cloud services provided by the cloud service unit. For example, the throughput of the cloud service unit (such as the number of transactions per second (TPS)) and the latency, etc. The strategy of the cloud service unit externally will affect the scheduling decision when orchestrating the cloud service unit. For example, it affects whether the cloud service unit can be deployed across cloud resource deployment regions.
[0091] The access mode of the cloud service unit indicates the way to access the cloud service unit. In one implementable manner, 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 mode of the cloud service unit indicates that the external access interface of the first cloud service is used as the external access interface of the cloud service unit. Optionally, the access mode 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).
[0092] Exemplarily, Figure 6 is a schematic diagram of the attribute information carried by an application deployment request provided by an embodiment of the present application. As Figure 6 shown, the attribute information indicates the following content:
[0093] 1) Figure 6 The content after service in it indicates that the first cloud service used to implement the business logic of the cloud application includes: service-1, service-2, etc.;
[0094] 2) Figure 6 The content after API in it 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;
[0095] 3) Figure 6 The content after replicas in it indicates that the primary and standby strategies of multiple first cloud services are all backed up by using the replication method;
[0096] 4) Figure 6 The content after status in it indicates the requirements for the running status of the instances used to deploy multiple cloud services;
[0097] 5) Figure 6 The content after add-service in it indicates that the second cloud service used to implement the auxiliary function includes: datastore;
[0098] 6) Figure 6 The content after mode in it indicates the working mode of the second cloud service datastore;
[0099] 7) Figure 6 The content after back-up strategy in it indicates the backup strategy of the second cloud service datastore;
[0100] 8) Figure 6The content after "pipeline" indicates the relationship between the first cloud service and the second cloud service, including the dependence, and the content after "configuration" indicates the configuration policy corresponding to this relationship;
[0101] 9) Figure 6 "resources" indicates the specifications and types of cloud resources used by the first cloud service and the second cloud service;
[0102] 10) Figure 6 "policy" indicates policies such as the SLA of the cloud service unit.
[0103] It should be noted that the business logic can optionally depend on multiple auxiliary functions for implementation. At this time, the cloud service unit can 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 an application on the cloud include: data storage function, message service function, and log service function. Then these three functions can be implemented by three second cloud services respectively. In this article, the implementation process of the cloud application orchestration method provided in this application is described by taking the business logic depending on one auxiliary function for implementation as an example. When the business logic depends on multiple auxiliary functions for implementation, please refer to the implementation process of the business logic depending on one auxiliary function for implementation accordingly, and the embodiments of this application will not elaborate on it.
[0104] Step 502: 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 to obtain a cloud service unit of the cloud application, and deploys a backup cloud service unit of this cloud service unit.
[0105] After receiving the application deployment request sent by the user, the cloud platform can deploy the cloud service unit based on this application deployment request. The process of the cloud platform deploying the cloud service unit includes: using the cloud resources owned by the cloud platform to create a first cloud service based on the business logic, determining a second cloud service based on the auxiliary function, and associating the first cloud service with the second cloud service to obtain the cloud service unit. Optionally, when the attribute information indicates that the cloud platform also needs to create components other than the cloud service unit, the cloud platform also needs to create this component based on the attribute information. For example, when the attribute information indicates that the cloud service unit runs in the primary and standby mode, the cloud platform also needs to create a backup cloud service unit for the cloud service unit.
[0106] In one implementation, the cloud platform can identify one or more of the cloud services required to implement the cloud application, their requirements for cloud resources, the deployment methods and working modes of the cloud services, the service guarantee policies and access methods of the cloud service units, etc., based on the attribute information of the cloud application on the cloud. Then, based on this information, resource scheduling is performed to determine the cloud resources used to create the cloud service unit. And based on this cloud resource, a first cloud service for implementing the business logic is created, a second cloud service for implementing the auxiliary function is created or purchased, and the first cloud service is configured with the permission to access the second cloud service. Then, the first cloud service and the second cloud service are encapsulated into a cloud service unit. After obtaining the cloud service unit, the cloud platform also needs to configure the external access interface of the cloud service unit based on the access method of the cloud service unit, so as to respond to the access request of the cloud application based on this external access interface. For example, when the access method of the cloud service unit indicates that the external access interface of the first cloud service is used as the external access interface of the cloud service unit, the cloud platform configures the external access interface of the first cloud service as the external access interface of the cloud service unit. It should be noted that in some scenarios, the user may not indicate some of the information on which the resource scheduling depends in the above process. At this time, the cloud platform can adaptively determine this unindicated information and then perform resource scheduling based on it. For example, when the user does not indicate the deployment locations of the first cloud service and the second cloud service, the cloud platform can determine the deployment locations of the first cloud service and the second cloud service based on the service guarantee policy and the usage of the basic resources in the cloud platform.
[0107] Among them, when creating virtual instances for multiple cloud services in the same cloud service unit, virtual instances can be created separately for each cloud service. After the creation of the virtual instance of any cloud service is completed, the virtual instance can be bound for use by the cloud service. And, to ensure the realization of the functions of the cloud service unit, during the process of configuring the cloud service unit, it is also necessary to configure the network resources, storage resources, etc. required for the operation of the cloud service unit. When the cloud service unit includes multiple first cloud services, during the process of configuring the cloud service unit, it is also necessary to configure components such as gateways in the cloud service unit for distributing tasks to multiple first cloud services.
[0108] Exemplarily, Figure 7 is a flowchart of obtaining a cloud service unit provided by an embodiment of the present application. As Figure 7As shown in the figure, after receiving an application deployment request, the cloud platform can obtain the attribute information of the cloud application, and based on the attribute information, identify that the second cloud service component on which the first cloud service component service depends is a cloud service instance with storage function and its requirements for cloud resources, identify the requirements of the first cloud service component for cloud resources, obtain that the cloud resources required by the first cloud service component are Kubernetes containers, and identify information such as the SLA requirements that the cloud service unit needs to meet, and obtain the service capabilities, resource capacities, and prices 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 to create the cloud service unit are located. Then, based on the resources in this 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 and used as the second cloud service. Then, configure the first cloud service service to have the permission to access the second cloud service, encapsulate the first cloud service service and the second cloud service into a cloud service unit, and configure the endpoint of the first cloud service service as the endpoint of the cloud service unit to provide cloud services externally using this endpoint. Among them, Figure 8 It is a schematic diagram of a cloud service unit including a first cloud service service and second cloud service DCS instances and Nosql instances. Figure 4 The dotted box in the figure shows another schematic diagram of the cloud service unit configured within the region. As Figure 4 shown, 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 virtual instances.
[0109] As can be seen from the above, the process of orchestrating an application includes many cumbersome and complex operations. The method for orchestrating cloud applications provided by the embodiments of this application can automatically execute the above operations. Without the method for orchestrating cloud applications provided by the embodiments of this application, operations that exceed the scope of Kubernetes orchestration in the above operations need to be completed manually by users. For example, all operations related to the second cloud service in the above operations need to be manually executed by users. Therefore, this application reduces the difficulty of providing cloud services.
[0110] Step 503: The cloud platform responds to the access request of the cloud application based on the cloud service unit.
[0111] After obtaining the cloud service unit, the cloud platform can respond to the access requests of the cloud applications as a whole with the cloud service unit. 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 the access requests for the cloud service unit based on the access interface of the first cloud service.
[0112] Step 504: The cloud platform manages the cloud applications in units of cloud service units.
[0113] The cloud platform manages the cloud applications in units of cloud service units, including performing one or more of the following management operations on the cloud service units: lifecycle management operations, availability management operations, elastic scaling operations, and migration operations.
[0114] The cloud platform's execution of lifecycle management operations on the cloud service units mainly includes: performing operations such as deletion, modification, and query on the cloud service units in units of cloud service units. Performing a deletion operation on a cloud service unit includes: deleting the cloud service unit. Performing a modification operation on a cloud service unit includes: modifying the number and configuration of the cloud services included in the cloud service unit, modifying the relationship between different cloud services in the cloud service unit, etc. Performing a query operation on a cloud service unit includes: querying the running status and configuration information of the cloud service unit and the cloud services therein. When the cloud application orchestration method provided in the embodiments of this application passes through Figure 4 the multiple functional modules shown, the cloud platform's execution of lifecycle management operations on the cloud service units is implemented through the unit management module and the cloud service management module. The unit management module is used to receive the lifecycle management request sent by the user and forward the request to the cloud service management module. The cloud service management module is used to execute the operation indicated by the request.
[0115] The cloud platform's execution of availability management operations on the cloud service units includes: 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 the cloud service units, the high availability of cloud services can be ensured. When the cloud application orchestration method provided in the embodiments of this application passes through Figure 4 the multiple functional modules shown, the cloud platform's execution of availability management operations on the cloud service units is implemented through the unit management module, the unit status monitoring module, and the execution module. The unit status monitoring module is used to monitor the running status of the cloud service unit, and when the cloud service unit fails, send a notification indicating that the cloud service unit has failed to the unit management module. The unit management module is used to, based on this notification, instruct the execution module to use a backup cloud service unit to replace the cloud service unit to provide cloud services. The execution module is used to, based on the instruction of the unit management module, use a backup cloud service unit to replace the cloud service unit to provide cloud services.
[0116] The elastic scaling operation performed by the cloud platform on the cloud service unit includes: 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 the specified conditions within the specified duration, the cloud platform performs an elastic scaling operation on the cloud service unit. Among them, the specified duration and the specified conditions can be set according to application requirements, and no specific limitation is made here. Moreover, the cloud platform can also determine whether to perform an elastic scaling operation based on other elastic scaling policies, and no detailed examples are given in this application. By performing an elastic scaling operation on the cloud service unit, the amount of cloud resources used by the cloud service can be automatically adjusted according to business requirements. On the one hand, it can ensure the effective utilization of cloud resources, and on the other hand, it can reduce unnecessary cloud service costs. When the cloud application orchestration method provided in the embodiments of this application passes through Figure 4 When implemented by the multiple functional modules shown, the cloud platform performs an availability management operation 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 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 used to decide whether to perform an elastic scaling operation on the cloud service unit based on the business load of the cloud service unit, and when it is necessary to perform an elastic scaling operation on the cloud service unit, send an instruction to the execution module. The execution module is used to perform an elastic scaling operation on the cloud service unit based on the instruction of the unit management module.
[0117] The migration operation performed by the cloud platform on the cloud service unit includes: the cloud platform takes the cloud service unit as a unit and migrates the entire cloud service unit. The cloud platform can perform a migration operation on the entire cloud service unit based on considerations such as disaster recovery or business transfer to ensure that all cloud service versions in the cloud service unit are consistent and correctly associated, etc., and avoid affecting the functions of the cloud service unit. When the cloud application orchestration method provided in the embodiments of this application passes through Figure 4 When implemented by the multiple functional modules shown, the cloud platform performs a migration operation on the cloud service unit through the unit management module and the execution module. The unit management module is used to decide whether to perform a migration operation on the cloud service unit, and when it is necessary to perform a migration operation on the cloud service unit, send an instruction to the execution module. The execution module is used to perform a migration operation on the cloud service unit based on the instruction of the unit management module.
[0118] In summary, in the cloud application orchestration method provided in the embodiments of the present application, when the business logic of a cloud application depends on the implementation of auxiliary functions, the cloud platform can create a cloud service unit including a first cloud service and a second cloud service, and use the cloud service unit as a whole to respond to access requests for the cloud application. Since both the first cloud service and the second cloud service are separate cloud services, the application orchestration method of the present application is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can achieve cross-service resource orchestration management, solve the application orchestration problem in the case where 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.
[0119] It should be noted that the order of the steps of the cloud application orchestration method provided in the embodiments of the present application can be appropriately adjusted, and the steps can also be increased or decreased accordingly according to the situation. Any method of change that can be easily thought of by those skilled in the art within the technical scope disclosed in the present application should be covered within the protection scope of the present application, and thus will not be elaborated herein.
[0120] The following is an example of the virtual device in the embodiments of the present application.
[0121] The above introduces the cloud application orchestration method in the embodiments of the present application. Corresponding to the above method, the embodiments of the present application also provide a cloud application orchestration device. Figure 9 It is a schematic structural diagram of a cloud application orchestration device provided in the embodiments of the present application. Based on Figure 9 the following multiple components shown, the Figure 9 cloud application orchestration device shown can execute all or part of the operations shown above. Figure 5 It should be understood that the device may include more additional components than those shown or omit some of the components shown. The embodiments of the present application do not limit this. Optionally, the cloud application orchestration device can be configured on the cloud platform. As Figure 9 shown, the cloud application orchestration device 90 may include:
[0122] An interaction unit 901, configured 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.
[0123] An orchestration unit 902, configured to use the 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, and associate the first cloud service with the second cloud service to obtain a cloud service unit of the cloud application.
[0124] The interaction unit 901 is configured to respond to an access request for the cloud application based on the cloud service unit.
[0125] 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. Correspondingly, the interaction unit 901 is specifically configured to respond to an access request for the cloud service unit based on the access interface of the first cloud service.
[0126] Optionally, the application deployment request carries attribute information of the cloud application, and the attribute information indicates business logic, auxiliary functions, and the dependency relationship between the business logic and the auxiliary functions.
[0127] Optionally, the attribute information further indicates one or more of the following: the specifications or types of cloud resources used by the first cloud service and the second cloud service, the deployment methods, working modes, or service guarantee policies of the first cloud service and the second cloud service, and the access method of the cloud service unit.
[0128] 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.
[0129] Optionally, the orchestration unit 902 is further configured to: adjust the specifications of the cloud resources used by the first cloud service and / or the second cloud service; and / or, adjust the total number of cloud service units.
[0130] Optionally, the orchestration unit 902 is further configured to: migrate the cloud service units in units of cloud service units.
[0131] Optionally, the cloud service unit satisfies one or more of the following: obtained by deploying cloud resources in different cloud resource deployment areas in the cloud platform; or obtained by deploying at least two of public network resources, cloud resources in the cloud resource deployment area, and the user's own resources.
[0132] Optionally, the orchestration unit 902 is specifically configured to: create a second cloud service based on the auxiliary function, or the cloud platform purchases a second cloud service based on the auxiliary function.
[0133] Optionally, the orchestration unit 902 is specifically configured to: configure the first cloud service to have the permission to access the second cloud service.
[0134] Here, for the detailed working processes of the interaction unit 901 and the orchestration unit 902, please refer to the descriptions in the foregoing method embodiments. For example, the interaction unit 901 receives an application deployment request sent by a user by adopting step 501 in the foregoing method for orchestrating cloud applications; the orchestration unit 902 creates a first cloud service based on the cloud resources owned by the cloud platform and the business logic, determines a second cloud service based on the auxiliary function, and associates the first cloud service with the second cloud service by adopting step 502 in the foregoing method for orchestrating cloud applications to obtain a cloud service unit of the cloud application. The embodiments of the present application will not be described repeatedly herein.
[0135] In summary, in the cloud application orchestration device provided in the embodiments of the present application, when the business logic of a cloud application needs to rely on an auxiliary function for implementation, the cloud platform can create a cloud service unit including a first cloud service and a second cloud service, and respond to an access request of the cloud application as a whole with the cloud service unit. Since both the first cloud service and the second cloud service are separate cloud services, the way of orchestrating applications in the present application is equivalent to an application orchestration method across multiple cloud services. This application orchestration method can realize cross-service resource orchestration management, can solve the application orchestration problem in the case where non-business components are stripped into cloud services / third-party middleware, guarantees the automated deployment and operation of cloud applications, and helps the further development of cloud applications.
[0136] Among them, both the interaction unit 901 and the orchestration unit 902 can be implemented by software or can be implemented by hardware. Exemplarily, next, taking the interaction unit 901 as an example, the implementation manner of the interaction unit 901 will be introduced. Similarly, the implementation manner of the orchestration unit 902 can refer to the implementation manner of the interaction unit 901.
[0137] As an example of a software functional unit, the interaction unit 901 may include code running on a computing instance. Among them, the computing instance may include at least one of a physical host (computing device), a virtual machine, and a container. Further, the foregoing 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 for running the code may be distributed in the same region, or may be distributed in different regions. Further, the multiple hosts / virtual machines / containers for running the code may be distributed in the same availability zone (AZ), or may be distributed in different AZs, and each AZ includes one data center or multiple geographically proximate data centers. Among them, generally one region may include multiple AZs.
[0138] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed within the same virtual private cloud (VPC) or across multiple VPCs. Usually, one VPC is set up within one region. To enable cross-region communication between two VPCs within the same region or between VPCs in different regions, a communication gateway needs to be set up within each VPC, and the interconnection between VPCs is achieved through the communication gateway.
[0139] 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 also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). Among them, the above-mentioned PLD may be implemented by a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
[0140] The multiple computing devices included in the interaction unit 901 can be distributed within the same region or across different regions. The multiple computing devices included in the interaction unit 901 can be distributed within the same availability zone (AZ) or across different AZs. Similarly, the multiple computing devices included in the interaction unit 901 can be distributed within the same VPC or across multiple VPCs. Among them, the multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0141] 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 orchestration method for cloud applications. The steps to be implemented by the interaction unit 901 and the orchestration unit 902 can be specified as needed. By implementing different steps in the orchestration method for cloud applications through the interaction unit 901 and the orchestration unit 902 respectively, all functions of the cloud application orchestration device can be realized.
[0142] Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes of the above-described respective components can refer to the corresponding content in the foregoing method embodiments and will not be elaborated herein.
[0143] The basic hardware structure involved in the embodiments of the present application will be exemplified below.
[0144] The embodiments of the present application provide a computing device. This computing device is used to implement some or all of the functions in the cloud application orchestration method provided by the embodiments of the present application. Figure 10 It is a schematic structural diagram of a computing device provided by the embodiments of the present application. As Figure 10 shown, 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 communicatively connected to each other through the bus 1004.
[0145] The processor 1001 may include a general-purpose processor and / or a dedicated hardware chip. The 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). The dedicated hardware chip is a high-performance processing hardware module. The dedicated hardware chip includes 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). The processor 1001 may also be an integrated circuit chip with signal processing capabilities. In the implementation process, some or all of the functions of the cloud application orchestration method of the present application may be completed by the integrated logic circuit in the hardware of the processor 1001 or instructions in software form.
[0146] The memory 1002 is used to store a computer program, which includes an operating system 1002a and executable code (i.e., program instructions) 1002b. The memory 1002 is, for example, a read-only memory or other types of static storage devices that can store static information and instructions, or a random access memory or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory, a read-only optical disc or other optical disc storage, optical disc storage (including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or any other medium that can be used to carry or store the desired executable code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. For example, the memory 1002 is used to store the outbound port queue, etc. The memory 1002 exists independently, for example, and is connected to the processor 1001 through the bus 1004. Alternatively, the memory 1002 and the processor 1001 are integrated together. The memory 1002 can store executable code. When the executable code stored in the memory 1002 is executed by the processor 1001, the processor 1001 is used to execute some or all of the functions of the cloud application orchestration method provided in the embodiments of the present application. For the implementation manner of the processor 1001 to execute this process, please refer to the relevant descriptions in the foregoing embodiments accordingly. The memory 1002 may also include software modules and data required for other running processes such as an operating system.
[0147] The communication interface 1003 uses a transceiver module such as, but not limited to, a transceiver to implement communication with other devices or communication networks. For example, the communication interface 1003 can be any one or any combination of the following devices: a network interface (such as an Ethernet interface), a wireless network card, or other devices with network access functions.
[0148] The bus 1004 is of any type and is used to implement the interconnection of internal components of a computing device (for example, the memory 1002, the processor 1001, the communication interface 1003), such as a system bus. In the embodiments of the present application, the above components inside the computing device are interconnected through the bus 1004 as an example. Optionally, the above components inside the computing device 1000 can also communicate with each other using other connection methods in addition to the bus 1004. For example, the above components inside the computing device 1000 are interconnected through an internal logical interface.
[0149] It should be noted that the above-mentioned multiple devices can be respectively disposed on independent chips, or at least partially or entirely disposed on the same chip. Whether to independently dispose each device on different chips or integrate and dispose them 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 forms of the above-mentioned devices. And the descriptions of the processes corresponding to the above-mentioned respective drawings have different focuses. For parts not detailed in a certain process, reference can be made to the relevant descriptions of other processes.
[0150] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product providing the program development platform includes one or more computer instructions. When these computer program instructions are loaded and executed on a computing device, the functions of the cloud application orchestration method provided by the embodiments of the present application are implemented in whole or in part.
[0151] Moreover, the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium stores the computer program instructions providing the program development platform.
[0152] The embodiments of the present application further provide a cluster of computing devices. The cluster of computing devices 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 smart phone.
[0153] Optionally, for the structure of at least one computing device included in the cluster of computing devices, reference can be made to Figure 10 the computing device 1000 shown. Instructions for executing the cloud application orchestration method that are the same can be stored in the memory 1002 of one or more of the computing devices 1000 in the cluster of computing devices.
[0154] In some possible implementation manners, partial instructions for executing the cloud application orchestration method can also be respectively stored in the memory 1002 of one or more of the computing devices 1000 in the cluster of computing devices. In other words, the combination of one or more of the computing devices 1000 can jointly execute the instructions for executing the cloud application orchestration method.
[0155] It should be noted that the memories 1002 in different computing devices 1000 in the computing device cluster may store different instructions, which are respectively used to execute some functions of the orchestration device of the cloud application. That is, the instructions stored in the memories 1002 in different computing devices 1000 can implement the functions of one or more of the first determination module 1301, the second determination module 1302, and the third determination module 1303.
[0156] In some possible implementation manners, one or more computing devices in the computing device cluster may be connected through a network. Among them, the network may be a wide area network or a local area network, etc. Figure 11 A possible implementation manner is shown. As Figure 11 shown, two computing devices 1100A and 1100B are connected through a network. Specifically, they are connected to the network through the communication interfaces in each computing device. In this type of possible implementation manner, the 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 function of the first determination module 1301. At the same time, the memory 1106 in the computing device 1100B stores instructions for executing the functions of the second determination module 1302 and the third determination module 1303.
[0157] It should be understood that Figure 11 the functions of the computing device 1100A shown in can also be completed by multiple computing devices 1100. Similarly, the functions of the computing device 1100B can also be completed by multiple computing devices 1100. And the deployment manner of the modules for implementing the cloud application orchestration method in the computing device can also be adjusted according to application requirements.
[0158] The 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 run on a computing device, the computing device is enabled to implement the cloud application orchestration method provided by the embodiment of the present application.
[0159] The embodiment of the present application also provides a computer program product containing instructions. When the computer program product runs on a computer, the computer is enabled to implement the cloud application orchestration method provided by the embodiment of the present application.
[0160] Those of ordinary skill in the art can understand that all or part of the steps for implementing the above embodiments can be completed by hardware, or can be completed by a program instructing relevant hardware. The program can be stored in a computer-readable storage medium. The above-mentioned storage medium can be a read-only memory, a magnetic disk, an optical disc, etc.
[0161] It should be noted that the information involved in this application (including but not limited to user device information, user personal information, etc.), data (including but not limited to data for analysis, stored data, displayed data, etc.), and signals are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data need to comply with the relevant laws, regulations, and standards of relevant countries and regions. For example, the original data and executable code involved in this application are obtained under full authorization.
[0162] In the embodiments of this application, the terms "first", "second", and "third" are only used for descriptive purposes and should not be construed as indicating or implying relative importance. The term "at least one" means one or more, and the term "multiple" means two or more, unless otherwise clearly defined.
[0163] The term "and / or" in this application is merely a description of the association relationship between associated objects, indicating that three relationships can 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 article generally represents an "or" relationship between the associated objects before and after.
[0164] The above are only optional embodiments of this application and are not intended to limit this application. Any modifications, equivalent replacements, improvements, etc. made within the concept and principle of this application shall be included within the protection scope of this application.
Claims
1. A method for orchestrating cloud applications, characterized in that, the method is applied to a cloud platform, and the method includes: the cloud platform receives an application deployment request sent by a user, and 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, creates a first cloud service based on the business logic, determines a second cloud service based on the auxiliary functions, and associates the first cloud service with the second cloud service to obtain a cloud service unit of the cloud application; the cloud platform responds to an access request for 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 an access request for the cloud application based on the cloud service unit, including: the cloud platform responds to an 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, and 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 further indicates one or more of the following: the specifications or types of cloud resources used by the first cloud service and the second cloud service, the deployment methods, working modes, or service guarantee policies of the first cloud service and the second cloud service, and the access method of the cloud service unit.
5. The method according to any one of claims 1 to 4, characterized in that, the method further includes: the cloud platform deploys a backup cloud service unit for the cloud service unit based on the application deployment request; the cloud platform uses the backup cloud service unit to replace the cloud service unit when the cloud service unit fails.
6. The method according to any one of claims 1 to 5, characterized in that, the method further includes: 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.
7. The method according to any one of claims 1 to 6, characterized in that, the method further includes: the cloud platform migrates the cloud service units in units of the cloud service units.
8. The method according to any one of claims 1 to 7, characterized in that, the cloud service unit satisfies one or more of the following: deployed based on cloud resources in different cloud resource deployment regions in the cloud platform; or, deployed based on at least two of public network resources, cloud resources in the cloud resource deployment region, 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 the second cloud service based on the auxiliary functions, 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, wherein, the cloud platform associates the first cloud service with the second cloud service, including: the cloud platform configures the first cloud service to have the permission to access the second cloud service.
11. An orchestration device for an application on the cloud, wherein, the device is applied to a cloud platform, and the device includes: an interaction unit, configured to receive an application deployment request sent by a user, where the application deployment request indicates the business logic of the application on the cloud and the auxiliary function required to implement the business logic; an orchestration unit, configured to use the 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 function, and associate the first cloud service with the second cloud service to obtain a cloud service unit of the application on the cloud; the interaction unit is configured to respond to an access request for the application on the cloud based on the cloud service unit.
12. The device according to claim 11, wherein, the orchestration unit is further configured to configure an external access interface of the first cloud service as an external access interface of the cloud service unit; the interaction unit is specifically configured to respond to an access request for the cloud service unit based on the access interface of the first cloud service.
13. The device according to claim 11 or 12, wherein, the application deployment request carries attribute information of the application on the cloud, and the attribute information indicates the business logic, the auxiliary function, and the dependency relationship between the business logic and the auxiliary function.
14. The device according to claim 13, wherein, the attribute information further indicates one or more of the following: the specifications or types of cloud resources used by the first cloud service and the second cloud service, the deployment methods, working modes, or service guarantee policies of the first cloud service and the second cloud service, and the access method of the cloud service unit.
15. The device according to any one of claims 11 to 14, wherein, the orchestration unit is further configured to: deploy a backup cloud service unit for the cloud service unit based on the application deployment request; when the cloud service unit fails, use the backup cloud service unit to replace the cloud service unit.
16. The device according to any one of claims 11 to 15, wherein, the orchestration unit is further configured to: adjust the specifications of the cloud resources used by the first cloud service and / or the second cloud service; and / or, adjust the total number of cloud service units.
17. The device according to any one of claims 11 to 16, wherein, the orchestration unit is further configured to: migrate the cloud service units in units of the cloud service units.
18. The device according to any one of claims 11 to 17, wherein, the cloud service unit satisfies one or more of the following: deployed based on cloud resources in different cloud resource deployment areas in the cloud platform; Or, it is deployed based on at least two of public network resources, cloud resources in the cloud resource deployment area, and the user's own resources.
19. The apparatus according to any one of claims 11 to 18, wherein, the orchestration unit is specifically configured to: create the second cloud service based on the auxiliary function, or the cloud platform purchases the second cloud service based on the auxiliary function.
20. The apparatus according to any one of claims 11 to 19, wherein, the orchestration unit is specifically configured to: configure the first cloud service to have the right to access the second cloud service.
21. A computing device cluster, wherein, it includes a plurality of computing devices, the plurality of computing devices include a plurality of processors and a plurality of memories, program instructions are stored in the plurality of memories, and the plurality of processors run the program instructions, so that the computing device cluster executes the method according to any one of claims 1 to 10.
22. A computer-readable storage medium, wherein, it includes program instructions, when the program instructions run 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 containing instructions, wherein, when the instructions are run by a computing device cluster, the computing device cluster is caused to execute the method according to any one of claims 1 to 10.