CN111427600A - 一种基于docker的平台系统部署升级方法及系统 - Google Patents

一种基于docker的平台系统部署升级方法及系统 Download PDF

Info

Publication number
CN111427600A
CN111427600A CN202010201449.XA CN202010201449A CN111427600A CN 111427600 A CN111427600 A CN 111427600A CN 202010201449 A CN202010201449 A CN 202010201449A CN 111427600 A CN111427600 A CN 111427600A
Authority
CN
China
Prior art keywords
platform
docker
upgrade
mirror image
configuration file
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.)
Granted
Application number
CN202010201449.XA
Other languages
English (en)
Other versions
CN111427600B (zh
Inventor
李朋超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Qianli Network Technology Co ltd
Original Assignee
Chengdu Qianli Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Qianli Network Technology Co ltd filed Critical Chengdu Qianli Network Technology Co ltd
Priority to CN202010201449.XA priority Critical patent/CN111427600B/zh
Publication of CN111427600A publication Critical patent/CN111427600A/zh
Application granted granted Critical
Publication of CN111427600B publication Critical patent/CN111427600B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及软件技术领域,公开了一种基于docker的平台系统部署升级方法及系统,用以解决已有的平台系统升级部署所存在的多节点持久化统一配置文件问题。本发明的方案如下:平台的配置文件需通过网络挂载于NFS服务器,当平台接收到升级包之后,首先停止并删除所有承载平台业务的docker容器,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;之后使用升级包内平台业务源码构建docker镜像,并将docker镜像推送到docker镜像仓库;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,最后创建并启动所有平台docker容器。本发明适用于平台的系统部署升级。

Description

一种基于docker的平台系统部署升级方法及系统
技术领域
本发明涉及软件技术领域,特别涉及一种基于docker的平台系统部署升级方法及系统。
背景技术
Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker可以让交付运行环境如同海运,OS如同一个货轮,每一个在OS基础上的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同乐高积木,用户只需要选择合适的积木组合,并且在最顶端署上自己的名字(最后一个标准化组件是用户的app)。
平台已有的系统升级方案中,升级包为压缩包上传,可被任何人解压修改;推送镜像到docker私有仓库;容器的配置文件和需要持久化的文件通过命令挂载在宿主机上。这种技术的缺点是,启动大量docker容器时,如果挂载很多目录在服务器上难于管理,同时这种持久化方式无法被其他节点上的容器使用。另外,应用程序升级包的安全性没有得到很好的保证,容器的镜像仓库不支持权限管理,从而导致镜像被非法提交产生的安全性的问题。
发明内容
本发明要解决的技术问题是:提出一种基于docker的平台系统部署升级方法及系统,用以解决多节点持久化统一配置文件的问题。
为解决上述问题,本发明采用的技术方案是:
一种基于docker的平台系统部署升级系统,包括升级控制模块、docker镜像仓库以及NFS服务器;其中:
所述docker镜像仓库用于存储各个版本的平台docker镜像;
所述NFS服务器用于通过网络挂载平台配置文件。NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器统一保存所有容器的配置文件,应用程序容器可以通过NFS客户端进行容器挂载获取,从而解决多节点持久化统一配置文件的问题。
当平台接收到升级包之后,所述升级控制模块用于:停止并删除所有承载平台业务的docker容器,并通过平台版本文件获取平台当前版本号,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;并使用升级包内平台业务源码构建docker镜像,并将构建的docker镜像推送到docker镜像仓库中;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,配置文件替换完之后,创建并启动所有平台docker容器。
进一步的,为了保证升级包的安全性,平台接收到的升级包为通过对称加密的升级包。对称加密是需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
进一步的,所述docker镜像可以是具有权限管理的docker镜像仓库,镜像仓库具有权限管理,提交镜像需要管理员权限,可保证应用程序容器镜像的安全,防止镜像存在恶意漏洞。
基于以上系统,一种基于docker的平台系统部署升级方法如下:
当平台接收到升级包之后,首先停止并删除所有承载平台业务的docker容器,并通过平台版本文件获取平台当前版本号,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;之后使用升级包内平台业务源码构建docker镜像,并将构建的docker镜像推送到docker镜像仓库中;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,最后创建并启动所有平台docker容器。
本发明的有益效果是:本发明通过NFS服务器统一保存所有容器的配置文件,应用程序容器可以通过NFS客户端进行容器挂载获取,解决了多节点持久化统一配置文件的问题。且本发明中升级包通过对称加密算法加密解密升级包,保证升级包的安全性。docker镜像仓库具有权限管理,提交镜像需要管理员权限,保证应用程序容器镜像的安全,防止镜像存在恶意漏洞。
具体实施方式
为了解决平台已有的系统升级部署所存在的多节点持久化统一配置文件问题,本发明提供了一种基于docker的平台系统部署升级系统,包括升级控制模块、docker镜像仓库以及NFS服务器;其中:
所述docker镜像仓库用于存储有各个版本的平台docker镜像;并且,docker镜像可以进一步是具有权限管理的docker镜像仓库,镜像仓库具有权限管理,提交镜像需要管理员权限,可保证应用程序容器镜像的安全,防止镜像存在恶意漏洞;
所述NFS服务器用于通过网络挂载平台配置文件。NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。NFS服务器统一保存所有容器的配置文件,应用程序容器可以通过NFS客户端进行容器挂载获取,从而解决多节点持久化统一配置文件的问题。
当平台接收到升级包之后,所述升级控制模块用于:停止并删除所有承载平台业务的docker容器,并通过平台版本文件获取平台当前版本号,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;并使用升级包内平台业务源码构建docker镜像,并将构建的docker镜像推送到docker镜像仓库中;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,配置文件替换完之后,创建并启动所有平台docker容器。
为了保证升级包的安全性,平台接收到的升级包为通过对称加密的升级包。对称加密是需要对加密和解密使用相同密钥的加密算法。由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。
基于以上本发明的系统,本发明还提供了一种基于docker的平台系统部署升级方法,包括:当平台接收到升级包之后,首先停止并删除所有承载平台业务的docker容器,并通过平台版本文件获取平台当前版本号,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;之后使用升级包内平台业务源码构建docker镜像,并将构建的docker镜像推送到docker镜像仓库中;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,最后创建并启动所有平台docker容器。
相应的,平台接收到的升级包也可以为通过对称加密的升级包;推送docker镜像时,也可以将构建的docker镜像推送到具有权限管理的docker镜像仓库中。
实施例
实施例提供了一种基于docker的平台系统部署升级系统及方法,其中的系统包括管理版本模块、升级管理模块、升级控制模块、docker镜像仓库以及NFS服务器,其中所述NFS服务器用于通过网络挂载平台配置文件,平台系统部署升级方法流程如下:
(1)、工程人员在Jenkins编译服务器上编译平台代码,打包压缩并通过对称加密生成bin文件。
(2)、管理人员将bin文件上传到平台。
(3)、平台后端管理版本模块解密上传文件,并校验文件的完整性。校验成功后,生成升级包开始升级的标志,修改数据库升级标志,web界面显示正在升级。
(4)、平台后端升级管理模块感知升级标志,把升级包移到升级文件夹,解压升级。
(5)、升级时升级控制模块停止自动监控运维模块,停止并删除所有承载平台业务的docker容器,同时升级控制模块通过平台版本文件获取平台当前版本号,根据平台当前版本号删除平台当前版本号所对应的所有平台docker镜像,并通过数据库版本管理工具获取数据库版本,判断是否执行升级数据库文件;当执行升级数据库文件时,升级控制模块使用升级包内平台业务源码构建docker镜像,给docker镜像生成版本tag,通过Api使用镜像仓库管理员用户密码登录,推送docker镜像到具有权限管理的docker镜像仓库,docker镜像仓库里存储各个版本的平台镜像,便于版本镜像管理保存。更新平台配置文件时,升级控制模块将NFS服务器挂载文件夹下的应用程序所需配置文件替换,最后创建并启动所有平台docker容器。
(6)、升级时如果出现异常会退出,升级管理模块得到异常退出状态码,将升级日志保存到error-log文件夹下,管理人员会通过升级失败日志定位问题。
(7)、升级正常完成后,再更新升级管理模块并启动,升级时会修改数据库升级标志,后台程序全部启动后,web界面显示最新版本号。

Claims (6)

1.一种基于docker的平台系统部署升级方法,其特征在于,平台的配置文件需通过网络挂载于NFS服务器;当平台接收到升级包之后,首先停止并删除所有承载平台业务的docker容器,并通过平台版本文件获取平台当前版本号,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;之后使用升级包内平台业务源码构建docker镜像,并将构建的docker镜像推送到docker镜像仓库中;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,最后创建并启动所有平台docker容器。
2.如权利要求1所述的一种基于docker的平台系统部署升级方法,其特征在于,平台接收到的升级包为通过对称加密的升级包。
3.如权利要求1或2所述的一种基于docker的平台系统部署升级方法,其特征在于,将构建的docker镜像推送到具有权限管理的docker镜像仓库中。
4.一种基于docker的平台系统部署升级系统,其特征在于,包括升级控制模块、docker镜像仓库以及NFS服务器;
所述docker镜像仓库用于存储各个版本的平台docker镜像;
所述NFS服务器用于通过网络挂载平台配置文件;
当平台接收到升级包之后,所述升级控制模块用于:停止并删除所有承载平台业务的docker容器,并通过平台版本文件获取平台当前版本号,根据平台当前版本号删除docker镜像仓库中平台当前版本号所对应的docker镜像;并使用升级包内平台业务源码构建docker镜像,并将构建的docker镜像推送到docker镜像仓库中;更新平台配置文件时,将NFS服务器挂载文件夹下的应用程序所需配置文件替换,配置文件替换完之后,创建并启动所有平台docker容器。
5.如权利要求4所述的一种基于docker的平台系统部署升级系统,其特征在于,平台接收到的升级包为通过对称加密的升级包。
6.如权利要求4或5所述的一种基于docker的平台系统部署升级系统,其特征在于,所述docker镜像为具有权限管理的docker镜像仓库。
CN202010201449.XA 2020-03-20 2020-03-20 一种基于docker的平台系统部署升级方法及系统 Active CN111427600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010201449.XA CN111427600B (zh) 2020-03-20 2020-03-20 一种基于docker的平台系统部署升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010201449.XA CN111427600B (zh) 2020-03-20 2020-03-20 一种基于docker的平台系统部署升级方法及系统

Publications (2)

Publication Number Publication Date
CN111427600A true CN111427600A (zh) 2020-07-17
CN111427600B CN111427600B (zh) 2023-04-21

Family

ID=71548439

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010201449.XA Active CN111427600B (zh) 2020-03-20 2020-03-20 一种基于docker的平台系统部署升级方法及系统

Country Status (1)

Country Link
CN (1) CN111427600B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112087516A (zh) * 2020-09-10 2020-12-15 星辰天合(北京)数据科技有限公司 基于Docker虚拟化技术的存储升级方法和装置
CN112527357A (zh) * 2020-12-14 2021-03-19 中国平安人寿保险股份有限公司 服务热加载更新方法、装置、计算机设备和存储介质
CN112612508A (zh) * 2020-12-24 2021-04-06 新华三云计算技术有限公司 Api网关中的api版本控制方法、装置及存储介质
CN113127039A (zh) * 2021-04-22 2021-07-16 北京优奥创思科技发展有限公司 一种微服务架构产品自动化升级系统
CN113407220A (zh) * 2021-07-12 2021-09-17 浙江华网俊业科技有限公司 镜像推送本地终端的更新方法、装置
CN114266060A (zh) * 2021-12-28 2022-04-01 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888254A (zh) * 2017-01-20 2017-06-23 华南理工大学 一种基于Kubernetes的容器云架构及其各模块之间的交互方法
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
WO2017129106A1 (zh) * 2016-01-29 2017-08-03 腾讯科技(深圳)有限公司 数据请求处理的方法、服务器及系统
CN107819802A (zh) * 2016-09-13 2018-03-20 华为软件技术有限公司 一种在节点集群中的镜像获取方法、节点设备及服务器
CN108021427A (zh) * 2017-11-23 2018-05-11 国家电网公司 基于Docker的信息系统部署及升级管理方法
US10007509B1 (en) * 2015-12-08 2018-06-26 Amazon Technologies, Inc. Container handover for device updates
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN109871213A (zh) * 2018-12-25 2019-06-11 武汉烽火信息集成技术有限公司 基于国产平台的OpenStack容器化系统及方法
CN109981351A (zh) * 2019-03-06 2019-07-05 浪潮通用软件有限公司 一种私有云部署方法
US20200034240A1 (en) * 2018-07-30 2020-01-30 EMC IP Holding Company LLC Network block device based continuous replication for kubernetes container management systems

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10007509B1 (en) * 2015-12-08 2018-06-26 Amazon Technologies, Inc. Container handover for device updates
WO2017129106A1 (zh) * 2016-01-29 2017-08-03 腾讯科技(深圳)有限公司 数据请求处理的方法、服务器及系统
CN107819802A (zh) * 2016-09-13 2018-03-20 华为软件技术有限公司 一种在节点集群中的镜像获取方法、节点设备及服务器
CN106888254A (zh) * 2017-01-20 2017-06-23 华南理工大学 一种基于Kubernetes的容器云架构及其各模块之间的交互方法
CN106936636A (zh) * 2017-03-15 2017-07-07 无锡华云数据技术服务有限公司 一种快速部署容器化的云计算测试平台的实现方法
CN108021427A (zh) * 2017-11-23 2018-05-11 国家电网公司 基于Docker的信息系统部署及升级管理方法
US20200034240A1 (en) * 2018-07-30 2020-01-30 EMC IP Holding Company LLC Network block device based continuous replication for kubernetes container management systems
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN109871213A (zh) * 2018-12-25 2019-06-11 武汉烽火信息集成技术有限公司 基于国产平台的OpenStack容器化系统及方法
CN109981351A (zh) * 2019-03-06 2019-07-05 浪潮通用软件有限公司 一种私有云部署方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MIKE VIZARD: ""Nutanix Updates Kubernetes Platform"", 《HTTPS://CONTAINERJOURNAL.COM/TOPICS/CONTAINER-NETWORKING/NUTANIX-UPDATES-KUBERNETES-PLATFORM/》 *
刘海平: ""kubernetes系列教程(四)离线升级kubernetes集群"", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1505912#:~:TEXT= KUBERNETES》 *
天宇轩: ""docker的4种web可视化管理工具"", 《HTTPS://WWW.CNBLOGS.COM/DALIANPAI/P/12527819.HTML》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112087516A (zh) * 2020-09-10 2020-12-15 星辰天合(北京)数据科技有限公司 基于Docker虚拟化技术的存储升级方法和装置
CN112527357A (zh) * 2020-12-14 2021-03-19 中国平安人寿保险股份有限公司 服务热加载更新方法、装置、计算机设备和存储介质
CN112612508A (zh) * 2020-12-24 2021-04-06 新华三云计算技术有限公司 Api网关中的api版本控制方法、装置及存储介质
CN113127039A (zh) * 2021-04-22 2021-07-16 北京优奥创思科技发展有限公司 一种微服务架构产品自动化升级系统
CN113407220A (zh) * 2021-07-12 2021-09-17 浙江华网俊业科技有限公司 镜像推送本地终端的更新方法、装置
CN114266060A (zh) * 2021-12-28 2022-04-01 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法
CN114266060B (zh) * 2021-12-28 2024-03-26 航天科工智能运筹与信息安全研究院(武汉)有限公司 一种模型容器加密与部署方法

Also Published As

Publication number Publication date
CN111427600B (zh) 2023-04-21

Similar Documents

Publication Publication Date Title
CN111427600B (zh) 一种基于docker的平台系统部署升级方法及系统
KR101098745B1 (ko) 소프트웨어 업데이트를 관리하고 통신하기 위한 시스템 및방법
EP1579301B1 (en) Method, system and computer-readable medium for a software distribution service
US8230222B2 (en) Method, system and computer program for deploying software packages with increased security
KR101150041B1 (ko) 델타 압축 패칭을 이용하여 파일을 업데이트하기 위한시스템 및 방법
KR101098621B1 (ko) 네트워킹된 환경에서 설치 컴포넌트들을 업데이트하는시스템 및 방법
US10348831B2 (en) Method and system for containerized internet of things (IoT) devices
US8799890B2 (en) Generating a version identifier for a computing system based on software packages installed on the computing system
US20210209221A1 (en) System for securing software containers with encryption and embedded agent
US20070061803A1 (en) Automated notification of software installation failures
JP2006107185A (ja) オフライン作業可能な端末を有する計算機システム
CN111158719A (zh) 应用软件升级方法及装置
US8646070B1 (en) Verifying authenticity in data storage management systems
CN115086287A (zh) 一种软件产品自动部署方法及系统
US11163902B1 (en) Systems and methods for encrypted container image management, deployment, and execution
JP2007280415A (ja) 管理装置及びバージョン管理システム及びプログラムバージョン管理方法
US20210406409A1 (en) Secure workload image distribution and management
CN111930394A (zh) 工控系统用软件包管理及操作的方法、装置、工控系统及计算机可读介质
CN116341012B (zh) 基于只读机制的文件系统安全加固方法
US11764968B2 (en) Verification of valid client library binary file on connecting to server system
CN116775137A (zh) 操作系统启动方法及装置
CN117850829A (zh) 软件更新方法、启动器、服务器、电子设备、存储介质
JP2000298609A (ja) ライブラリ更新方法とその更新システム
JP2004310232A (ja) プログラムのバージョンアップのためのシステムおよび方法
JP2004310233A (ja) プログラムのバージョンアップを行うシステムおよび方法

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
GR01 Patent grant
GR01 Patent grant