CN111610989B - 一种面向离线容器云环境的应用发布/更新方法及系统 - Google Patents
一种面向离线容器云环境的应用发布/更新方法及系统 Download PDFInfo
- Publication number
- CN111610989B CN111610989B CN202010555512.XA CN202010555512A CN111610989B CN 111610989 B CN111610989 B CN 111610989B CN 202010555512 A CN202010555512 A CN 202010555512A CN 111610989 B CN111610989 B CN 111610989B
- Authority
- CN
- China
- Prior art keywords
- application
- target application
- information
- name
- mirror
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种面向离线容器云环境的应用发布/更新方法及系统,本发明方法包括将收到的目标应用的信息入库;对目标应用进行合法检测,为目标应用制作容器镜像;检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败,结束并退出;否则,将目标应用的容器镜像推送到镜像仓库;判断该目标应用是否已经有老版本在运行,如果全部通过则判定应用自动发布或更新成功。本发明能够实现自动应用发布/更新,无需人工手动操作,提高了离线容器云环境应用发布/更新的实时自动化处理能力,降低了生产管理者的技术门槛,避免了人工误操作,能够有效的对应用的发布/更新信息进行合法性和安全性检查,大大降低了应用发布/更新的失败几率。
Description
技术领域
本发明涉及容器云环境,具体涉及一种面向离线容器云环境的应用发布/更新方法及系统。
背景技术
继虚拟化技术出现后,容器技术目前逐渐成为对云计算领域具有深远影响的变革技术。容器是一种沙盒技术,可以将应用运行在其中,与外界隔离,同时这个沙盒可以被方便地“转移”。本质上,容器就是一种特殊的进程。通过在创建容器进程的时候,指定了这个进程所需要启用的一组Namespace(命名空间)参数,进而让该容器进程只能看到当前Namespace所限定的资源、文件、设备、状态或者配置。
容器技术的发展和应用,将为各行各业应用云计算提供了新思路,同时容器技术也对云计算的交付方式、效率、PaaS平台的构建等方面产生深远的影响。容器云构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套功能,本质上可看作是基于容器技术的PaaS平台。在网络环境良好情况下,容器技术具有简单部署,开发、测试和生产等多地共用同一镜像仓库、在线拉取最新应用镜像、应用快速启动等优势;但在离线环境下,对于应用的发布、更新等操作,开发测试环境与生产环境无法做到实时同步,同时生产环境的管理员必须具备一定的容器技术能力,以便能够在离线环境下能够自行构建镜像、发布容器应用并能够检查应用是否发布成功等。
目前传统的面向离线容器云环境的应用发布/更新方式如图1所示,传统的面向离线容器云环境的应用发布/更新方式下,整个离线环境下的容器云发布/更新架构包括两部分,开发测试环境和生产环境,中间的纽带为开发测试管理员和生产管理员。在开发测试环境中,包括应用开发模块、应用测试模块、应用镜像制作模块和应用交付模块,在生产环境中,包括应用镜像导入模块、应用配置变更模块、应用发布/更新模块和应用检查模块。在离线容器云环境下发布/更新应用时,首先开发环境对应用做更新开发、测试等,待开发完成并测试通过后,开发测试人员将对最新版本的应用做容器镜像,并交付给开发测试管理员,开发测试管理在收到应用的最新容器镜像后,将该容器镜像交付给生产管理员,生产管理员在生产环境中导入最新的容器镜像,并根据新镜像名称,修改该应用的发布配置文件并发布该应用。如果该应用已在运行,生产管理员需首先停止运行中的应用,并发布最新版本的应用。在应用发布完成后,生产管理员还需确认应用发布是否存在问题,如果存在问题,将主动将应用回滚到上一个版本,并将该问题及时反馈回开发测试管理员。其中,容器镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建之后也不会被改变。
在离线容器云环境下,该种方式能够满足应用的发布/更新需求,应用也能够通过该种方式进行发布/更新。但对于生产管理员,必须具备一定基础的容器技术,能够对应用容器进行镜像导入、应用发布配置文件编写、应用发布/更新、应用检查等技术操作,同时由于人工手动操作,无法保证应用发布/更新的合法性和安全性。另外在这种模式下,开发测试环境和生产环境无法在应用镜像版本、配置信息等方面保持一致,在不断的迭代过程中,会导致应用版本信息在开发测试环境和生产环境中的混乱,最终导致应用的发布/更新彻底崩溃。
现有的面向离线容器云环境的应用发布/更新方法可能会存在如下缺陷:1、生产管理员需具备容器技术基础。由于应用镜像的导入、应用发布信息的配置、应用的发布/更新、发布后的应用检查均由生产管理员操作,需要生产管理员具备一定的容器技术基础。2、无法保证应用发布合法/安全:在该种发布方式中,从镜像导入到最后的应用发布后的检查操作均是人工操作,在整个操作过程中的任何一环如果出现问题,则应用发布将很可能面临失败,尤其是在对A应用进行发布/更新时,错将新版本的应用数据发布到B应用上,将导致多个应用发生故障,这将无法保证应用发布的合法性和安全性。3、无法保证环境一致。在开发测试环境和生产环境的应用不断迭代更新过程中,应用的发布配置信息、应用镜像名称等应用信息无法在两边环境中保持一致,后续在版本维护与升级过程中,将会导致应用在开发测试环境中能够运行正常,一旦发布到生产环境中,则无法正常运行,另外在故障排查中,也将耗费大量的人力物力,降低应用更新及故障排查的效率。
综上所述,容器技术的发展和应用,为各行各业应用云计算提供了新思路,同时容器技术也对云计算的交付方式、效率、PaaS平台的构建等方面提出了更严苛的要求。至今基于离线容器云环境的应用管理和维护仍是云计算领域中研究的要点和痛点。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向离线容器云环境的应用发布/更新方法及系统,本发明从生产实际需求考虑,弥补了离线容器云环境下无法自动发布/更新应用的缺陷,能够实现自动应用发布/更新,无需人工手动操作,提高了离线容器云环境应用发布/更新的实时自动化处理能力,降低了生产管理者的技术门槛,避免了人工误操作, 能够有效的对应用的发布/更新信息进行合法性和安全性检查,大大降低了应用发布/更新的失败几率。
为了解决上述技术问题,本发明采用的技术方案为:
一种面向离线容器云环境的应用发布/更新方法,在生产环境中执行应用自动发布或更新的步骤包括:
1)将收到的目标应用的信息入库;
2)对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新失败,结束并退出;
3)为目标应用制作容器镜像;
4)检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败,结束并退出;否则,将目标应用的容器镜像推送到镜像仓库;
5)判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功。
可选地,步骤1)中收到的目标应用的信息包括:按照指定规则命名的应用镜像名称、应用数据、应用的配置文件信息、用于制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息、应用镜像命名规则信息,且上述目标应用的信息被打包为压缩包的方式并附带有完整性校验值。
可选地,步骤2)的详细步骤包括:
2.1)对目标应用的压缩包进行完整性校验生成完整性校验值,如果附带的完整性校验值正确则执行下一步;否则跳转执行步骤2.5);
2.2)对目标应用的Dockerfile文件进行格式规范合规检查并与应用镜像命名规则信息相比以判断是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.3)在数据库中查找目标应用对应的应用数据的名称,将上传的应用数据的名称与数据库中查找的应用数据名称做对比,若两者一致,则说明上传的应用数据是目标应用的应用数据,则继续下一步,若两者不一致,则说明上传的应用数据并非该应用的应用数据,跳转执行步骤2.5);
2.4)对目标应用进行应用信息历史记录检测,如果检测通过则跳转执行步骤3);否则跳转执行步骤2.5);
2.5)判定应用自动发布或更新失败,结束并退出。
可选地,步骤2.2)的详细步骤包括:
2.2.1)检测Dockerfile文件的格式规范是否完成包含基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令四部分内容;如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.2)检测Dockerfile文件中应用镜像命名规则“镜像仓库URL-应用名称:日期”是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.3)判断Dockerfile文件的格式是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.4)判断Dockerfile第一行中写入的基础镜像中的“应用名称”和目前待发布/更新的应用的名称是否一致,如果一致则执行下一步;否则跳转执行步骤2.5)。
可选地,步骤2.4)中对目标应用进行应用信息历史记录检测的详细步骤包括:
2.4.1)查找目标应用的镜像命名获得目标应用的镜像制作日期,其中目标应用的镜像命名格式为:“镜像仓库URL-应用名称:日期”,其中“日期”为目标应用的镜像制作日期;
2.4.2)在数据库中查找目标应用的历史发布对应的历史应用镜像名称,并将历史应用镜像的镜像制作日期截取出来;
2.4.3)将截取到的历史应用镜像的镜像制作日期与目前待更新的应用镜像名称中的镜像制作日期进行时间对比,检测该应用镜像名称上的日期是否晚于数据库记录的日期,若是则说明应用镜像版本为最新应用的镜像版本,检测通过,跳转执行步骤3);若应用镜像名称上的日期早于数据库中记录的应用日期,则说明应用的该镜像版本不是最新应用版本,不能作为本次发布的基础,跳转执行步骤2.5)。
可选地,步骤5)中判断目标应用是否运行正常具体是指通过应用是否正常运行的测试URL信息判断目标应用是否运行正常。
可选地,所述判定应用自动发布或更新失败、判定应用自动发布或更新成功之后还包括将目标应用的应用自动发布或更新记录发送给生产环境的生产管理员的步骤。
可选地,步骤1)之前还包括下述步骤:在生产环境的生产管理员登陆web页面后通过web页面显示出所有的上传的应用的信息并提供发布或更新的操作选项,如果生产管理员针对某个目标应用发布或更新的操作按钮,则跳转执行步骤1)。
此外,本发明还提供一种面向离线容器云环境的应用发布/更新系统,包括:
应用信息入库程序单元,用于将收到的目标应用的信息入库;
应用合法检测程序单元,用于对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新失败;
应用镜像制作程序单元,用于为目标应用制作容器镜像;
应用镜像入库程序单元,用于检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败;否则,将目标应用的容器镜像推送到镜像仓库;
应用发布检测程序单元,用于判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功。
此外,本发明还提供一种面向离线容器云环境的应用发布/更新系统,包括计算机设备,该计算机设备被编程或配置以执行所述面向离线容器云环境的应用发布/更新方法的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行所述面向离线容器云环境的应用发布/更新方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述面向离线容器云环境的应用发布/更新方法的计算机程序。
和现有技术相比,本发明具有下述优点:
1、本发明从生产实际需求考虑,弥补了离线容器云环境下无法自动发布/更新应用的缺陷。
2、本发明在(生产管理员)获取到应用信息后,通过容器云WEB管理界面进行自动应用更新,无需人工手动操作,提高了离线容器云环境应用发布/更新的实时自动化处理能力,降低了生产管理者的技术门槛,避免了人工误操作。
3、本发明能够有效的对应用的发布/更新信息进行合法性和安全性检查,大大降低了应用发布/更新的失败几率。
4、本发明可进一步通过应用发布/更新的审计日志记录,使得应用的管理维护、故障检测等方面有据可查,大大提高了管理维护、故障恢复的效率。
附图说明
图1是现有面向离线容器云环境的应用发布/更新系统的示意图。
图2是本发明实施例中面向离线容器云环境的应用发布/更新系统的示意图。
图3是本发明实施例中面向离线容器云环境的应用发布/更新的流程图。
具体实施方式
如图2和图3所示,本实施例面向离线容器云环境的应用发布/更新方法在生产环境中执行应用自动发布或更新的步骤包括:
1)将收到的目标应用的信息入库;
2)对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新失败,结束并退出;
3)为目标应用制作容器镜像;
4)检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败,结束并退出;否则,将目标应用的容器镜像推送到镜像仓库;
5)判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功。
本实施例中,步骤1)中收到的目标应用的信息包括:按照指定规则命名的应用镜像名称、应用数据、应用的配置文件信息、用于制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息、应用镜像命名规则信息,且上述目标应用的信息被打包为压缩包的方式并附带有完整性校验值。
本实施例中,步骤2)的详细步骤包括:
2.1)对目标应用的压缩包进行完整性校验生成完整性校验值,如果附带的完整性校验值正确则执行下一步;否则跳转执行步骤2.5);
2.2)对目标应用的Dockerfile文件进行格式规范合规检查并与应用镜像命名规则信息相比以判断是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.3)在数据库中查找目标应用对应的应用数据的名称,将上传的应用数据的名称与数据库中查找的应用数据名称做对比,若两者一致,则说明上传的应用数据是目标应用的应用数据,则继续下一步,若两者不一致,则说明上传的应用数据并非该应用的应用数据,跳转执行步骤2.5);
2.4)对目标应用进行应用信息历史记录检测,如果检测通过则跳转执行步骤3);否则跳转执行步骤2.5);
2.5)判定应用自动发布或更新失败,结束并退出。
Dockerfile文件是用来制作镜像的源码文件,是构建容器过程中的指令,Docker能够读取Dockerfile文件的指令进行自动构建容器,基于Dockerfile文件制作容器镜像。
本实施例中,步骤2.2)的详细步骤包括:
2.2.1)检测Dockerfile文件的格式规范是否完成包含基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令四部分内容;如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.2)检测Dockerfile文件中应用镜像命名规则“镜像仓库URL-应用名称:日期”是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.3)判断Dockerfile文件的格式是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.4)判断Dockerfile第一行中写入的基础镜像中的“应用名称”和目前待发布/更新的应用的名称是否一致,如果一致则执行下一步;否则跳转执行步骤2.5)。
一个典型的Dockerfile文件格式的示例如下(该示例以ubuntu容器镜像为基础镜像制作nginx服务的容器镜像,其中#开头的行为注释):
## Dockerfile文件格式
# This dockerfile uses the ubuntu image
# VERSION 2 - EDITION 1
# Author: devolper_user
# Command format: Instruction [arguments / command] ..
# 1、第一行必须指定基础镜像信息
FROM ubuntu
# 2、维护者信息
MAINTAINER docker_user docker_user@email.com
# 3、镜像操作指令
RUN echo "deb http://archive.ubuntu.com/ubuntu/ raring main universe">> /etc/apt/sources.list
RUN apt-get update && apt-get install -y nginx
RUN echo "\ndaemon off;" >> /etc/nginx/nginx.conf
# 4、容器启动执行指令
CMD /usr/sbin/nginx
参见上述Dockerfile文件格式的示例可知,Dockerfile文件的格式规范包括下述四部分:基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令。一开始必须要指明所基于的镜像名称,接下来一般会说明维护者信息。后面则是镜像操作指令,例如RUN指令。RUN指令将对镜像执行跟随的指令。每执行一条RUN指令,镜像添加新的一层,并提交。最后是 CMD 指令,来指明运行容器时的操作命令。
本实施例中,步骤2.4)中对目标应用进行应用信息历史记录检测的详细步骤包括:
2.4.1)查找目标应用的镜像命名获得目标应用的镜像制作日期,其中目标应用的镜像命名格式为:“镜像仓库URL-应用名称:日期”,其中“日期”为目标应用的镜像制作日期;
2.4.2)在数据库中查找目标应用的历史发布对应的历史应用镜像名称,并将历史应用镜像的镜像制作日期截取出来;
2.4.3)将截取到的历史应用镜像的镜像制作日期与目前待更新的应用镜像名称中的镜像制作日期进行时间对比,检测该应用镜像名称上的日期是否晚于数据库记录的日期,若是则说明应用镜像版本为最新应用的镜像版本,检测通过,跳转执行步骤3);若应用镜像名称上的日期早于数据库中记录的应用日期,则说明应用的该镜像版本不是最新应用版本,不能作为本次发布的基础,跳转执行步骤2.5)。
本实施例中,骤5)中判断目标应用是否运行正常具体是指通过应用是否正常运行的测试URL信息判断目标应用是否运行正常。
本实施例中,所述判定应用自动发布或更新失败、判定应用自动发布或更新成功之后还包括将目标应用的应用自动发布或更新记录发送给生产环境的生产管理员的步骤。
本实施例中,步骤1)之前还包括下述步骤:在生产环境的生产管理员登陆web页面后通过web页面显示出所有的上传的应用的信息并提供发布或更新的操作选项,如果生产管理员针对某个目标应用发布或更新的操作按钮,则跳转执行步骤1)。
如图2所示,本实施例中面向离线容器云环境的应用发布/更新系统包含2个核心环境:开发测试环境和生产环境,其中两个环境的纽带为开发测试管理员和生产管理员。开发测试环境包含应用开发模块、应用测试模块、应用信息采集模块和应用信息入库模块等4个模块。应用开发模块的主要功能是进行应用系统的开发及后期的应用版本升级开发。应用测试模块的主要功能是进行应用系统的全系统测试,包括但不限于单元测试、集成测试、确认测试、系统测试、容器化测试、回归测试。应用信息采集模块的主要功能是对待发布到生产中的应用信息进行采集,采集的主要内容包括应用数据、应用的配置文件信息、应用制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息与应用镜像命名规则信息,采集的所有信息均来自于最终测试通过的CI/CD系统,无需人工编写,避免了人工的误操作。待所有数据采集后,将所有数据打包成“应用名-版本-日期.tar.gz”格式,并生成tar.gz文件对应的MD5文件。MD5即信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。应用信息入库的主要功能是将应用信息采集模块的采集信息入到本地库中,并将应用信息采集模块生成的tar.gz文件和MD5文件发送给开发测试环境管理员,由其转发给生产环境管理员。当生产环境发布应用时,开发测试环境首先对应用镜像名称按照“镜像仓库URL-应用名称:日期”规则进行命名,同时将应用数据、应用的配置文件信息、应用制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息与应用镜像命名规则信息等进行采集并打包,同时生成压缩包的MD5文件信息,并将所有数据提供给生产环境,同时开发测试管理员将这些信息入开发测试环境库。生产管理员在收到这些信息后,通过容器云平台的WEB页面的应用发布/更新按钮对这些应用进行自动更新,自动更新的操作步骤主要包括:将收到的应用信息入库,检查MD5值,对比应用镜像的命名规则与Dockerfile文件是否一致,容器镜像的制作,推送仓库、待发布的应用是否已在平台上运行,如果已运行,则先停止应用的运行,并发布最新的应用,待应用发布完成后,通过应用的检测URL测试应用是否正常运行,如果运行不正常,则回滚到上一个版本的应用,最后发送邮件给生产管理员本次操作的操作日志及最终结果。
生产环境包括6个模块,应用管理入口模块、应用信息入库模块、应用合法检测模块、应用镜像制作模块、应用镜像入库模块和应用发布/检查模块。应用管理入口模块的功能是应用发布/更新操作的入口,当生产管理员获取到应用的发布/更新信息后,将应用信息上传到服务器,并通过该模块的应用发布/更新按钮对应用进行发布/更新操作,剩下的所有操作均由该模块进行,生产管理员无需再进行任何操作,同时该模块将全程记录应用发布/更新操作记录并入库,待发布/更新结束后,将发布/更新的审计日志发送给生产管理员。应用信息入库模块和开发测试环境中的应用信息入库模块功能一致,均对应用信息入本地库,以便后期为应用管理维护,故障排查提供参考,同时能够保证两边环境应用信息的一致性。应用合法性检测模块的主要功能是对应用的文件、信息进行检测,在应用发布/更新前,做到应用介质、配置文件等合法合规,并能够保证应用介质与发布的应用之间一致,不会将A应用的应用介质发布到B应用上。应用镜像制作模块的主要功能是根据Dockerfile文件进行应用镜像的自动制作。应用镜像入库的功能是将应用镜像制作模块做好的应用镜像推送到应用镜像仓库中。应用发布/检查的功能是根据入库的应用信息动态生成应用的发布配置信息,并发布/更新应用,待应用发布/更新完成后,对应用运行状态进行检测,如果新版本的应用运行有问题,则回滚到上一个版本。
参见图3所示面向离线容器云环境的应用发布/更新方法的具体流程:当生产环境需发布/更新新版本的应用时,首先开发测试环境需对新版本的应用进行相关的开发工作,待开发完成后,对应用进行全系统测试,测试完全通过后,开发测试环境将通过CI/CD系统采集最终版本的应用信息,信息采集完成后,将应用信息打包并生成对应的MD5文件,最后开发测试环境将应用信息入库,并将应用信息发送给开发测试管理员,开发测试管理员收到应用信息后,将其转发给生产管理员,生产管理员将应用信息发到服务器上并通过应用管理入口进行应用的发布/更新操作,之后生产管理员将无需再进行任何操作,剩下的所有操作将由应用管理入口接管。同时应用管理入口对应用发布/更新中的所有操作进行入库。应用管理入口首先对应用的信息入本地库,待入库完成后,将启动应用合法性检测,检测主要包括MD5检测、应用Dockerfile检测,应用信息与介质对应关系检测、应用信息历史记录检测等,若任何一个检测不通过,则应用发布失败并通知生产管理员,若检测通过,则通过Dockerfile文件对应用镜像制作,制作完成后,检测生产环境中的镜像仓库是否可用,若不可用则应用发布失败并通知生产管理员,若镜像仓库可用,则将应用镜像推送至应用镜像,并启动应用发布任务,应用发布完成后,对应用运行状况进行检测,若应用运行异常,则通过查询数据库记录将应用回滚到上一个版本,同时宣布应用发布失败并通知生产管理员,若应用运行正常,则应用发布成功,应用发布/更新整个流程结束,并通知生产管理员。
参见图3,本实施例中开发测试环境和生产环境的总和流程如下:
步骤301:开发测试环境的应用开发模块。该模块的主要功能是对应用进行全量开发及后期的更新升级开发,通过CI/CD模式进行应用开发。CI/CD模式是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD模式的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD模式主要针对在集成新代码时所引发的问题。
步骤302: 开发测试环境的应用测试模块。该模块的主要功能是对应用进行全量测试及后期的更新升级测试,通过CI/CD模式进行应用测试。测试的内容包括但不限于单元测试、集成测试、确认测试、系统测试、容器化测试、回归测试。
步骤303:开发测试环境的应用信息采集模块:该模块的主要功能是对将要在生产环境发布/更新的应用进行信息采集。采集的主要内容包括应用数据、应用的配置文件信息、应用制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息与应用镜像命名规则信息,采集的所有信息均来自于最终测试通过的CI/CD系统。并将所有数据信息打包成tar.gz格式压缩包,同时生成相应的MD5文件。所有数据信息包括:
应用数据:应用运行所需依赖的编译后的开发源代码。
应用配置文件信息:应用发布时所需要配置的相关信息,如CPU、内存的配置信息、应用镜像信息、应用文件的权限信息。
应用制作镜像的Dockerfile文件:通过执行该文件,能够将应用运行环境、应用数据等通过指令的方式自动化打包成容器镜像。
应用是否正常运行的测试URL信息:应用运行后,通过访问该URL来判断应用是否运行正常,若运行正常,则返回应用运行成功的信息,若运行异常,则返回应用运行异常的信息。
应用镜像命名规则:命名规则为“镜像仓库URL-应用名称:日期”,通过该种命名规则,能够确定应用运行的镜像仓库、应用的应用名称和应用版本的变更日期。在后期对应用回滚、应用介质与应用发布信息一致性匹配等方面作为参考依据。
MD5文件:用于在生产环境应用发布前作为文件是否损坏的参考标准,确保应用发布/更新前,应用数据信息的完整性。
步骤304:开发测试环境的应用信息入库模块:该模块是将上一个模块的应用信息入本地库,以保证开发测试环境和生产环境在应用信息的各个方面始终保持一致,并能够作为后期应用管理维护和故障排查的直接依据。当信息入库后,该模块将应用信息发送给开发测试管理员,并由开发测试管理员转发给生产管理员。
步骤305:生产环境的应用管理入口:该模块是生产环境中应用发布/更新的入口,将监管应用发布/更新操作的所有流程,并入库应用发布/更新的全程操作记录。当生产管理员接收到应用信息后,将应用信息发送到服务器,然后通过该模块的应用发布/更新按钮对应用进行发布/更新。对于管理员来说,所需要了解的就是如何将应用信息发送到服务器和如何点击该模块的发布/更新按钮使其进行应用发布/更新,其他的无需知道任何技术细节。
步骤306:生产环境的应用信息入库模块:该模块的功能与步骤304相同,将应用信息入本地生产库,以保证开发测试环境和生产环境在应用信息的各个方面始终保持一致,并能够作为后期生产环境中应用管理维护和故障排查的直接依据。
步骤307:生产环境中的应用合法检测模块:该模块的主要任务是进行应用的合法合规和安全性检测,具体实现如下:1)MD5检测:将应用的tar.gz包和MD5文件中记录的MD5值进行对比,若两者一致,则应用信息的压缩包无损坏,检测通过,若两者不一致,则说明应用信息的压缩包已损坏,应用发布/更新终止,通知生产管理员应用发布/更新失败,并抄送失败的相关信息。2)应用Dockerfile检测:检测应用的Dockerfile文件格式是否合法,同时检测Dockerfile中的基础镜像是否为该应用的基础应用,若两者均通过,则检测通过,若两者有一个未通过,则应用发布/更新终止,通知生产管理员应用发布/更新失败,并抄送失败的相关信息。3)应用信息与介质对应关系检测:检测应用数据的名称和数据库中记录的该应用的应用名称是否一致,若一致,说明该应用数据对应的为待发布/更新应用的应用数据,检测通过。若不一致,说明应用数据并不为待发布/更新应用的应用数据,应用发布/更新终止,通知生产管理员应用发布/更新失败,并抄送失败的相关信息。4)应用信息历史记录检测:检测该应用镜像名称上的日期是否晚于数据库记录的日期,若是则说明应用版本为最新应用版本,检测通过,若应用镜像名称上的日期早于数据库中记录的应用日期,则说明应用的该版本不是最新应用版本,应用发布/更新终止,通知生产管理员应用发布/更新失败,并抄送失败的相关信息。
步骤308:生产环境中的应用镜像制作模块:该模块的主要任务是通过执行应用的Dockerfile文件,自动生成该应用的应用镜像。
步骤309:生成环境中的应用镜像入库模块:该模块首先对应用的生产镜像仓库进行检测,若镜像仓库访问正常,则将应用镜像推送到生产的镜像仓库中。若镜像仓库访问异常,则应用发布/更新终止,通知生产管理员应用发布/更新失败,并抄送失败的相关信息。
步骤310:生产环境的应用发布/检测模块:该模块首先对应用是否在容器云中运行进行检查,如果应用正在运行,则先停止应用,如果应用未在运行,则忽略。检查完毕后,对该应用进行发布并通过“应用是否正常运行的测试URL信息”对应用进行测试,如果测试URL返回应用运行成功信息,说明应用运行正常,应用发布/更新结束,通知生产管理员应用发布/更新成功,并抄送应用发布/更新的所有操作信息。如果测试URL返回应用运行异常信息,说明应用运行异常,该模块查询数据库记录并将应用回滚到上一个版本状态,同时终止应用发布/更新操作,通知生产管理员应用发布/更新失败,并抄送失败的相关信息。
综上所述,本实施例提供了一种面向离线容器云环境的应用发布/更新的方案,该方案能够在离线容器云环境下,安全、合法、高效的进行应用的发布/更新,同时保证开发测试环境与生产环境下的应用信息一致。当生产环境发布应用时,开发测试环境首先对应用镜像名称按照“镜像仓库URL-应用名称:日期”规则进行命名,同时将应用数据、应用的配置文件信息、应用制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息与应用镜像命名规则信息等进行采集并打包,同时生成压缩包的MD5文件信息,并将所有数据提供给生产环境,同时开发测试管理员将这些信息入开发测试环境库。生产管理员在收到这些信息后,通过容器云平台的WEB页面的应用发布/更新按钮对这些应用进行自动更新,自动更新的操作步骤主要包括:将收到的应用信息入库,检查MD5值,对比应用镜像的命名规则与Dockerfile文件是否一致,容器镜像的制作,推送仓库、待发布的应用是否已在平台上运行,如果已运行,则先停止应用的运行,并发布最新的应用,待应用发布完成后,通过应用的检测URL测试应用是否正常运行,如果运行不正常,则回滚到上一个版本的应用,最后发送邮件给生产管理员本次操作的操作日志及最终结果。通过该方案,生产管理员无需手动操作,也不需要具备一定的容器技术基础,有效的降低了管理员的技术门槛,同时保证了生产环境与开发测试环境中应用信息的一致性。由于所有的操作均自动化进行,且实时进行数据库记录,保证了应用发布/更新的安全性和合法性,减少了应用发布/更新的故障率。另外在应用发布/更新发生故障时,能够调出自动更新的操作日志信息,大大提高了应用后期管理维护和故障排查的效率。本实施例面向离线容器云环境的应用发布/更新的方法具有下述优点:1)弥补了离线容器云环境下人工发布/更新的缺陷,保证了离线环境下容器云自动发布/更新,同时降低了生产管理员的技术门槛,是技术亮点,应予以保护。2)实现了离线容器云环境下应用的合法性和安全性检测。应用发布前,对应用文件、应用镜像、应用镜像与待发布应用之间均进行合法合规的安全性检测,保证了应用发布的合法和安全,避免了人工操作带来的应用不合规不安全的发布,是技术亮点,应予以保护。3)自动检测应用发布后的状态。当应用发布完成后,对应用的运行状态进行检测,保证了发布后的应用是正常运行的,如果应用发布有问题,则回滚到上一个版本状态,是技术亮点,应予以保护。4)平台日志审计。在应用更新过程中的所有操作,均入库记录并同步到生产管理员,有利于后期应用的管理维护、故障排查等,是技术亮点,应予以保护。
此外,本实施例还提供一种面向离线容器云环境的应用发布/更新系统,包括:
应用信息入库程序单元,用于将收到的目标应用的信息入库;
应用合法检测程序单元,用于对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新失败;
应用镜像制作程序单元,用于为目标应用制作容器镜像;
应用镜像入库程序单元,用于检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败;否则,将目标应用的容器镜像推送到镜像仓库;
应用发布检测程序单元,用于判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功。
此外,本实施例还提供一种面向离线容器云环境的应用发布/更新系统,包括计算机设备,该计算机设备被编程或配置以执行前述面向离线容器云环境的应用发布/更新方法的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行前述面向离线容器云环境的应用发布/更新方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述面向离线容器云环境的应用发布/更新方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (6)
1.一种面向离线容器云环境的应用发布/更新方法,其特征在于,在生产环境中执行应用自动发布或更新的步骤包括:
1)将收到的目标应用的信息入库;
2)对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新失败,结束并退出;
3)为目标应用制作容器镜像;
4)检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败,结束并退出;否则,将目标应用的容器镜像推送到镜像仓库;
5)判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功;
步骤1)中收到的目标应用的信息包括:按照指定规则命名的应用镜像名称、应用数据、应用的配置文件信息、用于制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息、应用镜像命名规则信息,且上述目标应用的信息被打包为压缩包的方式并附带有完整性校验值;步骤2)的详细步骤包括:
2.1)对目标应用的压缩包进行完整性校验生成完整性校验值,如果附带的完整性校验值正确则执行下一步;否则跳转执行步骤2.5);
2.2)对目标应用的Dockerfile文件进行格式规范合规检查并与应用镜像命名规则信息相比以判断是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.3)在数据库中查找目标应用对应的应用数据的名称,将上传的应用数据的名称与数据库中查找的应用数据名称做对比,若两者一致,则说明上传的应用数据是目标应用的应用数据,则继续下一步,若两者不一致,则说明上传的应用数据并非该应用的应用数据,跳转执行步骤2.5);
2.4)对目标应用进行应用信息历史记录检测,如果检测通过则跳转执行步骤3);否则跳转执行步骤2.5);
2.5)判定应用自动发布或更新失败,结束并退出;
步骤2.2)的详细步骤包括:
2.2.1)检测Dockerfile文件的格式规范是否完成包含基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令四部分内容;如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.2)检测Dockerfile文件中应用镜像命名规则“镜像仓库URL-应用名称:日期”是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.3)判断Dockerfile文件的格式是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);
2.2.4)判断Dockerfile第一行中写入的基础镜像中的“应用名称”和目前待发布/更新的应用的名称是否一致,如果一致则执行下一步;否则跳转执行步骤2.5);
步骤2.4)中对目标应用进行应用信息历史记录检测的详细步骤包括:
2.4.1)查找目标应用的镜像命名获得目标应用的镜像制作日期,其中目标应用的镜像命名格式为:“镜像仓库URL-应用名称:日期”,其中“日期”为目标应用的镜像制作日期;
2.4.2)在数据库中查找目标应用的历史发布对应的历史应用镜像名称,并将历史应用镜像的镜像制作日期截取出来;
2.4.3)将截取到的历史应用镜像的镜像制作日期与目前待更新的应用镜像名称中的镜像制作日期进行时间对比,检测该应用镜像名称上的日期是否晚于数据库记录的日期,若是则说明应用镜像版本为最新应用的镜像版本,检测通过,跳转执行步骤3);若应用镜像名称上的日期早于数据库中记录的应用日期,则说明应用的该镜像版本不是最新应用版本,不能作为本次发布的基础,跳转执行步骤2.5)。
2.根据权利要求1所述的面向离线容器云环境的应用发布/更新方法,其特征在于,步骤5)中判断目标应用是否运行正常具体是指通过应用是否正常运行的测试URL信息判断目标应用是否运行正常。
3.根据权利要求1所述的面向离线容器云环境的应用发布/更新方法,其特征在于,步骤1)之前还包括下述步骤:在生产环境的生产管理员登陆web页面后通过web页面显示出所有的上传的应用的信息并提供发布或更新的操作选项,如果生产管理员针对某个目标应用发布或更新的操作按钮,则跳转执行步骤1)。
4.一种面向离线容器云环境的应用发布/更新系统,其特征在于包括:
应用信息入库程序单元,用于将收到的目标应用的信息入库;收到的目标应用的信息包括:按照指定规则命名的应用镜像名称、应用数据、应用的配置文件信息、用于制作镜像的Dockerfile文件、应用是否正常运行的测试URL信息、应用镜像命名规则信息,且上述目标应用的信息被打包为压缩包的方式并附带有完整性校验值;
应用合法检测程序单元,用于对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新失败;
应用镜像制作程序单元,用于为目标应用制作容器镜像;
应用镜像入库程序单元,用于检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败;否则,将目标应用的容器镜像推送到镜像仓库;
应用发布检测程序单元,用于判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功;
所述应用合法检测程序单元对目标应用进行合法检测包括:2.1)对目标应用的压缩包进行完整性校验生成完整性校验值,如果附带的完整性校验值正确则执行下一步;否则跳转执行步骤2.5);2.2)对目标应用的Dockerfile文件进行格式规范合规检查并与应用镜像命名规则信息相比以判断是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);2.3)在数据库中查找目标应用对应的应用数据的名称,将上传的应用数据的名称与数据库中查找的应用数据名称做对比,若两者一致,则说明上传的应用数据是目标应用的应用数据,则继续下一步,若两者不一致,则说明上传的应用数据并非该应用的应用数据,跳转执行步骤2.5);2.4)对目标应用进行应用信息历史记录检测,如果检测通过则跳转执行步骤3);否则跳转执行步骤2.5);2.5)判定应用自动发布或更新失败,结束并退出;
步骤2.2)的详细步骤包括:2.2.1)检测Dockerfile文件的格式规范是否完成包含基础镜像信息、维护者信息、镜像操作指令、容器启动执行指令四部分内容;如果正确则执行下一步;否则跳转执行步骤2.5);2.2.2)检测Dockerfile文件中应用镜像命名规则“镜像仓库URL-应用名称:日期”是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);2.2.3)判断Dockerfile文件的格式是否正确,如果正确则执行下一步;否则跳转执行步骤2.5);2.2.4)判断Dockerfile第一行中写入的基础镜像中的“应用名称”和目前待发布/更新的应用的名称是否一致,如果一致则执行下一步;否则跳转执行步骤2.5);
步骤2.4)中对目标应用进行应用信息历史记录检测的详细步骤包括:2.4.1)查找目标应用的镜像命名获得目标应用的镜像制作日期,其中目标应用的镜像命名格式为:“镜像仓库URL-应用名称:日期”,其中“日期”为目标应用的镜像制作日期;2.4.2)在数据库中查找目标应用的历史发布对应的历史应用镜像名称,并将历史应用镜像的镜像制作日期截取出来;2.4.3)将截取到的历史应用镜像的镜像制作日期与目前待更新的应用镜像名称中的镜像制作日期进行时间对比,检测该应用镜像名称上的日期是否晚于数据库记录的日期,若是则说明应用镜像版本为最新应用的镜像版本,检测通过,跳转执行步骤3);若应用镜像名称上的日期早于数据库中记录的应用日期,则说明应用的该镜像版本不是最新应用版本,不能作为本次发布的基础,跳转执行步骤2.5)。
5.一种面向离线容器云环境的应用发布/更新系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1~3中任意一项所述面向离线容器云环境的应用发布/更新方法的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行权利要求1~3中任意一项所述面向离线容器云环境的应用发布/更新方法的计算机程序。
6.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1~3中任意一项所述面向离线容器云环境的应用发布/更新方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555512.XA CN111610989B (zh) | 2020-06-17 | 2020-06-17 | 一种面向离线容器云环境的应用发布/更新方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555512.XA CN111610989B (zh) | 2020-06-17 | 2020-06-17 | 一种面向离线容器云环境的应用发布/更新方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111610989A CN111610989A (zh) | 2020-09-01 |
CN111610989B true CN111610989B (zh) | 2023-09-29 |
Family
ID=72197448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010555512.XA Active CN111610989B (zh) | 2020-06-17 | 2020-06-17 | 一种面向离线容器云环境的应用发布/更新方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111610989B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463304A (zh) * | 2020-12-03 | 2021-03-09 | 金蝶软件(中国)有限公司 | 容器镜像的回滚方法、装置、计算机设备和存储介质 |
CN112613041A (zh) * | 2020-12-25 | 2021-04-06 | 南方电网深圳数字电网研究院有限公司 | 容器镜像检测方法和装置、电子设备、存储介质 |
CN112818059B (zh) * | 2021-01-27 | 2024-05-17 | 百果园技术(新加坡)有限公司 | 一种基于容器发布平台的信息实时同步方法及装置 |
CN113282308A (zh) * | 2021-06-17 | 2021-08-20 | 杭州华橙软件技术有限公司 | 一种镜像构建方法、装置、存储介质及电子装置 |
CN113535203B (zh) * | 2021-07-06 | 2024-06-07 | 海南视联通信技术有限公司 | 服务器升级方法、装置、设备及存储介质 |
CN113822585B (zh) * | 2021-09-26 | 2023-05-30 | 云南锡业股份有限公司锡业分公司 | 一种智能冶炼工厂信息化管理系统 |
CN113986331B (zh) * | 2021-10-29 | 2024-09-03 | 重庆富民银行股份有限公司 | 一种基于差异环境应用推送发布的方法 |
CN114675893B (zh) * | 2022-04-19 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种驱动的管理方法、装置及计算机设备 |
CN114879984B (zh) * | 2022-07-07 | 2022-10-18 | 杭州阿启视科技有限公司 | 动态构建docker镜像减少离线文件体积的方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015078333A1 (zh) * | 2013-11-26 | 2015-06-04 | 中国银联股份有限公司 | 虚拟机镜像离线升级方法 |
WO2017143548A1 (zh) * | 2016-02-25 | 2017-08-31 | 华为技术有限公司 | 用于应用自动化部署的方法和云管理节点 |
CN107678756A (zh) * | 2017-09-29 | 2018-02-09 | 千寻位置网络有限公司 | 一种基于Docker的Web应用一键发布方法 |
CN108390920A (zh) * | 2018-02-02 | 2018-08-10 | 浙江臻善科技股份有限公司 | 基于web端的Docker镜像构建方法、装置、存储设备及终端设备 |
CN109614138A (zh) * | 2018-12-03 | 2019-04-12 | 湖南舜康信息技术有限公司 | 一种基于容器云的应用集成和发布方法及系统 |
WO2019153829A1 (zh) * | 2018-02-12 | 2019-08-15 | 人和未来生物科技(长沙)有限公司 | 一种容器Dockerfile、容器镜像快速生成方法及系统 |
CN110187914A (zh) * | 2019-05-23 | 2019-08-30 | 杭州火小二科技有限公司 | 应用开发方法、系统及装置 |
CN110399134A (zh) * | 2019-06-28 | 2019-11-01 | 绿漫科技有限公司 | 一种基于容器的快速部署方法及系统 |
CN110413294A (zh) * | 2019-08-06 | 2019-11-05 | 中国工商银行股份有限公司 | 服务发布系统、方法、装置和设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8533701B2 (en) * | 2010-03-15 | 2013-09-10 | Microsoft Corporation | Virtual machine image update service |
CN105260229A (zh) * | 2015-10-28 | 2016-01-20 | 北京百度网讯科技有限公司 | 拉取虚拟机镜像文件的方法和装置 |
US10402569B2 (en) * | 2016-10-20 | 2019-09-03 | International Business Machines Corporation | Code package processing |
US10379841B2 (en) * | 2017-10-13 | 2019-08-13 | International Buisness Machines Corporation | Facilitating automatic container updating within a container-based environment |
-
2020
- 2020-06-17 CN CN202010555512.XA patent/CN111610989B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015078333A1 (zh) * | 2013-11-26 | 2015-06-04 | 中国银联股份有限公司 | 虚拟机镜像离线升级方法 |
WO2017143548A1 (zh) * | 2016-02-25 | 2017-08-31 | 华为技术有限公司 | 用于应用自动化部署的方法和云管理节点 |
CN107678756A (zh) * | 2017-09-29 | 2018-02-09 | 千寻位置网络有限公司 | 一种基于Docker的Web应用一键发布方法 |
CN108390920A (zh) * | 2018-02-02 | 2018-08-10 | 浙江臻善科技股份有限公司 | 基于web端的Docker镜像构建方法、装置、存储设备及终端设备 |
WO2019153829A1 (zh) * | 2018-02-12 | 2019-08-15 | 人和未来生物科技(长沙)有限公司 | 一种容器Dockerfile、容器镜像快速生成方法及系统 |
CN109614138A (zh) * | 2018-12-03 | 2019-04-12 | 湖南舜康信息技术有限公司 | 一种基于容器云的应用集成和发布方法及系统 |
CN110187914A (zh) * | 2019-05-23 | 2019-08-30 | 杭州火小二科技有限公司 | 应用开发方法、系统及装置 |
CN110399134A (zh) * | 2019-06-28 | 2019-11-01 | 绿漫科技有限公司 | 一种基于容器的快速部署方法及系统 |
CN110413294A (zh) * | 2019-08-06 | 2019-11-05 | 中国工商银行股份有限公司 | 服务发布系统、方法、装置和设备 |
Non-Patent Citations (2)
Title |
---|
丘晖 ; .基于容器的持续集成和部署方法研究.广东通信技术.2017,(第10期),全文. * |
维克托•法西克.《微服务运维实战》.华中科技大学出版社,2018,第67-72页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111610989A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111610989B (zh) | 一种面向离线容器云环境的应用发布/更新方法及系统 | |
US10228925B2 (en) | Systems, devices, and methods for deploying one or more artifacts to a deployment environment | |
CN111538719B (zh) | 数据迁移方法、装置、设备及计算机存储介质 | |
US20130198134A1 (en) | Online verification of a standby database in log shipping physical replication environments | |
CN112860645B (zh) | 一种离线压缩文件的处理方法、装置、计算机设备及介质 | |
US10248686B2 (en) | Shared data with relationship information | |
US20090164970A1 (en) | System for Managing Automated Report Versions | |
CN111291051B (zh) | 运价数据处理方法及装置、存储介质及电子设备 | |
CN108388440A (zh) | 一种web应用系统自动更新的方法 | |
CN110291505A (zh) | 减少应用的恢复时间 | |
US11151020B1 (en) | Method and system for managing deployment of software application components in a continuous development pipeline | |
CN113268206B (zh) | 一种网络靶场资源热插拔实现方法与系统 | |
CN113010267A (zh) | 容器应用投产方法和系统 | |
CN113312205B (zh) | 数据校验方法、装置、存储介质和计算机设备 | |
CN117667109A (zh) | 一种环境部署方法、装置、电子设备及存储介质 | |
CN115080309A (zh) | 数据备份系统、方法、存储介质以及电子设备 | |
CN114996209A (zh) | 一种配置修改方法、装置、设备及可读存储介质 | |
CN115269424A (zh) | 生产流量的自动回归测试方法、装置、设备及存储介质 | |
CN114996955A (zh) | 一种云原生混沌工程实验的靶场环境构建方法及装置 | |
JP2005250819A (ja) | レプリケーションdb整合性確認方法 | |
CN117874145B (zh) | 一种主从数据库的强一致方法、装置、设备及存储介质 | |
KR101449202B1 (ko) | 철강공정 미들웨어의 데이터 복사 및 복원 시스템 및 방법 | |
CN118227558B (zh) | 信息系统快照生成方法、装置、设备及存储介质 | |
TWI710896B (zh) | 整合雲端系統的方法及雲端系統 | |
Górski et al. | Towards automation of IT systems repairs |
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 |