本发明涉及一种基于docker的信息系统部署及升级管理方法。
背景技术:
容器技术虚拟化技术已经成为一种被大家广泛认可的容器技术服务器资源共享方式,容器技术可以在按需构建容器技术操作系统实例的过程当中为系统管理员提供极大的灵活性。docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
docker核心解决的问题是利用lxc来实现类似vm的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。同vm的方式不同,lxc其并不是一套硬件虚拟化方法-无法归属到全虚拟化、部分虚拟化和半虚拟化中的任意一个,而是一个操作系统级虚拟化方法,理解起来可能并不像vm那样直观。
技术实现要素:
本发明的目的是提供一种基于docker的信息系统部署及升级管理方法,能够提高信息系统部署及其升级的工作效率,方便对信息系统部署及其升级工作进行持续改进。
一种基于docker的信息系统部署及升级管理方法,其特别之处在于,包括如下步骤:
(1)启动升级程序,升级程序连接到服务器或安装目录,下载或传输新的主程序、支持的库文件和xml配置文档到临时文件夹;升级程序获取服务器端xml配置文件中新版本程序的更新日期、版本号或者文件大小,升级程序获取原有主程序的最近一次更新日期、版本号或者文件大小,两者进行比较;
(2)如果发现升级程序的日期大于原有程序的最新日期,则提示管理员或用户进行升级;或者将现有版本与最新版本作比较,如果发现最新版本是新的则提示管理员或用户升级;或者通过文件大小进行比较,如果发现升级程序的文件大于旧版本的程序则提示管理员或用户进行升级;
(3)如果管理员或用户选择升级,则首先获取下载或传输的数据库脚本和文件列表,然后开始进行文件的批量下载和传输;
(4)升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序服务或进程,对数据库和程序文件进行备份;
(5)更新旧的数据库和主程序;
(6)验证更新是否成功,如成功,则进行下一步,如未成功,则需要将数据库和程序进行回退到备份时的状态;
(7)检查主程序的状态,若状态为活动的,则启动新的主程序;
(8)关闭升级程序,升级完成。
综上所述,本发明方法在基于docker的信息系统用于信息系统部署及升级的管理,具有应用封装、镜像仓库、应用部署功能,提高信息系统部署及其升级的工作效率,方便对信息系统部署及其升级工作进行持续改进。
具体实施方式
本发明的目的是,基于开源应用容器引擎docker,构建一个全新的信息系统,能够实现以下功能。
应用封装,用docker做为应用容器引擎,docker是轻量级虚拟化技术,它在标准的lxc之上融合aufs分层镜像管理机制,并以应用为单元进行“集装封箱”。
镜像仓库,docker镜像(image)类似于虚拟机的镜像,可以将他理解为一个面向docker引擎的只读模板,包含了文件系统。镜像是创建docker容器的基础,通过版本管理和增量的文件系统,docker提供了一套十分简单的机制来创建和更新现有的镜像。而镜像仓库就是docker集中存放镜像文件的场所。
应用部署,用户直接指定相关版本的应用镜像进行部署或升级,成功后,对应用的发布结果进行验证,对验证不通过的应用直接指定原版本镜像进行回滚和还原。整个升级过程就是对应用镜像的复制和运行,从而实现信息系统的快速部署,保证生产环境、测试环境和开发环境的一致。
实施例1:
启动升级程序,升级程序连接到服务器或安装目录,下载或传输新的主程序(当然还包括支持的库文件、xml配置文档等)到临时文件夹。
升级程序获取服务器端xml配置文件中新版本程序的更新日期或版本号或文件大小。
升级程序获取原有主程序的最近一次更新日期或版本号或文件大小,两者进行比较;如果发现升级程序的日期大于原有程序的最新日期,则提示管理员或用户是否升级;或者是采用将现有版本与最新版本作比较,发现最新的则提示管理员或用户是否升级;也有人用其它属性如文件大小进行比较,发现升级程序的文件大小大于旧版本的程序的大小则提示管理员或用户升级。通常而言,国网采用比较新旧版本更新日期号来提示管理员或用户升级。
如果管理员或用户选择升级,则获取下载或传输的数据库脚本和文件列表,开始进行文件的批量下载和传输。
升级程序检测旧的主程序是否活动,若活动则关闭旧的主程序服务或进程,对数据库和程序文件进行备份。
更新旧的数据库和主程序。
验证更新成功与否,如成功,则进行下一步,如未成功,需要将数据库和程序进行回退到备份时的状态。
检查主程序的状态,若状态为活动的,则启动新的主程序。
关闭升级程序,升级完成。