淘先锋技术网

首页 1 2 3 4 5 6 7

1.一种针对分布式部署服务软件程序的在线升级方法,其特征在于,包括如下步骤:S101.将服务软件程序拆分为若干个应用子程序,然后将各个应用子程序分别以Docker应用容器的形式一一对应地运行在目标服务器中,其中,所述目标服务器预先安装有Docker应用容器引擎和Jenkins终端软件程序;S102.登录Jenkins服务器,并新建在线监控项目,在该在线监控项目中配置从程序版本管理服务器拉取升级程序代码的第一参数;S103.登录程序版本管理服务器,设置关联Jenkins服务器的第二参数;S104.程序版本管理服务器在收到来自软件开发端的服务软件程序升级包后,向Jenkins服务器发送程序升级操作请求消息,其中,所述服务软件程序升级包封装有以应用子程序名命名的升级程序代码,所述程序升级操作请求消息包含有在所述服务软件程序升级包中的所有应用子程序名;

S105.Jenkins服务器在收到所述程序升级操作请求消息后,针对与所述应用子程序名对应的目标服务器,触发远程构建任务,并通过运行在该目标服务器的Jenkins终端软件程序,将从程序版本管理服务器拉取的且与所述应用子程序名对应的升级程序代码传送至该目标服务器;

S106.目标服务器在收到完整的升级程序代码后,启动Maven程序包,将该升级程序代码封装为Maven容器;S107.目标服务器将所述Maven容器的镜像推送到本地Docker私有库中,完成对与所述应用子程序名对应的Docker应用容器镜像的更新;S108.关机重启目标服务器,启动Docker应用容器引擎,从所述Docker私有库中获取与所述应用子程序名对应的Docker应用容器镜像,然后重新以Docker应用容器的形式运行应用子程序,完成在线升级。

2、使用Http在线自动升级程序。

在VCKBase看到一个是使用FTP的,想到FTP需要用户名密码,许多程序如KFW防火墙都能监看到程序发送的数据包,为防止密码泄露,故自己选用Http来做更新。我的思路是用命令行传递程序名称、版本号和Update.ini配置文件的URL。

然后是查找可用的更新,先通过ChttpFile将Update.INI文件下载到系统临时目录下,然后调用GetPrivateProfileString读取网上最新的版本号以及要更新的文件,判断是否需要更新