CN117850812A - 一种基于代理的分布式应用动态部署和升级方法 - Google Patents
一种基于代理的分布式应用动态部署和升级方法 Download PDFInfo
- Publication number
- CN117850812A CN117850812A CN202410053776.3A CN202410053776A CN117850812A CN 117850812 A CN117850812 A CN 117850812A CN 202410053776 A CN202410053776 A CN 202410053776A CN 117850812 A CN117850812 A CN 117850812A
- Authority
- CN
- China
- Prior art keywords
- application
- deployment
- agent
- program
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于代理的分布式应用动态部署和升级方法,包括:统一部署代理程序:在各个分布式应用节点部署统一的代理程序客户端,部署应用程序资源管理服务器,代理程序客户端主动报备;主动感知应用发布和更新需求:定时查询应用发布需求;下载应用程序文件;自动完成应用部署和升级:完成应用程序部署;启动应用程序进程;清理旧版本应用程序文件。本发明通过主动感知实现分布式应用的部署和升级,无需编写和修改自动化脚本,简化应用部署过程,降低复杂度,减少人为因素,提高工作效率。
Description
技术领域
本发明属于服务动态部署领域,是一种基于代理实现分布式应用网络的服务动态部署和升级的机制,具体说是一种基于代理的分布式应用动态部署和升级方法。
背景技术
随着云计算技术应用的普及,很多行业的业务应用系统采用私有云的方式进行分布式部署。特别是微服务架构、容器技术被广泛应用之后,程序更新发布和参数配置的工作量大,应用系统的部署和升级工作变得相对复杂。在部署节点扩容、应用更新灰度发布、微服务计算资源规划调整等业务场景下,系统部署工作一旦出现问题,故障定位排查十分繁琐和困难。部署和升级工作的复杂性催生了一些自动化部署技术和产品,但是这些技术和产品在向分布式应用服务器进行应用部署时,都是采用推送的方式,对自动化脚本的依赖度非常高,并没有降低部署工作的复杂度。在安全性要求较高的私有云中,应用节点的服务器账号密码经常性变更也会导致自动化脚本需要频繁修改,增加了出错的概率。
发明内容
本发明的目的是提供一种基于代理的分布式应用部署和升级方法,利用服务代理、身份认证、数据加密、文件传输、进程管理等技术,通过主动感知实现分布式应用的部署和升级,变“推”为“拉”,应用节点的服务器账号密码变更对应用部署和升级无任何影响,简化应用部署过程,降低复杂度,减少人为因素,提高工作效率。
本发明的目的通过以下技术方案实现:
一种基于代理的分布式应用部署和升级方法,其特征在于:从统一部署代理程序、主动感知应用发布和更新需求、自动完成应用部署和升级等方面简化分布式应用部署和升级工作。具体方法如下。
(1)统一部署代理程序:在各个分布式应用节点部署统一的代理程序客户端;部署应用程序资源管理服务器;代理程序客户端主动报备;具体如下:
(1-1)在各个分布式应用节点部署统一的代理程序客户端
在每个分布式节点部署一个代理程序客户端(Agent)。代理程序的版本是统一的,与分布式节点的应用功能定位无关,无需进行个性化的参数配置。部署代理程序是本机制的前提条件,可以通过其它自动化部署技术和产品来简化部署过程。
(1-2)部署应用程序资源管理服务器
在网络中部署应用程序资源管理服务器(Server)。应用程序资源管理服务器包含以下三个功能部件。
关系型数据库:存储各个分布式节点的应用功能定位数据;存储各个应用程序的版本信息、程序文件信息、启动配置信息、部署更新需求等数据;存储应用程序部署和升级日志数据。
分布式文件系统:存储各个应用程序及其它相关文件。
动态部署和升级服务端软件:提供分布式节点拓扑管理、应用程序版本管理、应用部署和升级任务管理等功能;与代理程序通信,为其提供身份认证、应用部署和升级信息获取、应用程序文件下载、部署和升级日志记录等管理功能。
(1-3)代理程序客户端主动报备
代理程序客户端(Agent)在启动后会通过HTTP协议向应用程序资源管理服务器(Server)进行报备,表明其地址、当前运行的业务应用程序包和版本等信息。Server根据Agent的地址和报备信息确定其应用定位。
(2)主动感知应用发布和更新需求:定时查询应用发布需求;下载应用程序文件;具体如下:
(2-1)定时查询应用发布需求
代理程序客户端(Agent)定时向应用程序资源管理服务器(Server)轮询,根据Server端应用部署和升级任务信息,与当前Agent上部署的应用程序及版本进行比对,判定是否有与之匹配的应用程序(或更新版本)发布。
(2-2)下载应用程序文件
当代理程序客户端(Agent)判定有应用程序需发布时,根据应用程序文件信息,主动下载应用程序文件。为保证安全性,应用程序文件是使用约定的加密算法进行加密的压缩包,用于避免非法的程序文件注入。代理程序客户端(Agent)将应用程序文件下载至本地的待解压文件目录下,下载完成进行解密解压操作后存储在本地待发布文件目录下。
(3)自动完成应用部署和升级;完成应用程序部署;启动应用程序进程;清理旧版本应用程序文件。具体如下:
(3-1)完成应用程序部署
代理程序客户端(Agent)根据应用部署和升级任务信息,立即或在指定时间将本地待发布文件目录下的应用程序文件复制到本地运行文件目录下。
(3-2)启动应用程序进程
代理程序客户端(Agent)根据应用程序文件的启动参数,通过调用操作系统命令创建应用程序进程。应用程序升级时,代理程序客户端(Agent)需首先找到旧版本的应用程序进程并将其停止。
(3-3)清理旧版本应用程序文件
应用程序升级成功后,可以根据系统配置参数对历史版本进行清理;缺省情况下将保留上一个版本以方便版本回退时使用。
本发明通过服务代理、身份认证、数据加密、文件传输、进程管理等技术,通过主动感知实现分布式应用的部署和升级,变“推”为“拉”,无需编写和修改自动化脚本,简化应用部署过程,降低复杂度,减少人为因素,提高工作效率。
附图说明
图1是本发明的流程图。
具体实施方式
以应用程序版本升级为例说明基于代理的分布式应用动态部署和升级方法,具体的工作步骤:
在分布式节点Node-A部署代理程序客户端Agent-A,部署应用程序资源管理服务器Server-1。为保证高可用性,应用程序资源管理服务器也可集群部署。应用动态部署和升级方法如下。
统一部署代理程序:在各个分布式应用节点部署统一的代理程序客户端;部署应用程序资源管理服务器;代理程序客户端主动报备;具体如下:
(1)应用部署管理人员通过Server-1的业务管理界面填写应用程序发布或更新信息,上传应用程序包;Server-1将应用程序包文件进行无损压缩和加密后,存储至分布式文件系统,并在数据库中形成有关应用程序文件、版本、发布或升级时间、关联应用节点等记录;
(2)Agent-A基于Http/Https协议定时向Server-1发送握手报文;
(3)Server-1对Agent-A进行身份验证通过后,向其发送与之匹配的应用程序及当前版本信息;
主动感知应用发布和更新需求:定时查询应用发布需求;下载应用程序文件;具体如下:
(4)Agent-A根据Server-1发送的应用程序及当前版本信息,检查与本地的应用程序及当前版本是否一致,如不一致,则启动应用程序发布和更新流程;
(5)启动应用程序发布和更新流程的情况下,Agent-A根据Server-1的响应信息启动应用程序下载线程,拉取加密的应用程序包压缩文件存放至本地./download/<program-name>/<version>路径下;当存在多个应用程序需要发布或更新时,通过应用程序下载线程池进行并行操作;
自动完成应用部署和升级;完成应用程序部署;启动应用程序进程;清理旧版本应用程序文件。具体如下:
(6)Agent-A在应用程序包下载完成后进行解密,存放至本地./decode/<program-name>/<version>路径下,随后解压至本地./upgrade/<program-name>/<version>路径下;解压成功则说明应用程序包文件是合法的;
(7)Agent-A按照Server-1提供的应用程序发布或更新时间,将./upgrade/<program-name>/<version>路径下的应用程序文件复制到./release/<program-name>/<version>路径下;检查当前是否有应用程序某个版本的进程在运行,如有则先终止该进程;启动应用程序进程;
(8)应用程序发布或升级成功后,Agent-A向Server-1报送本节点的应用程序版本信息。
本发明通过服务代理、身份认证、数据加密、文件传输、进程管理等技术,通过主动感知实现分布式应用的部署和升级,变“推”为“拉”,无需编写和修改自动化脚本,简化应用部署过程,降低复杂度,减少人为因素,提高工作效率。
Claims (4)
1.一种基于代理的分布式应用动态部署和升级方法,其特征在于该方法包括以下步骤:
(1)统一部署代理程序:在各个分布式应用节点部署统一的代理程序客户端;部署应用程序资源管理服务器;代理程序客户端主动报备;
(2)主动感知应用发布和更新需求:定时查询应用发布需求;下载应用程序文件;
(3)自动完成应用部署和升级:完成应用程序部署;启动应用程序进程;清理旧版本应用程序文件。
2.根据权利要求1所述的基于代理的分布式应用动态部署和升级方法,其特征在于,步骤(1)具体包括:
(1-1)在各个分布式应用节点部署统一的代理程序客户端
在每个分布式节点部署一个代理程序客户端;代理程序的版本是统一的,与分布式节点的应用功能定位无关,无需进行个性化的参数配置;部署代理程序是本机制的前提条件;
(1-2)部署应用程序资源管理服务器
在网络中部署应用程序资源管理服务器,应用程序资源管理服务器包含以下三个功能部件;
关系型数据库:存储各个分布式节点的应用功能定位数据;存储各个应用程序的版本信息、程序文件信息、启动配置信息、部署更新需求数据;存储应用程序部署和升级日志数据;
分布式文件系统:存储各个应用程序及其它相关文件;
动态部署和升级服务端软件:提供分布式节点拓扑管理、应用程序版本管理、应用部署和升级任务管理功能;与代理程序通信,为其提供身份认证、应用部署和升级信息获取、应用程序文件下载、部署和升级日志记录管理功能;
(1-3)代理程序客户端主动报备
代理程序客户端在启动后会通过HTTP协议向应用程序资源管理服务器进行报备,表明其地址、当前运行的业务应用程序包和版本信息;应用程序资源管理服务器根据代理程序客户端的地址和报备信息确定其应用定位。
3.根据权利要求1所述的基于代理的分布式应用动态部署和升级方法,其特征在于,步骤(2)具体包括:
(2-1)定时查询应用发布需求
代理程序客户端定时向应用程序资源管理服务器轮询,根据Server端应用部署和升级任务信息,与当前Agent上部署的应用程序及版本进行比对,判定是否有与之匹配的应用程序发布;
(2-2)下载应用程序文件
当代理程序客户端判定有应用程序需发布时,根据应用程序文件信息,主动下载应用程序文件;为保证安全性,应用程序文件是使用约定的加密算法进行加密的压缩包,用于避免非法的程序文件注入;代理程序客户端将应用程序文件下载至本地的待解压文件目录下,下载完成进行解密解压操作后存储在本地待发布文件目录下。
4.根据权利要求1所述的基于代理的分布式应用动态部署和升级方法,其特征在于,步骤(3)具体包括:
(3-1)完成应用程序部署
代理程序客户端根据应用部署和升级任务信息,立即或在指定时间将本地待发布文件目录下的应用程序文件复制到本地运行文件目录下;
(3-2)启动应用程序进程
代理程序客户端根据应用程序文件的启动参数,通过调用操作系统命令创建应用程序进程;应用程序升级时,代理程序客户端首先找到旧版本的应用程序进程并将其停止;
(3-3)清理旧版本应用程序文件
应用程序升级成功后,根据系统配置参数对历史版本进行清理;缺省情况下将保留上一个版本以方便版本回退时使用。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410053776.3A CN117850812A (zh) | 2024-01-15 | 2024-01-15 | 一种基于代理的分布式应用动态部署和升级方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410053776.3A CN117850812A (zh) | 2024-01-15 | 2024-01-15 | 一种基于代理的分布式应用动态部署和升级方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN117850812A true CN117850812A (zh) | 2024-04-09 |
Family
ID=90530212
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410053776.3A Pending CN117850812A (zh) | 2024-01-15 | 2024-01-15 | 一种基于代理的分布式应用动态部署和升级方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN117850812A (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118796241A (zh) * | 2024-06-19 | 2024-10-18 | 广东慧云科技股份有限公司 | 一种远程升级it监控应用软件与监控数据的方法和系统 |
| CN119960768A (zh) * | 2024-12-26 | 2025-05-09 | 中国人民解放军国防科技大学 | 一种面向大规模集群的分布式软件部署方法及系统 |
-
2024
- 2024-01-15 CN CN202410053776.3A patent/CN117850812A/zh active Pending
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118796241A (zh) * | 2024-06-19 | 2024-10-18 | 广东慧云科技股份有限公司 | 一种远程升级it监控应用软件与监控数据的方法和系统 |
| CN118796241B (zh) * | 2024-06-19 | 2024-12-31 | 广东慧云科技股份有限公司 | 一种远程升级it监控应用软件与监控数据的方法和系统 |
| CN119960768A (zh) * | 2024-12-26 | 2025-05-09 | 中国人民解放军国防科技大学 | 一种面向大规模集群的分布式软件部署方法及系统 |
| CN119960768B (zh) * | 2024-12-26 | 2025-11-14 | 中国人民解放军国防科技大学 | 一种面向大规模集群的分布式软件部署方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8407690B2 (en) | Method in a network of the delivery of files | |
| JP4159394B2 (ja) | ネットワーク化された資源間でソースファイルを複製する方法及び記録媒体 | |
| US9485134B2 (en) | Managing configurations of system management agents in a distributed environment | |
| US7644405B2 (en) | System with required enhancements to SyncML DM environment to support firmware updates | |
| JP5364850B2 (ja) | データ環境のためのセルフサービス構成 | |
| EP1004078B1 (en) | Regeneration agent for back-up software | |
| US6986133B2 (en) | System and method for securely upgrading networked devices | |
| US7219140B2 (en) | Configuration and management systems for mobile and embedded devices | |
| JP4173447B2 (ja) | データ同期 | |
| US20020099726A1 (en) | Method and system for distribution of file updates | |
| CN117850812A (zh) | 一种基于代理的分布式应用动态部署和升级方法 | |
| US10439873B2 (en) | Reliably configure on-premise servers from the cloud | |
| AU2002336667A1 (en) | Data synchronization | |
| EP2188734A1 (en) | Push and clone configuration management for mobile devices | |
| CN110855760A (zh) | 一种基于区块链的分布式安全存储系统部署方法 | |
| CN117908904B (zh) | 一种k8s集群部署及运维管理的方法和系统 | |
| US20170310742A1 (en) | Cloud based peer assisted updates in a device management environment | |
| US20200401695A1 (en) | Determining a state of a network | |
| CN111857772A (zh) | 终端边缘应用程序远程传输及动态加载方法及设备 | |
| CN114385211B (zh) | 一种基于GitOps的多云环境升级方法及控制平台 | |
| CN116614323B (zh) | 一种基于Rclone的云存储企业网盘管理方法及系统 | |
| CN116467118A (zh) | 一种对象存储增量备份方法、系统、设备及介质 | |
| CN115061707B (zh) | 一种跨网段应用部署方法及终端 | |
| US20250335207A1 (en) | Systems and methods of pull-based orchestration of nodes in a blockchain network | |
| CN114443062A (zh) | 一种非侵入式组件管理方法及系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination |