Application program deployment method, system and device, electronic equipment and storage medium

By sending status check commands and deployment commands to the deployment engine through the deployment platform, and combining the gRPC protocol, the problem of the failure of automated deployment capabilities in isolated environments is solved, and secure and reliable application version management and deployment are achieved.

CN121658017APending Publication Date: 2026-03-13CHINA TELECOM CLOUD TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-11-17
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

In isolated environments with high security requirements, centralized control mechanisms based on SSH cannot establish effective connections, causing automated deployment capabilities to fail. Furthermore, existing mechanisms lack a continuous state interaction channel, which can easily lead to configuration drift and version conflicts.

Method used

The deployment platform sends status check commands to the deployment engine to generate version difference information. If the difference information meets the preset conditions, the deployment command is sent. The gRPC protocol is used for communication to avoid SSH restrictions and achieve the deployment of the target version of the application.

Benefits of technology

The system restores automated deployment capabilities in isolated environments with high security requirements, avoiding deployment risks such as version conflicts and improving deployment security and consistency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121658017A_ABST
    Figure CN121658017A_ABST
Patent Text Reader

Abstract

The invention discloses an application program deployment method, system and device, electronic equipment and a storage medium, an arrangement file is obtained, the arrangement file comprises deployment arrangement information, and the deployment arrangement information comprises a name, a target version number, a target machine group and a state check method of a target application program to be deployed; the state checking method is used for comparing a currently running version number of an application program on each target machine in a target machine group with a target version number, generating version difference information, and sending a deployment instruction to a deployment engine through a deployment platform, so that the deployment engine deploys a target application program corresponding to the target version number on the target machine group. According to the method, the problem of failure of the automatic deployment capability in the island environment is avoided, and the deployment engine generates the version difference information in a manner of sending the state check instruction to the deployment engine through the deployment platform, so that deployment is performed under the condition that the version difference information meets the preset condition, and deployment risks such as version conflicts are avoided.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of automated deployment technology, and specifically relates to a method, system, device, electronic device, and storage medium for deploying applications. Background Technology

[0002] In current mainstream public cloud deployment platforms, the SSH (Secure Shell) mechanism is generally adopted, in which the server actively connects to the target machine in the resource pool and remotely executes user-defined deployment stage scripts to achieve automated deployment process.

[0003] However, as enterprises increasingly demand higher standards of network security and compliance, and with the widespread adoption of complex architectures such as hybrid cloud and edge computing, this approach is increasingly revealing significant technical limitations and deployment risks. For example, in high-security "isolated environments" (such as financial intranets, classified systems, or strictly isolated private data centers), external proactive connections are usually completely blocked by firewall policies, causing the centralized control mechanism based on SSH to fail to establish an effective connection, thus rendering automated deployment capabilities ineffective. Furthermore, the existing mechanism relies on stateless, one-time SSH sessions, lacking a continuous state interaction channel between the server and the target machine. It is impossible to verify the relevant information of services already deployed on the target machine before deployment, which can easily lead to configuration drift, version conflicts, or even service interruptions. Summary of the Invention

[0004] In view of the above problems, embodiments of the present invention are proposed to provide an application deployment method, system, apparatus, electronic device, and storage medium that overcomes or at least partially solves the above problems.

[0005] In a first aspect, embodiments of the present invention provide an application deployment method applied to a deployment platform, the deployment method comprising: Obtain an orchestration file, which includes deployment orchestration information. The deployment orchestration information includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method. The status check method is used to compare the current version number of the application running on each target machine in the target machine group with the target version number to generate version difference information. In response to a deployment request, a status check instruction is sent to the deployment engine, the status check instruction including the status check method, so that the deployment engine generates version difference information according to the status check method; The version difference information returned by the deployment engine is obtained. If the version difference information meets the preset conditions, a deployment instruction is sent to the deployment engine. The deployment instruction includes the deployment orchestration information so that the deployment engine can deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0006] Optionally, the orchestration file further includes machine resource information, which includes configuration data for at least one machine group; the deployment instruction further includes configuration data for the target machine group, so that the deployment engine accesses the target machine group according to the configuration data of the target machine group, and deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0007] Optionally, obtaining the version difference information returned by the deployment engine includes: The version difference information is obtained from the object storage; the version difference information is the version difference information returned to the object storage by the deployment engine after generating the version difference information according to the status check method.

[0008] Optionally, the method further includes: The deployment result is obtained from the object storage. The deployment result includes the deployment execution status and the version number of the target application after deployment. The deployment result is the deployment result returned to the object storage by the deployment engine after deploying the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0009] Optionally, the method further includes: If the version difference information indicates that the version number of the application currently running on the target machine group differs from the target version number, then the version difference information is determined to meet the preset conditions.

[0010] Optionally, the deployment platform and the deployment engine communicate via the gRPC protocol.

[0011] Secondly, embodiments of the present invention provide an application deployment system, the system including a deployment platform and a deployment engine; The deployment platform is configured to: acquire an orchestration file including deployment orchestration information, which includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method; the status check method comparing the currently running version number of the application on each target machine in the target machine group with the target version number to generate version difference information; in response to a deployment request, send a status check instruction to the deployment engine, which includes the status check method, so that the deployment engine generates version difference information according to the status check method; acquire the version difference information returned by the deployment engine; and, if the version difference information meets preset conditions, send a deployment instruction to the deployment engine, which includes the deployment orchestration information, so that the deployment engine deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information; The deployment engine is configured to receive status check instructions sent by the deployment platform, generate version difference information according to the status check method, and return the version difference information to the deployment platform; receive deployment instructions sent by the deployment platform, deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information, and return the deployment result to the deployment platform, wherein the deployment result includes the deployment execution status and the version number of the target application that has been deployed.

[0012] Optionally, the orchestration file further includes machine resource information, which includes configuration data for at least one machine group; the deployment instruction further includes configuration data for the target machine group, so that the deployment engine accesses the target machine group according to the configuration data of the target machine group, and deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0013] Optionally, the deployment platform is used to obtain the version difference information from the object storage; the version difference information is the version difference information returned to the object storage by the deployment engine after generating the version difference information according to the status check method; The deployment engine is used to generate version difference information according to the status check method and then store the returned version difference information in the object.

[0014] Optionally, the deployment platform is used to obtain the deployment result from the object storage, the deployment result including the deployment execution status and the version number of the target application after deployment; the deployment result is the deployment result returned to the object storage by the deployment engine after deploying the target application with the corresponding target version number on the target machine group according to the deployment orchestration information; The deployment engine is used to deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information, and then return the deployment result to the object store.

[0015] Optionally, the deployment platform is configured to determine that the version difference information meets a preset condition if the version difference information indicates that the version number currently running on the target machine group differs from the target version number.

[0016] Optionally, the deployment platform and the deployment engine communicate via the gRPC protocol.

[0017] Thirdly, embodiments of the present invention provide an application deployment apparatus applied to a deployment platform, the deployment apparatus comprising: The orchestration file acquisition module is used to acquire an orchestration file, which includes deployment orchestration information. The deployment orchestration information includes the name of the target application to be deployed, the target version number, the target machine group, and the status check method. The status check method is used to compare the current running version number of the application on each target machine in the target machine group with the target version number to generate version difference information. A status check instruction sending module is used to send a status check instruction to the deployment engine in response to a deployment request. The status check instruction includes the status check method, so that the deployment engine generates version difference information according to the status check method. The deployment instruction sending module is used to obtain version difference information returned by the deployment engine, and when the version difference information meets preset conditions, send a deployment instruction to the deployment engine. The deployment instruction includes the deployment orchestration information, so that the deployment engine deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0018] Optionally, the orchestration file further includes machine resource information, which includes configuration data for at least one machine group; the deployment instruction further includes configuration data for the target machine group, so that the deployment engine accesses the target machine group according to the configuration data of the target machine group, and deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0019] Optionally, the deployment instruction sending module includes: The version difference information acquisition module is used to obtain the version difference information from the object storage; the version difference information is the version difference information returned to the object storage by the deployment engine after generating the version difference information according to the status check method.

[0020] Optionally, the device further includes: The deployment result acquisition module is used to acquire the deployment result from the object storage. The deployment result includes the deployment execution status and the version number of the target application after deployment. The deployment result is the deployment result returned to the object storage by the deployment engine after deploying the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0021] Optionally, the device further includes: The version difference determination module is used to determine that the version difference information meets preset conditions if the version difference information indicates that the version number of the application currently running on the target machine group is different from the target version number.

[0022] Optionally, the deployment platform and the deployment engine communicate via the gRPC protocol.

[0023] Fourthly, embodiments of the present invention provide an electronic device including a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the method described in the first aspect.

[0024] Fifthly, embodiments of the present invention provide a readable storage medium on which a program or instructions are stored, which, when executed by a processor, implement the steps of the method described in the first aspect.

[0025] This invention provides an application deployment method applied to a deployment platform. First, an orchestration file is obtained, including deployment orchestration information. This information includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method. The status check method compares the currently running version number of the application on each target machine in the target machine group with the target version number to generate version difference information. Then, in response to a deployment request, a status check instruction is sent to the deployment engine. This instruction includes the status check method, enabling the deployment engine to generate version difference information based on the status check method. Finally, upon obtaining the version difference information returned by the deployment engine, if the version difference information meets preset conditions, a deployment instruction is sent to the deployment engine. This instruction includes deployment orchestration information, enabling the deployment engine to deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information. This invention provides an embodiment of the invention that sends deployment instructions from the deployment platform to the deployment engine, enabling the deployment engine to deploy the target application with the corresponding target version number on the target machine group. This avoids the problem of automated deployment capability failure in "isolated environments" with high security requirements. Furthermore, by sending status check instructions from the deployment platform to the deployment engine, the deployment engine generates version difference information, thereby performing deployment when the version difference information meets preset conditions, avoiding deployment risks such as version conflicts. Attached Figure Description

[0026] Figure 1 This is a flowchart illustrating the steps of an application deployment method according to an embodiment of the present invention; Figure 2 This is a schematic diagram of an application deployment system according to an embodiment of the present invention; Figure 3 This is a schematic diagram of an application deployment device according to an embodiment of the present invention. Detailed Implementation

[0027] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0028] In current mainstream public cloud deployment platforms, the SSH-based mechanism is commonly used, where the server actively connects to the target machine in the resource pool and remotely executes user-defined deployment stage scripts to achieve automated deployment processes.

[0029] However, as enterprises increasingly demand higher standards of network security and compliance, and with the widespread adoption of complex architectures such as hybrid cloud and edge computing, this approach is increasingly revealing significant technical limitations and deployment risks. For example, in high-security "isolated environments" (such as financial intranets, classified systems, or strictly isolated private data centers), external proactive connections are usually completely blocked by firewall policies, causing the centralized control mechanism based on SSH to fail to establish an effective connection, thus rendering automated deployment capabilities ineffective. Furthermore, the existing mechanism relies on stateless, one-time SSH sessions, lacking a continuous state interaction channel between the server and the target machine. It is impossible to verify the relevant information of services already deployed on the target machine before deployment, which can easily lead to configuration drift, version conflicts, or even service interruptions.

[0030] One of the core concepts of this invention is to send deployment instructions to the deployment engine through the deployment platform, so that the deployment engine can deploy the target application with the corresponding target version number on the target machine group. This avoids the problem of automatic deployment capability failure in "island environments" with high security requirements. Furthermore, by sending status check instructions to the deployment engine through the deployment platform, the deployment engine can generate version difference information, so that deployment can be carried out when the version difference information meets the preset conditions, thus avoiding deployment risks such as version conflicts.

[0031] Reference Figure 1 The diagram illustrates a flowchart of the steps of an application deployment method according to an embodiment of the present invention, applied to a deployment platform, and specifically includes the following steps: Step 101: Obtain the orchestration file. The orchestration file includes deployment orchestration information, which includes the name of the target application to be deployed, the target version number, the target machine group, and the status check method. The status check method is used to compare the current version number of the application running on each target machine in the target machine group with the target version number to generate version difference information.

[0032] The deployment platform can establish a communication connection with the Git repository and retrieve user-defined orchestration files from it. Users can perform file orchestration through two interactive modes: an advanced orchestration mode, designed for users with experience in scripting, automated deployment, or DevOps (Development and Operations Partnership), which allows for fine-grained control over deployment processes, resource dependencies, execution order, and environment variables by writing YAML orchestration files, enabling highly flexible custom orchestration logic; and a UI mode, or visual orchestration mode, which provides a graphical user interface (i.e., "white-screen" operation) for users unfamiliar with code or who want to get started quickly. This allows for intuitive service orchestration through drag-and-drop components and form configuration, lowering the barrier to entry and improving operational efficiency. Users can freely choose between flexibility and ease of use based on their actual needs.

[0033] The orchestration file includes deployment orchestration information, which includes the name of the target application (service) to be deployed, the target version number of the target application to be deployed, the target machine group to be deployed, and the status check method. The target machine group includes multiple target machines, and the status check method is used to compare the current running version number of the target application (deployment object) with the target version number before deployment. This involves comparing the current running version number and the target version number of the target application on multiple target machines to generate version difference information.

[0034] Storing orchestration files in a Git repository allows for the unified management of services, versions, machines, resource pools, and deployment scripts that need to be deployed. Templates and sample scripts can be provided to help team members get started quickly and follow a unified standard. Furthermore, the deployment platform provides a unified API interface that supports script execution in multiple programming languages ​​(such as Go, Ansible, Python, etc.), which significantly improves the quality and reusability of orchestration files. All deployment logic can be managed and optimized on the same platform, avoiding inconsistencies caused by multiple copies or manual modifications, ensuring version consistency of deployment scripts, reducing errors and maintenance costs caused by script diversity, and improving team collaboration and maintenance efficiency. Step 102: In response to the deployment request, a status check instruction is sent to the deployment engine. The status check instruction includes a status check method so that the deployment engine generates version difference information based on the status check method.

[0035] In response to a deployment request sent by a user, the deployment platform sends a status check instruction to the deployment engine. The status check instruction includes the check methods defined in the orchestration file. The deployment engine compares the current version number of the application running on the target machine with the target version number based on the status check method, and generates version difference information.

[0036] The deployment platform acts as the deployment control center, receiving user deployment requests and scheduling deployment tasks, while the deployment engine is responsible for the actual execution of these tasks. The deployment engine can run as an independent server process, deployed across multiple nodes and distributed across target machines to form a distributed deployment engine cluster. The deployment engine works in conjunction with the deployment platform to form a centralized deployment service and a distributed deployment engine architecture—a centralized control + distributed execution architecture. The deployment engine can also exist as a command-line tool (CLI), allowing users to directly invoke it via the terminal to perform deployment operations. This eliminates the need for long-running service processes, making it suitable for temporary, one-off deployment tasks, while still supporting communication with the deployment platform for remote task scheduling and state synchronization.

[0037] Step 103: Obtain the version difference information returned by the deployment engine. If the version difference information meets the preset conditions, send a deployment instruction to the deployment engine. The deployment instruction includes deployment orchestration information so that the deployment engine can deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0038] After the deployment engine compares the current version number of the application running on the target machine with the target version number and generates version difference information, the deployment platform obtains the version difference information and determines whether the version difference information meets the preset conditions. If the version difference information meets the preset conditions, it sends a deployment instruction to the deployment engine. The deployment instruction includes the name of the target application to be deployed, the target version number, and the target machine group, so that the deployment engine can deploy the target application with the corresponding target version number on the target machine in the target machine group.

[0039] This invention provides an application deployment method applied to a deployment platform. First, an orchestration file is obtained, including deployment orchestration information. This information includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method. The status check method compares the currently running version number of the application on each target machine in the target machine group with the target version number to generate version difference information. Then, in response to a deployment request, a status check instruction is sent to the deployment engine. This instruction includes the status check method, enabling the deployment engine to generate version difference information based on the status check method. Finally, upon obtaining the version difference information returned by the deployment engine, if the version difference information meets preset conditions, a deployment instruction is sent to the deployment engine. This instruction includes deployment orchestration information, enabling the deployment engine to deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information. This invention provides an embodiment of the invention that sends deployment instructions from the deployment platform to the deployment engine, enabling the deployment engine to deploy the target application with the corresponding target version number on the target machine group. This avoids the problem of automated deployment capability failure in "isolated environments" with high security requirements. Furthermore, by sending status check instructions from the deployment platform to the deployment engine, the deployment engine generates version difference information, thereby performing deployment when the version difference information meets preset conditions, avoiding deployment risks such as version conflicts.

[0040] In this embodiment of the invention, the deployment platform and the deployment engine communicate via the gRPC protocol.

[0041] In isolated environments where external access is not permitted, external connections are typically completely blocked by firewall policies, allowing only internal nodes to initiate communication outwards. This prevents centralized control mechanisms based on SSH from establishing effective connections, thus rendering automated deployment capabilities ineffective. In this embodiment of the invention, the deployment platform and deployment engine communicate via the gRPC protocol. The deployment engine can be distributed across target machines, and the deployment engine on the target machine can proactively connect and communicate with the deployment platform via the gRPC protocol, thereby avoiding the limitations of the SSH protocol and supporting automated deployment in isolated environments.

[0042] In this embodiment of the invention, the orchestration file also includes machine resource information, which includes configuration data of at least one machine group; the deployment instruction also includes configuration data of the target machine group, so that the deployment engine accesses the target machine group according to the configuration data of the target machine group, and deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0043] The orchestration file obtained by the deployment platform also includes machine resource information, which includes configuration data for at least one machine group. Each machine group includes at least one machine and can be grouped according to function or role. For example, a machine group can be a database server group, a front-end server group, and a back-end server group. By grouping all machines, deployment can be performed by group. The configuration data can include machine identification information, network attributes, operating system, and hardware specifications. Among them, network attributes include hostname and IP address, operating system includes operating system type and version, which can affect script compatibility and dependency installation, and hardware specifications reflect the machine's computing power. For example, memory size can be used to determine whether it meets the application's running requirements.

[0044] The deployment instructions sent by the deployment platform to the deployment engine also include the configuration data of the target machine group. The deployment engine can access the target machine group based on the configuration data of the target machine group and deploy the target application with the corresponding target version number on the target machines within the target machine group.

[0045] For example, the following is machine resource information defined in the orchestration file: # 1. Resource Definition - inventory.yaml resourcePool: name: "Main Resource Pool" Description: "All available resources for the production environment" machines: - id: "machine-001" name: "Database Server 1" group: "database" config: hostname: "db1.example.com" IP address: "10.1.1.10" OS: "Ubuntu 20.04" CPU: "8 cores" memory: "32GB" - id: "machine-002" name: "Frontend Server 1" group: "frontend" config: hostname: "frontend1.example.com" IP address: "10.1.1.11" OS: "Ubuntu 20.04" CPU: "4 cores" memory: "16GB" - id: "machine-003" name: "Backend Server 1" group: "backend" config: hostname: "backend1.example.com" IP address: "10.1.1.12" OS: "Ubuntu 20.04" CPU: "6 cores" memory: "24GB" For example, the following is the deployment orchestration information defined in the orchestration file: # 2. Deployment Orchestration - deployment.yaml deployment: name: "Version Released v1.0.0" Description: "Deploying version 1.0.0 to the production environment" selectResourceGroups: - "database" - "backend" # Choose whether to include the front end as needed # - "frontend" softwareDeployments: - group: "database" software: name: "PostgreSQL" version: "13.3" deploymentMethod: "package install" # Install using a package manager settings: db_port: 5432 db_name: "production_db" db_user: "prod_user" db_password: "{{ secrets.dbPassword}}" - group: "backend" software: name: "Spring Boot Application" version: "1.2.3" deploymentMethod: "binary" # Deploy binary files settings: app_port: 8080 env: "production" api_key: "{{ secrets.apiKey}}" - group: "frontend" software: name: "Nginx" version: "1.18" deploymentMethod: "Docker" # Deploy using Docker settings: host: "0.0.0.0" port: 80 domain: "example.com" variables: environment: "production" region: "us-west" logging_level: "info" secrets: dbPassword: Description: "Production Database Password" vault: "vault: / / secrets / production / db_password" apiKey: Description: "External service API key" vault: "vault: / / secrets / production / api_key" # Deployment steps steps: - name: "Deploy Database (Package Installation)" if: "'database' in selectResourceGroups" hosts: "{{ resourcePool.machines | selectattr('group', 'equalto', 'database') | map(attribute='hostname') | list}}" tasks: - name: "List of Update Packages" apt: update_cache: yes - name: "Install PostgreSQL" apt: name: "postgresql-13" state: present - name: "Configure PostgreSQL" template: src: "templates / postgresql.conf.j2" dest: " / etc / postgresql / 13 / main / postgresql.conf" notify: - Restart PostgreSQL - name: "Set database user and password" postgresql_user: name: "{{ settings.db_user}}" password: "{{ settings.db_password}}" db: "{{ settings.db_name}}" state: present checkStatus: - name: "Check database version" shell: psql --version - name: "Deploy backend application (binary)" if: "'backend' in selectResourceGroups" hosts: "{{ resourcePool.machines | selectattr('group', 'equalto', 'backend') | map(attribute='hostname') | list}}" tasks: - name: "Upload binary file" copy: src: "build / {{ software.version}} / backend-app" dest: " / opt / backend / backend-app" mode: '0755' - name: "Create System Service" template: src: "templates / backend.service.j2" dest: " / etc / systemd / system / backend.service" notify: - Start the backend service - name: "Start and enable the service" systemd: name: "backend" enabled: yes state: started checkStatus: - name: "Backend service version" shell: / opt / backend / backend-app --version - name: "Deploying Front-End Services (Docker)" if: "'frontend' in selectResourceGroups" hosts: "{{ resourcePool.machines | selectattr('group', 'equalto', 'frontend') | map(attribute='hostname') | list}}" tasks: - name: "Install Docker" apt: name: ["docker.io", "docker-compose"] state: present update_cache: yes - name: "Start Docker service" service: name: docker enabled: yes state: started - name: "Pull Nginx image" docker_image: name: "nginx" tag: "{{ software.version}}" source: pull - name: "Running the Nginx container" docker_container: name: "nginx" image: "nginx:{{ software.version}}" state: started restart_policy: always ports: - "{{ settings.port}}:80" env: DOMAIN: "{{ settings.domain}}" HOST: "{{ settings.host}}" checkStatus: - name: "Backend service version" shell: docker exec -it nginx -- nginx --version # Handlers for handling notifications handlers: - name: "Restart PostgreSQL" service: name: "postgresql" state: restarted - name: "Start the backend service" systemd: name: "backend" state: restarted enabled: yes In this embodiment of the invention, obtaining the version difference information returned by the deployment engine includes: Retrieve version difference information from object storage; the version difference information is the version difference information returned to object storage by the deployment engine after it generates version difference information based on the status check method.

[0046] After generating version difference information, the deployment engine returns the version difference information to the object storage. The deployment platform retrieves the version difference information from the object storage, enabling real-time recording of the applications and version information deployed on each machine and supporting comparison in an online environment.

[0047] In this embodiment of the invention, the method further includes: The deployment results are retrieved from the object storage. The deployment results include the deployment execution status and the version number of the target application after deployment. The deployment results are the deployment results returned to the object storage by the deployment engine after deploying the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0048] The deployment engine executes the deployment, checks whether the deployment meets expectations and upgrades to the required version, and returns the deployment result (the status of the online service after deployment) to the object storage. The deployment result includes the deployment execution status and the version number of the target application after deployment.

[0049] The deployment platform retrieves deployment results from object storage and displays detailed deployment logs, whether the deployment was successful, the online service version and status after deployment. If an anomaly occurs during the deployment process, users can quickly trigger a rollback operation through the deployment platform to restore to the previous stable version.

[0050] In this embodiment of the invention, the method further includes: If the version difference information indicates that the version number of the application currently running on the target machine group differs from the target version number, then the version difference information is determined to meet the preset conditions.

[0051] If the deployment platform confirms that the version number of the application currently running differs from the target version number, and that the difference is significant, then it determines that the version difference information meets the preset conditions, indicating that the deployment process can continue.

[0052] The automated deployment process of this invention reduces manual intervention, improves deployment speed and efficiency, and saves human resources. Unified script management and standardized processes ensure deployment consistency across different teams, reducing the risk of failure due to script quality differences. The gRPC protocol enables automated deployment in environments where external access is not permitted, expanding the scope of deployment applicability. Resource status tracking and online comparison functions identify potential deployment risks in advance, improving success rates. A rapid rollback mechanism allows for timely recovery in case of problems, ensuring system stability. Real-time monitoring and status feedback mechanisms during deployment increase transparency, enabling development and operations teams to respond to issues promptly and ensuring healthy system operation. The centralized deployment service's API interface supports integration with other tools and systems, promoting collaboration and information sharing among different teams.

[0053] Reference Figure 2 The diagram illustrates an application deployment system according to an embodiment of the present invention. The deployment system includes a deployment platform, a deployment engine, a code repository, and an object storage.

[0054] The deployment platform retrieves orchestration files from the code repository. These files include deployment orchestration information, which includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method. The status check method compares the current running version number of the application on each target machine in the target machine group with the target version number to generate version difference information. In response to a deployment request, the platform sends a status check instruction to the deployment engine. This instruction includes a status check method, enabling the deployment engine to generate version difference information based on the method. The platform also retrieves the version difference information returned by the deployment engine from the object storage. If the version difference information meets preset conditions, the platform sends a deployment instruction to the deployment engine. This instruction includes deployment orchestration information, enabling the deployment engine to deploy the target application with the corresponding target version number on the target machine group based on the orchestration information. The deployment engine receives status check instructions from the deployment platform, generates version difference information based on the status check method, and returns the version difference information to the deployment platform through object storage. It also receives deployment instructions from the deployment platform, deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information, and returns the deployment result to the deployment platform through object storage. The deployment result includes the deployment execution status and the version number of the target application that has been deployed.

[0055] The status file is used to store deployment details for the storage service. When the deployment engine is a standalone server, the storage medium can be object storage, a Nexus Raw library, etc. When the deployment engine is a command-line tool, the storage medium can also be local text. The deployment system can implement version control for deployment scripts, automatically update the service deployment status, and implement declarative configuration files and deployments before deployment. The deployment engine supports a plug-in mode; once the core module is stable, expanding its deployment capabilities only requires updating from the deployment platform to all deployment engines, enabling rapid deployment and expansion of new deployment capabilities. For public clouds with numerous resource pools, this capability can significantly save deployment manpower and time.

[0056] The centralized deployment platform is responsible for receiving user deployment requests, managing deployment scripts and configuration information; providing a unified API interface to support script execution in multiple programming languages ​​(such as Go, Ansible, Python, etc.); linking with the code repository to centrally store deployment scripts, ensuring version consistency using the Gitops approach, and providing version management and change history tracking; orchestration management to organically arrange resource pools, machines, software, versions, and deployment scripts; sensitive information management, such as database accounts and passwords; and managing online service status information, such as resource pool information and online service deployment information (hosts, software, versions, etc.).

[0057] The distributed deployment engine communicates between services via the gRPC protocol, avoiding the limitations of SSH connections. It can also be compiled into CLI tools to support automated deployment in isolated environments. It is responsible for the actual deployment process, including pre-checks, deployment, post-checks, and rollback phases. It provides real-time status monitoring and feedback mechanisms to ensure the traceability and visualization of the deployment process. It consists of two main parts: Core and plugins. Core implements the basic core deployment components, while plugins extend deployment capabilities and support hot-updating plugins. To extend its deployment capabilities, simply update the deployment platform on all deployment engines to enable rapid deployment and expansion of new deployment capabilities.

[0058] This invention enables unified script management, with all deployment scripts stored in a code repository. Combined with a centralized deployment service, it ensures script version consistency and reusability, providing templates and sample scripts to facilitate quick onboarding and adherence to unified standards by team members. Resource status tracking is achieved through a resource management module integrated into the deployment engine, recording the deployment status and version information of machines in each resource pool in real time. It provides pre- and post-deployment comparison functionality to help users understand changes and mitigate risks. Flexible environment adaptation is ensured through dynamic registration and deregistration of the deployment engine, automatically adjusting to changes in resource pools to guarantee high availability and elasticity. Multiple environment configuration options are provided to support different deployment scenarios, such as development, testing, and production environments. A monitoring and feedback mechanism monitors the deployment process in real time, records logs, and provides a visual interface for quick problem identification. Intelligent alarm functionality promptly notifies relevant personnel of any anomalies during deployment.

[0059] Reference Figure 3 The diagram illustrates an application deployment apparatus according to an embodiment of the present invention, which is applied to a deployment platform and may specifically include the following modules: The orchestration file acquisition module 201 is used to acquire the orchestration file, which includes deployment orchestration information. The deployment orchestration information includes the name of the target application to be deployed, the target version number, the target machine group, and the status check method. The status check method is used to compare the current running version number of the application on each target machine in the target machine group with the target version number to generate version difference information. The status check instruction sending module 202 is used to send a status check instruction to the deployment engine in response to a deployment request. The status check instruction includes a status check method so that the deployment engine generates version difference information based on the status check method. The deployment instruction sending module 203 is used to obtain version difference information returned by the deployment engine. When the version difference information meets the preset conditions, it sends a deployment instruction to the deployment engine. The deployment instruction includes deployment orchestration information so that the deployment engine can deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0060] In this embodiment of the invention, the orchestration file also includes machine resource information, which includes configuration data of at least one machine group; the deployment instruction also includes configuration data of the target machine group, so that the deployment engine accesses the target machine group according to the configuration data of the target machine group, and deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0061] In this embodiment of the invention, the deployment instruction sending module includes: The version difference information acquisition module is used to obtain version difference information from object storage. The version difference information is the version difference information returned to object storage by the deployment engine after it generates version difference information according to the status check method.

[0062] In this embodiment of the invention, the device further includes: The deployment result acquisition module is used to retrieve deployment results from object storage. The deployment results include the deployment execution status and the version number of the target application after deployment. The deployment result is the deployment result returned to object storage by the deployment engine after deploying the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

[0063] In this embodiment of the invention, the device further includes: The version difference determination module is used to determine if the version difference information indicates that the version number currently running on the target machine group differs from the target version number, and then determines that the version difference information meets the preset conditions.

[0064] As the device embodiment is basically similar to the method embodiment, the description is relatively simple, and relevant parts can be found in the description of the method embodiment.

[0065] This invention also provides an electronic device, comprising: It includes a processor, a memory, and a program stored in the memory and capable of running on the processor. When the program is executed by the processor, it implements the various processes of the above-described application deployment method embodiment and achieves the same technical effect. To avoid repetition, it will not be described again here.

[0066] This invention also provides a readable storage medium on which a program is stored. When the program is executed by a processor, it implements the various processes of the above-described application deployment method embodiment and achieves the same technical effect. To avoid repetition, it will not be described again here.

[0067] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.

[0068] The terms "first," "second," etc., used in the specification and claims of this invention are used to distinguish similar objects and are not used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that embodiments of the invention can be implemented in orders other than those illustrated or described herein. Furthermore, in the specification and claims, "and / or" indicates at least one of the connected objects, and the character " / " generally indicates that the preceding and following objects are in an "or" relationship.

[0069] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, it should be noted that the scope of the methods and apparatuses in the embodiments of the present invention is not limited to performing functions in the order shown or discussed, but may also include performing functions substantially simultaneously or in the reverse order, depending on the functions involved. For example, the described methods may be performed in a different order than described, and various steps may be added, omitted, or combined. Additionally, features described with reference to certain examples may be combined in other examples.

[0070] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of the present invention.

[0071] The embodiments of the present invention have been described above with reference to the accompanying drawings. However, the present invention is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of the present invention without departing from the spirit and scope of the claims, and all of these forms are within the protection scope of the present invention.

Claims

1. A method for deploying an application, characterized in that, The deployment method, applied to a deployment platform, includes: Obtain an orchestration file, which includes deployment orchestration information. The deployment orchestration information includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method. The status check method is used to compare the current version number of the application running on each target machine in the target machine group with the target version number to generate version difference information. In response to a deployment request, a status check instruction is sent to the deployment engine, the status check instruction including the status check method, so that the deployment engine generates version difference information according to the status check method; The version difference information returned by the deployment engine is obtained. If the version difference information meets the preset conditions, a deployment instruction is sent to the deployment engine. The deployment instruction includes the deployment orchestration information so that the deployment engine can deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

2. The deployment method according to claim 1, characterized in that, The orchestration file also includes machine resource information, which includes configuration data for at least one machine group; the deployment instructions also include configuration data for the target machine group, so that the deployment engine can access the target machine group according to the configuration data of the target machine group, and deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

3. The deployment method according to claim 1, characterized in that, The process of obtaining the version difference information returned by the deployment engine includes: The version difference information is obtained from the object storage; the version difference information is the version difference information returned to the object storage by the deployment engine after generating the version difference information according to the status check method.

4. The deployment method according to claim 3, characterized in that, The method further includes: The deployment result is obtained from the object storage. The deployment result includes the deployment execution status and the version number of the target application after deployment. The deployment result is the deployment result returned to the object storage by the deployment engine after deploying the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

5. The deployment method according to claim 1, characterized in that, The method further includes: If the version difference information indicates that the version number of the application currently running on the target machine group differs from the target version number, then the version difference information is determined to meet the preset conditions.

6. The deployment method according to claim 1, characterized in that, The deployment platform and the deployment engine communicate via the gRPC protocol.

7. An application deployment system, characterized in that, The system includes a deployment platform and a deployment engine; The deployment platform is used to obtain an orchestration file, which includes deployment orchestration information. The deployment orchestration information includes the name of the target application to be deployed, the target version number, the target machine group, and a status check method. The status check method is used to compare the current version number of the application running on each target machine in the target machine group with the target version number to generate version difference information. In response to a deployment request, a status check instruction is sent to the deployment engine, the status check instruction including the status check method, so that the deployment engine generates version difference information according to the status check method; Obtain the version difference information returned by the deployment engine. If the version difference information meets the preset conditions, send a deployment instruction to the deployment engine. The deployment instruction includes the deployment orchestration information so that the deployment engine can deploy the target application with the corresponding target version number on the target machine group according to the deployment orchestration information. The deployment engine is used to receive status check instructions sent by the deployment platform, generate version difference information according to the status check method, and return the version difference information to the deployment platform. The system receives deployment instructions sent by the deployment platform, deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information, and returns the deployment result to the deployment platform. The deployment result includes the deployment execution status and the version number of the target application that has been deployed.

8. An application deployment apparatus, characterized in that, The deployment device is used in a deployment platform and includes: The orchestration file acquisition module is used to acquire an orchestration file, which includes deployment orchestration information. The deployment orchestration information includes the name of the target application to be deployed, the target version number, the target machine group, and the status check method. The status check method is used to compare the current running version number of the application on each target machine in the target machine group with the target version number to generate version difference information. A status check instruction sending module is used to send a status check instruction to the deployment engine in response to a deployment request. The status check instruction includes the status check method, so that the deployment engine generates version difference information according to the status check method. The deployment instruction sending module is used to obtain version difference information returned by the deployment engine, and when the version difference information meets preset conditions, send a deployment instruction to the deployment engine. The deployment instruction includes the deployment orchestration information, so that the deployment engine deploys the target application with the corresponding target version number on the target machine group according to the deployment orchestration information.

9. An electronic device, characterized in that, It includes a processor, a memory, and a program or instructions stored in the memory and executable on the processor, wherein the program or instructions, when executed by the processor, implement the steps of the deployment method of the application as described in claims 1-6.

10. A readable storage medium, characterized in that, The readable storage medium stores a program or instructions that, when executed by a processor, implement the steps of the deployment method of the application as described in claims 1-6.