Application deployment method and related system

Through a hybrid deployment platform and client, application deployment without pre-reserving memory is achieved, solving the problems of high deployment costs and low utilization in the existing technology, and achieving high-density and low-cost deployment.

CN119536748APending Publication Date: 2025-02-28HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311628985.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-08-29
Filing Date
2023-11-30
Publication Date
2025-02-28

AI Technical Summary

Technical Problem

When deploying the existing technology in a software system with a microservice architecture, memory needs to be reserved for each application in advance, resulting in high deployment costs and low utilization, which makes it difficult to meet business needs.

Method used

Provides an application deployment method, through a hybrid deployment platform and a hybrid deployment client, it realizes application deployment without pre-reserving memory, supports multi-application process-level hybrid deployment, and saves machine resources.

Benefits of technology

It greatly improves deployment density, reduces customer availability costs, reduces engineering costs, and can meet business needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119536748A_ABST
    Figure CN119536748A_ABST
Patent Text Reader

Abstract

The invention provides an application deployment method, which is executed by an application deployment system, the system comprises a hybrid deployment platform and a hybrid deployment client, and the method comprises the following steps: the hybrid deployment platform receives a deployment environment and deployment parameters of a target application configured by a user, and issues the deployment parameters to the hybrid deployment client in the deployment environment, and the hybrid deployment client identifies the deployment mode of the application according to the deployment parameters. And when the deployment mode is hybrid deployment, the hybrid deployment client calls an interface of a hybrid deployment service module, and loads the class of the target application to a process of the hybrid deployment service module. According to the method, by calling the interface (through the hybrid deployment class loader) of the hybrid service deployment module to load the class of the application to the process of the hybrid deployment service module, multiple applications can be deployed to the same process in a hybrid manner, so that resources (such as memory resources) of a machine are saved; and the deployment density can be greatly improved without reserving a large memory in advance, so that the available cost of customers is reduced.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims the priority of the Chinese patent application filed with the State Intellectual Property Office on August 29, 2023, with application number 202311099284.X and invention name “An application deployment method and related system”, all contents of which are incorporated by reference in this application. Technical Field

[0002] The present application relates to the field of computer technology, and in particular to an application deployment method, system, computing device cluster, computer-readable storage medium, and computer program product. Background Art

[0003] With the rapid development of information technology, software with various functions (also called software systems) has emerged. The architecture of software systems has also undergone earth-shaking changes, such as the initial monolithic architecture gradually developing into a distributed architecture, a service-oriented architecture (SOA), and then to the microservice architecture that has flourished in recent years.

[0004] There are a large number of microservices (also called small applications) in the software system of microservice architecture. When deploying software systems represented by microservice architecture, there can be multiple deployment modes. Different deployment modes can be used according to the traffic size required by the application runtime environment. For example, a large traffic environment (such as a public cloud environment with highly active users) often serves thousands of households and requires a reliable cluster, so the application can adopt an independent deployment mode. However, a small traffic environment (such as a private cloud environment deployed separately for a certain enterprise) has a certain budget for resources, so the application can adopt a hybrid deployment mode.

[0005] Currently, the industry provides a hybrid deployment solution at the virtual machine level and container level, which deploys each application as an independent process and puts them in the same virtual machine or container. However, this solution requires memory to be reserved for each application in advance, which has a large memory requirement and low utilization, resulting in high deployment costs and difficulty in meeting business needs. Summary of the invention

[0006] The present application provides an application deployment method, which does not require pre-reserved memory, and the deployment density can be greatly improved, thereby reducing the cost available to customers. Moreover, the method does not require intrusive modification of the application code, and the overall engineering cost is greatly reduced, which can meet business needs. The present application also provides an application deployment system, a computing device cluster, a computer-readable storage medium, and a computer program product.

[0007] In the first aspect, the present application provides an application deployment method. The method can be executed by an application deployment system. The application deployment system includes a hybrid deployment platform and a hybrid deployment client. Among them, the hybrid deployment platform is also referred to as a hybrid deployment platform device, which can specifically be a device that combines the deployment platform to platformize the hybrid deployment capability. Based on the hybrid deployment platform, applications can flexibly choose hybrid deployment or independent deployment. The hybrid deployment client is also referred to as a hybrid deployment client device, and the hybrid deployment client can collaborate with the hybrid deployment platform to provide the ability of multi-application process-level hybrid deployment. It should be noted that the above-mentioned application deployment system can be a software system, which can be deployed in a computing device cluster, and the computing device cluster executes the program code of the software system to execute the application deployment method of the present application. In some examples, the application deployment system can also be a hardware system, such as a computing device cluster with application deployment function, and when the computing device cluster is running, the application deployment method of the present application is executed.

[0008] Specifically, the hybrid deployment platform receives the deployment environment and deployment parameters of the target application configured by the user, and sends the deployment parameters to the hybrid deployment client in the deployment environment. The hybrid deployment client identifies the deployment mode of the application based on the deployment parameters. When the deployment mode is hybrid deployment, the hybrid deployment client calls the interface of the hybrid deployment service module and loads the class of the target application into the process of the hybrid deployment service module.

[0009] This method calls the interface of the hybrid service deployment module to load the application class into the process of the hybrid deployment service module, which can realize the hybrid deployment of multiple applications to the same process, thereby saving machine resources (such as memory resources). In a low-traffic environment, this method can greatly increase the deployment density without reserving large blocks of memory in advance, thereby reducing the cost available to customers. Moreover, this method does not require intrusive modification of the application code, and the overall engineering cost is greatly reduced, which can meet business needs.

[0010] In some possible implementations, the hybrid deployment platform can also receive the deployment steps of the target application configured by the user. Among them, the deployment steps corresponding to different deployment modes are different. When the deployment mode is hybrid deployment (such as process-level hybrid deployment), the deployment steps include executing the hybrid deployment client (or starting the hybrid deployment client), and the hybrid deployment platform can receive the user-configured command for executing the hybrid deployment client, which can be in the form of a shell or python script. Further, when the deployment mode is independent deployment (also called ordinary deployment), the deployment steps include directly starting the software package of the target application, and the hybrid deployment platform can receive the user-configured command for directly starting the software package of the target application, wherein the software package can include a Java archive file (Java Archive, jar), and the command format can be in the form of java-jar xxx.jar.

[0011] In this way, when the deployment mode is hybrid deployment, non-intrusive process-level hybrid deployment can be achieved by executing the hybrid deployment client.

[0012] In some possible implementations, the hybrid deployment client may call the interface of the hybrid deployment service module and load the class of the target application from the user-configured path to the process of the hybrid deployment service module through the hybrid deployment class loader of the target application.

[0013] This method can achieve non-intrusive process-level hybrid deployment by using a customized hybrid deployment class loader for the target application to load the target application's class into the hybrid deployment service module's process. Applications based on technology stacks such as Java / Spring require almost no adaptation and can directly deliver their build products / products to the application deployment system. The application deployment system can automatically perform process-level merge deployment of applications at runtime based on the application deployment configuration (such as deployment steps / deployment environment / deployment parameter configuration), thereby effectively reducing labor costs.

[0014] In some possible implementations, the target application and the deployed application rely on different versions of the same class. The hybrid deployment client can call the interface of the hybrid deployment service module, and load the first version of the class from the first path configured by the user to the process of the hybrid deployment service module through the hybrid deployment class loader of the target application. Among them, the deployed application is a hybrid deployment client calling the interface of the hybrid deployment service module, and loading the second version of the class from the second path configured by the user to the process of the hybrid deployment service module through the hybrid deployment class loader of the deployed application to achieve deployment. The first path is different from the second path. In this way, the isolation of multiple applications in process-level hybrid deployment can be achieved to ensure the security of the application.

[0015] In some possible implementations, the hybrid deployment client recognizes that the deployment environment includes a process of the hybrid deployment service module, and can call the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0016] In this method, the hybrid deployment client first identifies whether the deployment environment includes the process of the hybrid deployment service module. When the deployment environment includes the process of the hybrid deployment service module, it calls the application loading interface of the hybrid deployment service module to load the class of the target application. This can avoid unnecessary overhead and improve resource utilization.

[0017] In some possible implementations, when the deployment parameters indicate that the loading mode of the hybrid deployment service module is to load after restart, the hybrid deployment client calls the restart interface of the hybrid deployment service module to restart the process of the hybrid deployment service module. Then, the hybrid deployment client can load the classes of the applications in the hybrid deployment configuration file to the process of the hybrid deployment service module in sequence according to the hybrid deployment configuration file, and then call the application loading interface of the hybrid deployment service module to load the classes of the target application to the process of the hybrid deployment service module.

[0018] This method first identifies the loading mode. If it is loading after restart, the process can be restarted first, and then the application classes can be loaded in sequence. In this way, the target application can be deployed on demand.

[0019] In some possible implementations, when the deployment parameters indicate that the hybrid deployment service module is loaded in a direct loading manner, the hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0020] This method identifies the loading mode. If it is direct loading, the class of the target application can be directly loaded into the process of the hybrid deployment service module without restarting, which can improve deployment efficiency and shorten deployment time.

[0021] In some possible implementations, the hybrid deployment client recognizes that the deployment environment does not include the process of the hybrid deployment service module. The hybrid deployment client can start the process of the hybrid deployment service module, and then the hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0022] This method starts the hybrid deployment process first when it is identified that the deployment environment does not include the hybrid deployment process, and then calls the application loading interface to load the class of the target application, thereby ensuring that the process-level multi-application hybrid deployment can be executed smoothly.

[0023] In some possible implementations, when a user triggers a restart operation on a target application, the hybrid deployment client restarts the process of the hybrid deployment service module and loads the class of the target application to the process of the hybrid deployment service module according to the hybrid deployment configuration file.

[0024] This method also supports users to actively trigger a restart. For example, when the application freezes and the user experience deteriorates, the user can trigger a restart. The hybrid deployment client can restart the process of the hybrid deployment service module, and then load the class of the target application to the process of the hybrid deployment service module according to the hybrid deployment configuration file to improve the user experience when the target application is subsequently running.

[0025] In some possible implementations, the hybrid deployment client may also update the deployment parameters of the target application to the hybrid deployment configuration file, which may provide a reference for subsequent post-restart loading operations (such as post-restart loading operations generated by a user actively triggering a restart, and post-restart loading operations triggered by hybrid deployment of new applications).

[0026] In some possible implementations, the hybrid deployment configuration file includes the file address of the software package of the hybrid deployed application and the deployment parameters. The file address can assist the hybrid deployment client to load the class of the corresponding application from the specified path, and the deployment parameters can assist the hybrid deployment client to load the class of the corresponding application according to the corresponding instructions. This lays the foundation for process-level multi-application hybrid deployment.

[0027] In some possible implementations, the deployment parameters include at least one of a deployment mode and a loading mode. By configuring the deployment parameters such as the deployment mode and the loading mode, the method can realize the process-level mixed deployment of multiple applications according to the above deployment parameters, thereby saving machine resources.

[0028] In a second aspect, the present application provides an application deployment system. The application deployment system includes a hybrid deployment platform and a hybrid deployment client;

[0029] The hybrid deployment platform is used to receive the deployment environment and deployment parameters of the target application configured by the user, and send the deployment parameters to the hybrid deployment client in the deployment environment;

[0030] The hybrid deployment client is used to identify the deployment mode of the application according to the deployment parameters;

[0031] The hybrid deployment client is also used to call the interface of the hybrid deployment service module and load the class of the target application into the process of the hybrid deployment service module when the deployment mode is hybrid deployment.

[0032] In some possible implementations, the hybrid deployment platform is further used to receive the deployment steps of the target application configured by the user. When the deployment mode is hybrid deployment, the deployment steps include executing the hybrid deployment client.

[0033] In some possible implementations, the hybrid deployment client is specifically used to:

[0034] The hybrid deployment client calls the interface of the hybrid deployment service module, and loads the class of the target application from the user-configured path to the process of the hybrid deployment service module through the hybrid deployment class loader of the target application.

[0035] In some possible implementations, the hybrid deployment client is specifically used to:

[0036] The hybrid deployment client recognizes that the deployment environment includes the process of the hybrid deployment service module, calls the application loading interface of the hybrid deployment service module, and loads the class of the target application to the process of the hybrid deployment service module.

[0037] In some possible implementations, the hybrid deployment client is specifically used to:

[0038] When the deployment parameter indicates that the loading mode of the hybrid deployment service module is loading after restart, the hybrid deployment client calls the restart interface of the hybrid deployment service module to restart the process of the hybrid deployment service module;

[0039] The hybrid deployment client loads the application classes in the hybrid deployment configuration file to the process of the hybrid deployment service module in sequence according to the hybrid deployment configuration file, and then calls the application loading interface of the hybrid deployment service module to load the target application class to the process of the hybrid deployment service module.

[0040] In some possible implementations, the hybrid deployment client is specifically used to:

[0041] When the deployment parameters indicate that the hybrid deployment service module is loaded in a direct loading mode, the hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0042] In some possible implementations, the hybrid deployment client is specifically used to:

[0043] The hybrid deployment client recognizes that the deployment environment does not include the process of the hybrid deployment service module, and the hybrid deployment client starts the process of the hybrid deployment service module;

[0044] The hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0045] In some possible implementations, the hybrid deployment client is further used to:

[0046] When the user triggers a restart operation on the target application, the process of the hybrid deployment service module is restarted, and the class of the target application is loaded into the process of the hybrid deployment service module according to the hybrid deployment configuration file.

[0047] In some possible implementations, the hybrid deployment client is further used to:

[0048] The deployment parameters of the target application are updated to the hybrid deployment configuration file.

[0049] In some possible implementations, the hybrid deployment configuration file includes the file address of the software package of the hybrid deployed application and the deployment parameters.

[0050] In some possible implementations, the deployment parameters include at least one of a deployment mode and a loading method.

[0051] In a third aspect, the present application provides a computing device cluster. The computing device cluster includes at least one computing device, and the at least one computing device includes at least one processor and at least one memory. The at least one processor and the at least one memory communicate with each other. The at least one processor is used to execute instructions stored in the at least one memory, so that the computing device or the computing device cluster executes the application deployment method described in the first aspect or any implementation of the first aspect.

[0052] In a fourth aspect, the present application provides a computer-readable storage medium, in which instructions are stored, and the instructions instruct a computing device or a computing device cluster to execute the application deployment method described in the above-mentioned first aspect or any implementation manner of the first aspect.

[0053] In a fifth aspect, the present application provides a computer program product comprising instructions, which, when executed on a computing device or a computing device cluster, enables the computing device or the computing device cluster to execute the application deployment method described in the first aspect or any one of the implementations of the first aspect.

[0054] Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] In order to more clearly illustrate the technical method of the embodiments of the present application, the drawings required for use in the embodiments are briefly introduced below.

[0056] Figure 1 A schematic diagram of a virtual machine / container-level hybrid deployment solution and a process-level hybrid deployment solution provided in an embodiment of the present application;

[0057] Figure 2 A schematic diagram of the architecture of an application deployment system provided in an embodiment of the present application;

[0058] Figure 3 A schematic diagram of an architecture for a hybrid deployment service module loading an application module provided in an embodiment of the present application;

[0059] Figure 4 A flowchart of an application deployment method provided in an embodiment of the present application;

[0060] Figure 5 A flowchart of another application deployment method provided in an embodiment of the present application;

[0061] Figure 6 A schematic diagram of the structure of a computing device provided in an embodiment of the present application;

[0062] Figure 7 A schematic diagram of the structure of a computing device cluster provided in an embodiment of the present application;

[0063] Figure 8 A schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application;

[0064] Fig. 9 A schematic diagram of the structure of another computing device cluster provided in an embodiment of the present application. DETAILED DESCRIPTION

[0065] The terms "first" and "second" in the embodiments of the present application are used for descriptive purposes only and should not be understood as indicating or implying relative importance or implicitly indicating the number of the indicated technical features. Therefore, the features defined as "first" and "second" may explicitly or implicitly include one or more of the features.

[0066] First, some technical terms involved in the embodiments of the present application are introduced.

[0067] Application (APP) is the abbreviation of application program, which usually refers to a program written for a specific application purpose of the user, such as text processors, spreadsheets, accounting applications, browsers, media players, aviation flight simulators, command-line games, image editors, etc. For a software system with a microservice architecture, an application can be a microservice in the software system.

[0068] Hybrid deployment is to deploy multiple applications to the same instance for execution. These applications share the same instance resources during runtime. Depending on the traffic size required by the application runtime environment, multiple forms can be delivered, including but not limited to independent deployment forms and hybrid deployment forms. For example, technical means can be used to deliver multiple forms at runtime, so that multiple applications can be deployed in the same virtual machine / container to increase deployment density to meet the low-cost requirements of low-traffic environments, or applications can be deployed independently to exclusive virtual machines / containers to meet the high reliability requirements of high-traffic environments.

[0069] The hybrid deployment solution provided by the related technology is to deploy multiple applications on a physical machine / virtual machine / container, and each application is started and executed with a different process, and each application occupies a process exclusively. Figure 1As shown, this solution is also called the instance-level multi-process hybrid deployment solution. Each application is deployed as an independent process. For example, microservice A is deployed as an independent process A, microservice B is deployed as an independent process B, microservice C is deployed as an independent process C, and microservice D is deployed as an independent process D. The above processes can be co-located in the same virtual machine or container. The processes can share the resources of the virtual machine or container, including the operating system (operating system) and library files (such as bin / library). This can save resources and reduce costs to a certain extent.

[0070] However, the above instance-level multi-process hybrid deployment solution requires designing Java Virtual Machine (JVM) related parameters for each application to reserve memory in advance. For most virtual machines or containers in low-traffic environments, the number of processes that can be co-located in the same virtual machine or container is limited due to specification restrictions. For example, the minimum memory dependency of most applications during runtime is above 512 megabytes (MB), so the number of processes in a virtual machine with a specification of 2 cores and 4G ("core" refers to the number of processor cores, and "G" stands for gigabytes) should not exceed 4. However, the throughput of a low-traffic environment is very low, and most services will not be used at the same time. Reserving large blocks of memory for each application in advance can cause the overall reserved resources to expand to a level that customers may not accept, and the deployment cost increases sharply.

[0071] To this end, the relevant technology also proposed a process-level hybrid deployment solution. The process-level hybrid deployment solution can use container technology (such as servlet) to load multiple microservices as modules into a process and run them without interfering with each other on the logical execution path. This method can save more machine resources than virtual machine and container-level hybrid deployment. However, the premise of this solution is that the application (such as microservices) needs to be transformed to implement the corresponding standards (such as servlet standards). The application needs to make a lot of intrusive modifications to the original code, and the overall engineering cost is high.

[0072] In view of this, the present application provides an application deployment method. The method can be executed by an application deployment system. The application deployment system includes a hybrid deployment platform and a hybrid deployment client. Among them, the hybrid deployment platform is also referred to as a hybrid deployment platform device, which can specifically be a device that combines the deployment platform to platformize the hybrid deployment capability. Based on the hybrid deployment platform, applications can flexibly choose hybrid deployment or independent deployment. The hybrid deployment client is also referred to as a hybrid deployment client device, and the hybrid deployment client can collaborate with the hybrid deployment platform to provide the ability of multi-application process-level hybrid deployment. It should be noted that the above-mentioned application deployment system can be a software system, which can be deployed in a computing device cluster, and the computing device cluster executes the program code of the software system, thereby executing the application deployment method of the present application. In some examples, the application deployment system can also be a hardware system, such as a computing device cluster with application deployment function, and when the computing device cluster is running, the application deployment method of the present application is executed.

[0073] Specifically, the hybrid deployment platform receives the deployment environment and deployment parameters of the target application configured by the user, and sends the deployment parameters to the hybrid deployment client in the deployment environment, and the hybrid deployment client identifies the deployment mode of the application according to the deployment parameters. When the deployment mode is hybrid deployment, the hybrid deployment client calls the interface of the hybrid deployment service module and loads the class of the target application into the process of the hybrid deployment service module.

[0074] This method loads the application class (for example, by calling the interface to load the application class using JVM-based class loading technology) to the process of the hybrid deployment service module by calling the interface of the hybrid service deployment module, so that multiple applications can be deployed in the same process, thereby saving machine resources (such as memory resources). In a low-traffic environment, this method can significantly increase the deployment density without reserving large blocks of memory in advance, thereby reducing the cost available to customers. Moreover, this method does not require intrusive modifications to the application code, and the overall engineering cost is greatly reduced, which can meet business needs.

[0075] In order to make the technical solution of the present application clearer and easier to understand, the system architecture of the present application is introduced below with reference to the accompanying drawings.

[0076] See also Figure 2 The schematic diagram of the architecture of an application deployment system shown in FIG. 200 includes a hybrid deployment platform 202 and a hybrid deployment client 204. The hybrid deployment client 204 can be deployed in an application runtime environment (application deployment environment), and the application runtime environment includes but is not limited to a virtual machine or a container. Further, the application deployment system 200 also includes a hybrid deployment service module 206. The following is an introduction to the devices or modules included in the application deployment system 200.

[0077] The hybrid deployment platform 202 may be an existing deployment platform with newly added hybrid deployment related functions. Based on the hybrid deployment platform 202, users can flexibly select the deployment mode of the application, such as independent deployment or hybrid deployment. Specifically, users can configure the deployment environment on the hybrid deployment platform 202. Further, users can also configure deployment parameters on the hybrid deployment platform 202. Deployment parameters may include parameters indicating hybrid deployment or independent deployment of the application. For example, deployment parameters may include deployment modes, and deployment modes are divided into independent deployment modes or hybrid deployment modes, wherein the hybrid deployment mode may be a process-level hybrid deployment mode. In some possible implementations, deployment parameters may also include parameters indicating a loading method. In other words, deployment parameters may also include a loading method. The loading method may include direct loading or loading after restarting. Among them, loading after restarting may be loading the application after restarting the hybrid deployment service module 206.

[0078] When multiple applications choose the same deployment environment, the hybrid deployment platform 202 can further allow the user to choose whether to deploy them in a hybrid manner to the same process. Furthermore, the user can also configure deployment parameters on the hybrid deployment platform 202. For example, the user can choose whether to deploy multiple applications in a hybrid manner to the same process. In addition, the user can also configure other deployment parameters necessary for hybrid deployment, such as the necessary startup parameters for the application, including but not limited to the loading method of the application (for example, the user can choose to load the application directly or restart the hybrid deployment service module 206 before loading the application). In some possible implementations, the user can also configure the hybrid deployment steps on the hybrid deployment platform 202. Among them, different deployment modes correspond to different deployment steps. When the deployment mode is hybrid deployment (such as process-level hybrid deployment), the deployment steps include executing the hybrid deployment client (or starting the hybrid deployment client), and the hybrid deployment platform can receive the user-configured command for executing the hybrid deployment client, which can be in the form of a shell or python script. Furthermore, when the deployment mode is independent deployment (also known as normal deployment), the deployment step includes directly starting the software package of the target application. The hybrid deployment platform can receive a user-configured command for directly starting the software package of the target application, wherein the software package may include a Java archive file (Java Archive, jar), and the command format may be in the form of java-jar xxx.jar.

[0079] The hybrid deployment platform 202 is used to receive the deployment environment and deployment parameters of the target application configured by the user, and send the deployment parameters to the hybrid deployment client 204 in the deployment environment. The target application is the application to be deployed, and the target application can be one or more applications. When there are deployed applications in the deployment environment, the target application can be different from the deployed application or the same as the deployed application. For example, in the application expansion scenario, the target application can be the same as the deployed application. In the non-expansion scenario, the target application is different from the deployed application, for example, the target application and the deployed application are independent of each other.

[0080] The hybrid deployment client 204 may be a client on the application runtime environment, used to receive the deployment parameters issued by the hybrid deployment platform 202, and identify the deployment mode of the application according to the deployment parameters. The hybrid deployment client 204 may receive the deployment parameters issued by the hybrid deployment platform 202 through a deployment device such as a deployment agent. The hybrid deployment client 202 is also used to call the interface of the hybrid deployment service module 206 when the deployment mode is hybrid deployment, and load the class of the target application into the process of the hybrid deployment service module 206. A class is an abstract data type defined when developing an application using an object-oriented programming language, and is a template for an object. A class can create an object by instantiation. The example of an application developed with the JAVA programming language shows that each class file with a ".java" extension stores the program logic that needs to be executed. These ".java" files are compiled by the Java compiler into files with a ".class" extension (i.e., bytecode class files). The ".class" files contain the virtual machine instructions after the Java code is converted. When a class needs to be used, a virtual machine such as the JVM can load the ".class" file of the class, create a corresponding class object, and load the class file into the memory of the virtual machine.

[0081] Among them, the hybrid deployment client 204 can reorganize the deployment parameters according to the format required by the hybrid deployment service module 206 when receiving the deployment parameters. Then the hybrid deployment client 204 determines the deployment mode according to the reorganized deployment parameters. If the deployment mode is the independent deployment mode, the hybrid deployment client 204 can further determine whether the process of the target application already exists in the current environment. If it does, the process can be closed first, otherwise the target application can be directly started. If the deployment mode is the hybrid deployment mode, the hybrid deployment client 204 loads the class of the target application according to different loading methods. When the loading method issued by the hybrid deployment platform 202 is direct loading, the hybrid deployment client 204 calls the application loading interface of the hybrid deployment service module 206 to load the class of the target application to the process of the hybrid deployment service module 206. When the loading method is loading after restart, the hybrid deployment client 204 restarts the hybrid deployment service module 206 and then loads the class of the target application to the process of the hybrid deployment service module 206. The hybrid deployment client 204 first calls the restart interface of the hybrid deployment service module 206 to restart the hybrid deployment service module 206 , and then calls the application loading interface to load the class of the target application into the process of the hybrid deployment service module 206 .

[0082] The hybrid deployment service module 206 may be an application built into the hybrid deployment service module software package. Figure 3 As shown, the hybrid deployment service module software package can be based on the JVM's class loading technology, using each application's own custom class loader ClassLoader (such as a hybrid deployment class loader) to load the application's classes. In this way, classes between different application modules (such as objects created by instantiating application classes) are isolated from each other, and different applications do not affect each other. Even the same dependency can have different versions in different application modules, and ultimately multiple applications can be hybrid deployed in the same process.

[0083] Among them, the hybrid deployment service module 206 can be a lightweight application, such as a spring application. The hybrid deployment service module can provide an application loading interface and a restart interface to support (process-level) hybrid deployment of multiple applications. Specifically, the hybrid deployment client 204 is used to call the application loading interface to load the class of the target application to the process of the hybrid deployment service module 206 when the deployment parameters indicate that the loading mode of the hybrid deployment module is to load after restart. Alternatively, the hybrid deployment client 204 is used to call the restart interface of the hybrid deployment service module 206 to restart the process of the hybrid deployment service module when the deployment parameters indicate that the loading mode of the hybrid deployment service module is to load after restart, and then according to the hybrid deployment configuration file, the application class in the hybrid deployment configuration file is loaded to the process of the hybrid deployment service module in sequence, and then the application loading interface of the hybrid deployment service module 206 is called to load the class of the target application to the process of the hybrid deployment service module 206. It should be noted that when the restart interface is called to restart the process of the hybrid deployment service module 206, the application modules in the process can be restarted together.

[0084] The hybrid deployment configuration file defines the deployment parameters required for hybrid deployment of applications. Deployment parameters may include application startup parameters, such as loading methods. The hybrid deployment configuration file may also include the file address of the software package of the hybrid deployed application, such as the file address of the application executable program. Among them, the application executable program includes but is not limited to Java archive files (Java Archive, jar). The software package may be a compressed format file, and accordingly, the hybrid deployment configuration file may also include the temporary decompression address of the application executable program. The hybrid deployment client 204 can read the contents of the hybrid deployment configuration file and sequentially load the classes of the applications that need to be hybrid deployed into the process of the hybrid deployment service module 206.

[0085] In some possible implementations, the application deployment system 200 may also include a hybrid deployment packaging device 208. When the hybrid deployment packaging device 208 supports compilation, it is also called a hybrid deployment compilation packaging device. Among them, the hybrid deployment packaging device 208 provides application packaging capabilities, so as to package a software package that meets the hybrid deployment requirements. Specifically, the hybrid deployment packaging device 208 can provide a compilation and packaging plug-in (such as a maven compilation and packaging plug-in), and the application can use this compilation and packaging plug-in to package a software package that meets the hybrid deployment requirements. The compilation and packaging plug-in places all third-party software packages (also called third-party dependencies) that the application depends on in a fixed directory (such as a deployment directory), and the hybrid deployment service module 206 loads all required third-party software package classes from this fixed directory. Furthermore, the compilation and packaging plug-in can also record the order of third-party dependency declarations in the project object model (Project Object Model, POM) file, and when classes with exactly the same name appear, it is guaranteed that the classes can be loaded in the order of declaration.

[0086] Based on the aforementioned application deployment system 200, the present application further provides an application deployment method. The application deployment method of the present application is described in detail below in conjunction with an embodiment.

[0087] See also Figure 4 The flowchart of an application deployment method shown is executed by an application deployment system 200. The application deployment system 200 includes a hybrid deployment platform 202 and a hybrid deployment client 204. The method includes the following steps:

[0088] S402 . The hybrid deployment platform 202 receives the deployment environment and deployment parameters of the target application configured by the user.

[0089] The deployment environment refers to the environment used to deploy applications. The deployment environment can usually be a container or virtual machine used to deploy applications. After the deployment is completed, the application can run in this environment, so it is also called the application running environment. The target application refers to the application to be deployed. The target application can be one or more applications. Depending on the application scenario, the target application can be different. For example, in a capacity expansion scenario, the target application can be the same application as the deployed application, and in a non-capacity expansion scenario, the target application can be an application different from the deployed application. Taking a large software system as an example, the large software system includes the following applications: microservice A, microservice B, and microservice C. The deployed application includes microservice A and microservice B. Based on this, in a capacity expansion scenario, the target application can be microservice A or microservice B, and in a non-capacity expansion scenario, the target application can be microservice C.

[0090] Deployment parameters refer to parameters that assist in the deployment of applications. Specifically, deployment parameters can be used to indicate a deployment mode. Deployment modes may include hybrid deployment or independent deployment. Furthermore, deployment parameters may also be used to indicate the loading method of the hybrid deployment service module 206 (or the loading method of the target application). The loading method may include direct loading (without restarting) or loading after restarting. Based on this, the deployment parameters may include at least one of the following fields: deployment mode, loading method. It should be noted that the hybrid deployment platform 202 can set a default deployment mode or a default loading method. When the user does not configure the deployment mode or the loading method, the above-mentioned default deployment mode and the default loading method may be adopted.

[0091] Specifically, the hybrid deployment platform 202 can present a deployment configuration interface to the user. The deployment configuration interface can be a graphical user interface (GUI) or a command configuration interface (CUI). The deployment configuration interface supports users to configure the application to be deployed and the deployment environment. Taking the GUI as an example, the deployment configuration interface can include application configuration controls and environment configuration controls. The user configures the application to be deployed as the target application through the application configuration control, and configures the virtual machine or container for deploying the target application through the environment configuration control. In some examples, the target application is an application, and the hybrid deployment platform 202 can detect whether the virtual machine or container configured by the user has a deployed application. If so, the hybrid deployment platform 202 can support users to configure the deployment mode of the target application as independent deployment or hybrid deployment (for example, hybrid deployment to the same process). In other examples, the target application is multiple applications, and the hybrid deployment platform 202 can support users to configure the deployment mode of multiple applications as independent deployment or hybrid deployment.

[0092] Furthermore, the hybrid deployment platform 202 can also receive the loading mode configured by the user through the deployment configuration interface. For example, the user can configure the control through the loading mode of the deployment configuration interface, and configure the loading mode to be direct loading or loading after restarting. Accordingly, the hybrid deployment platform 202 can receive the above loading mode configured by the user.

[0093] In some possible implementations, the hybrid deployment platform 202 can also configure the deployment steps through the deployment configuration interface. Different deployment modes correspond to different deployment steps. When the deployment mode is hybrid deployment (such as process-level hybrid deployment), the deployment steps include executing the hybrid deployment client (or starting the hybrid deployment client), and the hybrid deployment platform can receive user-configured commands for executing the hybrid deployment client, which can be in the form of shell or python scripts. Further, when the deployment mode is independent deployment (also called ordinary deployment), the deployment steps include directly starting the software package of the target application, and the hybrid deployment platform can receive user-configured commands for directly starting the software package of the target application, wherein the software package can include a jar package, and the command format can be in the form of java-jar xxx.jar.

[0094] S404: The hybrid deployment platform 202 sends the deployment parameters to the hybrid deployment client 204 in the deployment environment.

[0095] Specifically, the hybrid deployment platform 202 determines the hybrid deployment client 204 in the deployment environment, and sends the deployment parameters to the hybrid deployment client 204. The hybrid deployment platform 202 can assemble the deployment parameters and send them to the hybrid deployment client 204 in the corresponding deployment environment. The hybrid deployment platform 202 can have a built-in parameter template, or receive a parameter template input by a user, and the parameter template defines the assembly method of different deployment parameters. The hybrid deployment platform 202 can assemble different deployment parameters according to the assembly method defined in the parameter template.

[0096] S406: The hybrid deployment client 204 identifies the deployment mode of the application according to the deployment parameters. When the deployment mode is hybrid deployment, S408 is executed.

[0097] Specifically, the hybrid deployment client 204 can parse the deployment parameters to identify the deployment mode of the application. For example, the hybrid deployment client 204 can read the mode field for the assembled deployment parameters to obtain the deployment mode of the application. When the deployment mode of the application is hybrid deployment (for example, process-level hybrid deployment), S408 can be executed to deploy the target application and other applications to the same process. Among them, the process is a unit for executing tasks, which is a specific implementation of the execution unit. In other possible implementations of the embodiments of the present application, the application can also be hybrid deployed in other forms of execution units.

[0098] S408 , the hybrid deployment client 204 calls the interface of the hybrid deployment service module 206 , and loads the class of the target application into the process of the hybrid deployment service module 206 .

[0099] The hybrid deployment service module 206 provides an application loading interface, and the hybrid deployment client 204 can call the application loading interface to load the class of the target application to the process of the hybrid deployment service module 206. When the hybrid deployment client 204 calls the application loading interface, it can use the hybrid deployment class loader of the target application to load the class of the target application to the process of the hybrid deployment service module 206.

[0100] Among them, the hybrid deployment class loader of the target application is used to load the class of the target application from the path configured by the user (specified path, not limited to the default classpath). Specifically, the class of the target application can be packaged into a software package, and the path configured by the user can be the file address of the software package of the target application. Accordingly, the hybrid deployment client 204 can call the interface of the hybrid deployment service module 206, and load the class of the target application from the path configured by the user (for example, the file address of the software package of the target application) through the hybrid deployment class loader of the target application. The file addresses of the software packages of different applications can be different, and the hybrid deployment client 204 can load the classes of the corresponding applications from different paths through the hybrid deployment class loaders of different applications, thereby realizing the isolation of different applications at the logical level.

[0101] In some possible implementations, the hybrid deployment client 204 may also first identify whether the deployment environment includes the process of the hybrid deployment service module 206. The hybrid deployment client 204 may identify whether the deployment environment includes the process of the hybrid deployment service module 206 by means of process detection. When the hybrid deployment client 204 identifies that the deployment environment includes the process of the hybrid deployment service module 206, the hybrid deployment client 204 calls the application loading interface of the hybrid deployment service module to load the class of the target application to the process of the hybrid deployment service module 206. When the hybrid deployment client 204 identifies that the deployment environment does not include the process of the hybrid deployment service module 206, the hybrid deployment client 204 may start the process of the hybrid deployment service module, and then call the application loading interface of the hybrid deployment service module 206 to load the class of the target application to the process of the hybrid deployment service module 206.

[0102] Among them, the target application can support direct loading or loading after restart. When the deployment parameters indicate that the loading mode of the hybrid deployment service module is loading after restart, for example, the loading mode in the deployment parameters is loading after restart, the hybrid deployment client 204 can first call the restart interface of the hybrid deployment service module 206 to restart the process of the hybrid deployment service module 206. It should be noted that in the process of restarting the process of the hybrid deployment service module 206, if there is an executed application module, the application module will also stop executing. Then the hybrid deployment client 204 can call the application loading interface of the hybrid deployment service module 206 to load the class of the application in the hybrid deployment configuration file to the process of the hybrid deployment service module 206 according to the hybrid deployment configuration file, and load the class of the target application to the process of the hybrid deployment service module 206. When the deployment parameters indicate that the loading mode of the hybrid deployment service module 206 is direct loading, the hybrid deployment client 204 can call the application loading interface of the hybrid deployment service module 206 to load the class of the target application to the process of the hybrid deployment service module 206.

[0103] Furthermore, after the target application class (such as the class required by the target application) is loaded (successfully), the hybrid deployment client 204 can also update the deployment parameters of the target application (also referred to as hybrid deployment parameters) to the hybrid deployment configuration file. In this way, when the hybrid deployment service module 206 is subsequently restarted, the target application can be restarted according to the hybrid deployment configuration file.

[0104] In some possible implementations, the user can trigger a restart operation on the target application. For example, when the target application runs abnormally, the user can trigger a restart operation on the target application. Accordingly, the hybrid deployment client 204 can restart the process of the hybrid deployment service module 206, for example, restart the process of the hybrid deployment service module 206 through the restart interface of the hybrid deployment service module 206, and load the class of the target application to the process of the hybrid deployment service module 206 according to the hybrid deployment configuration file. It should be noted that when the hybrid deployment service module 206 is restarted, the application modules in the process of the hybrid deployment service module 206 will also stop executing. Therefore, after restarting the process of the hybrid deployment service module 206, the classes of the applications in the hybrid deployment configuration file can be loaded in sequence, and the applications in the hybrid deployment configuration file include the target application.

[0105] Based on the above description, it can be known that the application deployment method of the embodiment of the present application calls the interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module, thereby realizing the hybrid deployment of multiple applications to the same process, saving machine resources. In the case of sufficient resources in a low-traffic environment scenario, this method does not need to reserve memory in advance, and can greatly improve the deployment density, thereby reducing the cost available to customers. Moreover, this method platformizes the hybrid deployment capability. Through the systematic engineering of built-in process-level hybrid deployment, applications based on technology stacks such as Java / Spring require almost no adaptation, and their built products / products can be directly delivered to the application deployment system. The application deployment system can automatically perform process-level merge deployment of applications at runtime according to the application deployment configuration (such as deployment steps / deployment environment / deployment parameter configuration), thereby effectively reducing labor costs.

[0106] Next, the application deployment method is introduced in detail with the execution unit as the process.

[0107] See also Figure 5 A flowchart of an application deployment method is shown, and the method may include the following steps:

[0108] S502. The hybrid deployment platform 202 receives deployment steps, deployment environment, and deployment parameters configured by the user.

[0109] S504 , the hybrid deployment client 204 receives the deployment parameters sent by the hybrid deployment platform 202 .

[0110] Specifically, the deployment parameters may include a deployment mode and a loading method. The hybrid deployment platform 202 may assemble the deployment parameters and send them to the hybrid deployment client 204 in the deployment environment.

[0111] S506: The hybrid deployment client 204 identifies whether the deployment mode is hybrid deployment according to the deployment parameters. If yes, execute S508; if no, execute S526.

[0112] Specifically, the hybrid deployment client 204 can read the mode field in the deployment parameters to obtain the deployment mode. When the deployment mode is hybrid deployment, S508 is executed, and when the deployment mode is independent deployment, S526 is executed.

[0113] S508: The hybrid deployment client 204 detects whether the deployment environment includes the process of the hybrid deployment service module 206. If yes, S510 is executed; if no, S516 to S518 are executed.

[0114] Among them, the hybrid deployment client 204 can directly detect whether the deployment environment includes the process of the hybrid deployment service module 206, or detect whether the deployment environment includes the process of the hybrid deployment application. Since the process of the hybrid deployment application is the same process as the process of the hybrid deployment service module 206, when the hybrid deployment client 204 detects the process of the hybrid deployment application, it means that the deployment environment includes the process of the hybrid deployment service module 206.

[0115] S510: The hybrid deployment client 204 identifies whether the loading mode is loading after restart according to the deployment parameters. If yes, execute S512 to S514; if no, execute S520.

[0116] Specifically, the hybrid deployment client 204 can read the loading mode field in the deployment parameters to obtain the loading mode. When the loading mode is loading after restart, S512 to S514 are executed. When the loading mode is direct loading, S520 is executed.

[0117] S512 : The hybrid deployment client 204 restarts the process of the hybrid deployment service module 206 .

[0118] The hybrid deployment client 204 may call a restart interface of the hybrid deployment service module 206 to restart the process of the hybrid deployment service module 206 .

[0119] S514: The hybrid deployment client 204 reads the hybrid deployment configuration file, and sequentially loads the application classes in the hybrid deployment configuration file, and then executes S520.

[0120] Specifically, the hybrid deployment client 204 reads the hybrid deployment configuration file and can obtain the application and the deployment parameters of the application in the deployment configuration file. The hybrid deployment client 204 can call the application loading interface according to the application and the deployment parameters of the application, and load the corresponding application module through the hybrid deployment class loader of each application, thereby realizing the sequential loading of the applications in the hybrid deployment configuration file.

[0121] S516: The hybrid deployment client 204 loads the hybrid deployment service module software package.

[0122] S518: The hybrid deployment client 204 starts the process of the hybrid deployment service module 206. Then, S520 is executed.

[0123] Specifically, the hybrid deployment client 204 may run the hybrid deployment service module software package, thereby starting the process of the hybrid deployment service module 206 .

[0124] S520 , the hybrid deployment client 204 loads the class of the target application into the process of the hybrid deployment service module 206 .

[0125] S522: The hybrid deployment client 204 receives a loading success notification.

[0126] When the hybrid deployment client 206 successfully loads the target application, the hybrid deployment service module 206 may return a loading success notification to the hybrid deployment client 204 to facilitate execution of subsequent processes.

[0127] It should be noted that S522 is an optional step of the embodiment of the present application, and the application deployment method of the embodiment of the present application may not execute S522. For example, the hybrid deployment client 204 may automatically execute S524 after a set time. The set time may be set according to an empirical value, and the empirical value may be an average value of the time for loading the application to the process of the hybrid deployment service module 206 according to a historical time period.

[0128] S524 . The hybrid deployment client 204 updates the deployment parameters of the target application to the hybrid deployment configuration file.

[0129] The hybrid deployment configuration file includes the file address and deployment parameters of the software package of the hybrid deployed application. After the hybrid deployment of the target application is successful, the hybrid deployment client 204 can update the deployment parameters of the target application to the hybrid deployment configuration file. Further, the hybrid deployment client 204 can also update the file address of the software package of the target application to the hybrid deployment configuration file.

[0130] Accordingly, when the target application triggers a restart, for example, when the user triggers a restart operation for the target application, the hybrid deployment client 204 can restart the process of the hybrid deployment service module 206, read the hybrid deployment configuration file, and sequentially load the applications (including the target application) in the hybrid deployment configuration file. The specific implementation of the hybrid deployment client 204 restarting the process of the hybrid deployment service module 206 and loading the applications in the hybrid deployment configuration file can be referred to the description of the relevant contents of S512 and S514, which will not be repeated here.

[0131] S526: The hybrid deployment client 204 identifies whether the loading mode is loading after restart according to the deployment parameters. If yes, execute S528; if not, execute S530.

[0132] The specific implementation of S526 may refer to the description of S510, which will not be repeated here.

[0133] S528. The hybrid deployment client 204 restarts the target application.

[0134] S530: The hybrid deployment client 204 starts the target application.

[0135] Figure 5 The embodiment describes the process of the application deployment method in detail. The format of the hybrid deployment configuration file is described below with reference to another embodiment.

[0136] In this embodiment, the hybrid deployment configuration file can be in YAML format. YAML is a recursive abbreviation of "YAML Ain't a Markup Language". In order to emphasize that the language is data-centric rather than markup language-focused, it is renamed using the reverse abbreviation. YAML is a highly readable format for expressing data serialization, and is therefore widely used in configuration files. It should be noted that the YAML format is only an exemplary format for hybrid deployment configuration files. In other possible implementations of the embodiments of the present application, the hybrid deployment configuration files may also use other formats, including but not limited to JavaScript Object Notation (JSON).

[0137] This embodiment is described in YAML format. As shown below, the hybrid deployment configuration file may include the following fields:

[0138]

[0139]

[0140] Among them, unzipDir indicates the decompression address of the hybrid deployment application package, myapp1 and myapp2 indicate the names of the hybrid deployment applications, jarPath indicates the file address of the hybrid deployment application package, jarArgs indicates the startup parameters of the hybrid deployment application package, and spring.config.location indicates the configuration file address of the hybrid deployment application package. It should be noted that the configuration file address is an optional configuration item.

[0141] Based on the aforementioned application deployment method, the present application also provides an application deployment system. Figure 2 As shown, the system 200 includes a hybrid deployment platform 202 and a hybrid deployment client 204 .

[0142] The hybrid deployment platform 202 is used to receive the deployment environment and deployment parameters of the target application configured by the user, and send the deployment parameters to the hybrid deployment client in the deployment environment;

[0143] A hybrid deployment client 204, configured to identify a deployment mode of the application according to the deployment parameters;

[0144] The hybrid deployment client 204 is also used to call the interface of the hybrid deployment service module and load the class of the target application into the process of the hybrid deployment service module when the deployment mode is hybrid deployment.

[0145] Exemplarily, the hybrid deployment platform 202 and the hybrid deployment client 204 may be implemented by hardware or software.

[0146] When implemented by software, the hybrid deployment platform 202 and the hybrid deployment client 204 may be applications running on a computing device, such as a computing engine, etc. Among them, the application may be provided in the form of a virtualization service. Virtualization services may include virtual machine (VM) services, bare metal server (BMS) services, and container services. Among them, the VM service may be a service that virtualizes a virtual machine (VM) resource pool on multiple physical hosts through virtualization technology to provide users with VMs on demand for use. The BMS service is a service that virtualizes a BMS resource pool on multiple physical hosts to provide users with BMS on demand for use. The container service is a service that virtualizes a container resource pool on multiple physical hosts to provide users with containers on demand for use. VM is a simulated virtual computer, that is, a logical computer. BMS is a high-performance computing service that can be elastically scalable, and its computing performance is no different from that of a traditional physical machine, and it has the characteristics of secure physical isolation. Containers are a kernel virtualization technology that can provide lightweight virtualization to achieve the purpose of isolating user space, processes, and resources. It should be understood that the VM service, BMS service and container service in the above-mentioned virtualization services are only specific examples. In actual applications, virtualization services can also be other lightweight or heavyweight virtualization services, which are not specifically limited here.

[0147] When implemented by hardware, the hybrid deployment platform 202 and the hybrid deployment client 204 may include at least one computing device, such as a server, etc. Alternatively, the hybrid deployment platform 202 and the hybrid deployment client 204 may also be devices implemented using application-specific integrated circuits (ASIC) or programmable logic devices (PLD), etc. The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.

[0148] In some possible implementations, the hybrid deployment platform is further used to receive the deployment steps of the target application configured by the user. When the deployment mode is hybrid deployment, the deployment steps include executing the hybrid deployment client.

[0149] In some possible implementations, the hybrid deployment client 204 is specifically used to:

[0150] The hybrid deployment client calls the interface of the hybrid deployment service module, and loads the class of the target application from the user-configured path to the process of the hybrid deployment service module through the hybrid deployment class loader of the target application.

[0151] In some possible implementations, the hybrid deployment client 204 is specifically used to:

[0152] The hybrid deployment client recognizes that the deployment environment includes the process of the hybrid deployment service module, calls the application loading interface of the hybrid deployment service module, and loads the class of the target application to the process of the hybrid deployment service module.

[0153] In some possible implementations, the hybrid deployment client 204 is specifically used to:

[0154] When the deployment parameter indicates that the loading mode of the hybrid deployment service module is loading after restart, the hybrid deployment client calls the restart interface of the hybrid deployment service module to restart the process of the hybrid deployment service module;

[0155] The hybrid deployment client loads the application classes in the hybrid deployment configuration file to the process of the hybrid deployment service module in sequence according to the hybrid deployment configuration file, and then calls the application loading interface of the hybrid deployment service module to load the target application class to the process of the hybrid deployment service module.

[0156] In some possible implementations, the hybrid deployment client 204 is specifically used to:

[0157] When the deployment parameters indicate that the hybrid deployment service module is loaded in a direct loading mode, the hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0158] In some possible implementations, the hybrid deployment client 204 is specifically used to:

[0159] The hybrid deployment client recognizes that the deployment environment does not include the process of the hybrid deployment service module, and the hybrid deployment client starts the process of the hybrid deployment service module;

[0160] The hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

[0161] In some possible implementations, the hybrid deployment client 204 is further configured to:

[0162] When the user triggers a restart operation on the target application, the process of the hybrid deployment service module is restarted, and the class of the target application is loaded into the process of the hybrid deployment service module according to the hybrid deployment configuration file.

[0163] In some possible implementations, the hybrid deployment client 204 is further configured to:

[0164] The deployment parameters of the target application are updated to the hybrid deployment configuration file.

[0165] In some possible implementations, the hybrid deployment configuration file includes the file address of the software package of the hybrid deployed application and the deployment parameters.

[0166] In some possible implementations, the deployment parameters include at least one of a deployment mode and a loading method.

[0167] The present application also provides a computing device 600. Figure 6 As shown, computing device 600 includes: bus 602, processor 604, memory 606 and communication interface 608. Processor 604, memory 606 and communication interface 608 communicate through bus 602. Computing device 600 can be a server or a terminal device. It should be understood that the present application does not limit the number of processors and memories in computing device 600.

[0168] The bus 602 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 The bus 602 may include a path for transmitting information between various components of the computing device 600 (eg, the memory 606, the processor 604, and the communication interface 608).

[0169] The processor 604 may include any one or more of a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0170] The memory 606 may include a volatile memory, such as a random access memory (RAM). The memory 606 may also include a non-volatile memory, such as a read-only memory (ROM), a flash memory, a hard disk drive (HDD) or a solid state drive (SSD). The memory 606 stores executable program code, and the processor 604 executes the executable program code to implement the aforementioned application deployment method. Specifically, the memory 606 stores instructions for the application deployment system 200 to execute the application deployment method.

[0171] The communication interface 608 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement communication between the computing device 600 and other devices or communication networks.

[0172] The embodiment of the present application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.

[0173] like Figure 7 As shown, the computing device cluster includes at least one computing device 600. The memory 606 in one or more computing devices 600 in the computing device cluster may store the same instructions of the application deployment system 200 for executing the application deployment method.

[0174] In some possible implementations, one or more computing devices 600 in the computing device cluster may also be used to execute some instructions of the application deployment system 200 for executing the application deployment method. In other words, a combination of one or more computing devices 600 may jointly execute instructions of the application deployment system 200 for executing the application deployment method.

[0175] It should be noted that the memory 606 in different computing devices 600 in the computing device cluster may store different instructions for executing partial functions of the application deployment system 200 .

[0176] Figure 8 A possible implementation is shown. Figure 8As shown, two computing devices 600A and 600B are connected via a communication interface 608. The memory in computing device 600A stores instructions for executing the functions of hybrid deployment platform 202. The memory in computing device 600B stores instructions for executing the functions of hybrid deployment client 204. In other words, the memory 606 of computing devices 600A and 600B jointly stores instructions for application deployment system 200 to execute the application deployment method.

[0177] Figure 8 The connection mode between the computing device clusters shown may be considered to be that the application deployment method provided by the present application requires a large amount of resources to implement class loading of multiple applications in hybrid deployment. Therefore, it is considered to hand over the functions implemented by the hybrid deployment client 204 to the computing device 600B for execution.

[0178] It should be understood that Figure 8 The functions of the computing device 600A shown in FIG. 6A may also be completed by multiple computing devices 600. Similarly, the functions of the computing device 600B may also be completed by multiple computing devices 600.

[0179] In some possible implementations, one or more computing devices in the computing device cluster may be connected via a network, which may be a wide area network or a local area network. Fig. 9 A possible implementation is shown. Fig. 9 As shown, two computing devices 600C and 600D are connected via a network. Specifically, the network is connected via a communication interface in each computing device. In this type of possible implementation, the memory 606 in the computing device 600C stores instructions for executing the functions of the hybrid deployment platform 202. At the same time, the memory 606 in the computing device 600D stores instructions for executing the functions of the hybrid deployment client 204.

[0180] Fig. 9 The connection method between the computing device clusters shown may be based on the consideration that the application deployment method provided in the present application requires a large amount of resources to implement class loading of multiple applications in hybrid deployment, and therefore it is considered that the functions implemented by the hybrid deployment client 204 are handed over to the computing device 600D for execution.

[0181] It should be understood that Fig. 9 The functions of the computing device 600C shown in FIG. 6A may also be completed by multiple computing devices 600. Similarly, the functions of the computing device 600D may also be completed by multiple computing devices 600.

[0182] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by the computing device or a data storage device such as a data center containing one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk). The computer-readable storage medium includes instructions that instruct the computing device to execute the above-mentioned application to the application deployment system 200 for executing the application deployment method.

[0183] The embodiment of the present application also provides a computer program product including instructions. The computer program product may be a software or program product including instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on at least one computing device, the at least one computing device executes the above-mentioned application deployment method.

[0184] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.

Claims

1. An application deployment method, characterized in that: The method is performed by an application deployment system, wherein the application deployment system includes a hybrid deployment platform and a hybrid deployment client. The method includes: The hybrid deployment platform receives the deployment environment and deployment parameters of the target application configured by the user, and sends the deployment parameters to the hybrid deployment client in the deployment environment; The hybrid deployment client identifies the deployment mode of the application according to the deployment parameters; When the deployment mode is hybrid deployment, the hybrid deployment client calls the interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

2. The method according to claim 1, characterized in that The hybrid deployment client calls the interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module, including: The hybrid deployment client calls the interface of the hybrid deployment service module, and loads the class of the target application from the user-configured path to the process of the hybrid deployment service module through the hybrid deployment class loader of the target application.

3. The method according to claim 1 or 2, characterized in that: The hybrid deployment client calls the interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module, including: The hybrid deployment client recognizes that the deployment environment includes the process of the hybrid deployment service module, calls the application loading interface of the hybrid deployment service module, and loads the class of the target application to the process of the hybrid deployment service module.

4. The method according to claim 3, characterized in that The hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module, including: When the deployment parameter indicates that the loading mode of the hybrid deployment service module is loading after restart, the hybrid deployment client calls the restart interface of the hybrid deployment service module to restart the process of the hybrid deployment service module; The hybrid deployment client loads the application classes in the hybrid deployment configuration file to the process of the hybrid deployment service module in sequence according to the hybrid deployment configuration file, and then calls the application loading interface of the hybrid deployment service module to load the target application class to the process of the hybrid deployment service module.

5. The method according to claim 3, characterized in that: The hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module, including: When the deployment parameters indicate that the hybrid deployment service module is loaded in a direct loading mode, the hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

6. The method according to claim 1 or 2, characterized in that: The hybrid deployment client calls the interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module, including: The hybrid deployment client recognizes that the deployment environment does not include the process of the hybrid deployment service module, and the hybrid deployment client starts the process of the hybrid deployment service module; The hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

7. The method according to any one of claims 1 to 6, characterized in that: The method further comprises: When the user triggers a restart operation on the target application, the hybrid deployment client restarts the process of the hybrid deployment service module and loads the class of the target application to the process of the hybrid deployment service module according to the hybrid deployment configuration file.

8. The method according to any one of claims 1 to 7, characterized in that: The method further comprises: The hybrid deployment client updates the deployment parameters of the target application to the hybrid deployment configuration file.

9. The method according to claim 8, characterized in that The hybrid deployment configuration file includes the file address of the software package of the hybrid deployed application and the deployment parameters.

10. The method according to any one of claims 1 to 9, characterized in that: The deployment parameters include at least one of a deployment mode and a loading method.

11. The method according to any one of claims 1 to 10, characterized in that: The method further comprises: The hybrid deployment platform receives the deployment steps of the target application configured by the user, and when the deployment mode is hybrid deployment, the deployment steps include executing the hybrid deployment client.

12. An application deployment system, characterized in that: The application deployment system includes a hybrid deployment platform and a hybrid deployment client; The hybrid deployment platform is used to receive the deployment environment and deployment parameters of the target application configured by the user, and send the deployment parameters to the hybrid deployment client in the deployment environment; The hybrid deployment client is used to identify the deployment mode of the application according to the deployment parameters; The hybrid deployment client is also used to call the interface of the hybrid deployment service module and load the class of the target application into the process of the hybrid deployment service module when the deployment mode is hybrid deployment.

13. The system according to claim 12, characterized in that The hybrid deployment client is specifically used for: The hybrid deployment client calls the interface of the hybrid deployment service module, and loads the class of the target application from the user-configured path to the process of the hybrid deployment service module through the hybrid deployment class loader of the target application.

14. The system according to claim 12 or 13, characterized in that The hybrid deployment client is specifically used for: The hybrid deployment client recognizes that the deployment environment includes the process of the hybrid deployment service module, calls the application loading interface of the hybrid deployment service module, and loads the class of the target application to the process of the hybrid deployment service module.

15. The system according to claim 14, characterized in that The hybrid deployment client is specifically used for: When the deployment parameter indicates that the loading mode of the hybrid deployment service module is loading after restart, the hybrid deployment client calls the restart interface of the hybrid deployment service module to restart the process of the hybrid deployment service module; The hybrid deployment client loads the application classes in the hybrid deployment configuration file to the process of the hybrid deployment service module in sequence according to the hybrid deployment configuration file, and then calls the application loading interface of the hybrid deployment service module to load the target application class to the process of the hybrid deployment service module.

16. The system according to claim 14, characterized in that The hybrid deployment client is specifically used for: When the deployment parameters indicate that the hybrid deployment service module is loaded in a direct loading mode, the hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

17. The system according to claim 12 or 13, characterized in that The hybrid deployment client is specifically used for: The hybrid deployment client recognizes that the deployment environment does not include the process of the hybrid deployment service module, and the hybrid deployment client starts the process of the hybrid deployment service module; The hybrid deployment client calls the application loading interface of the hybrid deployment service module to load the class of the target application into the process of the hybrid deployment service module.

18. The system according to any one of claims 12 to 17, characterized in that The hybrid deployment client is also used to: When the user triggers a restart operation on the target application, the process of the hybrid deployment service module is restarted, and the class of the target application is loaded into the process of the hybrid deployment service module according to the hybrid deployment configuration file.

19. The system according to any one of claims 12 to 18, characterized in that The hybrid deployment client is also used to: The deployment parameters of the target application are updated to the hybrid deployment configuration file.

20. The system according to claim 19, characterized in that The hybrid deployment configuration file includes the file address of the software package of the hybrid deployed application and the deployment parameters.

21. The system according to any one of claims 12 to 20, characterized in that The deployment parameters include at least one of a deployment mode and a loading method.

22. The system according to any one of claims 12 to 21, characterized in that The hybrid deployment platform is also used to: The deployment step of the target application configured by the user is received, and when the deployment mode is hybrid deployment, the deployment step includes executing the hybrid deployment client.

23. A computing device cluster, characterized in that: The computing device cluster includes at least one computing device, and the at least one computing device includes at least one processor and at least one memory, wherein the at least one memory stores computer-readable instructions; the at least one processor executes the computer-readable instructions so that the computing device cluster executes the application deployment method as described in any one of claims 1 to 11.

24. A computer-readable storage medium, characterized in that: Comprising computer-readable instructions; the computer-readable instructions are used to implement the application deployment method described in any one of claims 1 to 11.

25. A computer program product, characterized in that Comprising computer-readable instructions; the computer-readable instructions are used to implement the application deployment method described in any one of claims 1 to 11.