logo好方法网

一种面向离线容器云环境的应用发布/更新方法及系统


技术摘要:
本发明公开了一种面向离线容器云环境的应用发布/更新方法及系统,本发明方法包括将收到的目标应用的信息入库;对目标应用进行合法检测,为目标应用制作容器镜像;检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败,结束并退出;否则,将目标应用的容器镜  全部
背景技术:
继虚拟化技术出现后,容器技术目前逐渐成为对云计算领域具有深远影响的变革 技术。容器是一种沙盒技术,可以将应用运行在其中,与外界隔离,同时这个沙盒可以被方 便地“转移”。本质上,容器就是一种特殊的进程。通过在创建容器进程的时候,指定了这个 进程所需要启用的一组Namespace(命名空间)参数,进而让该容器进程只能看到当前 Namespace所限定的资源、文件、设备、状态或者配置。 容器技术的发展和应用,将为各行各业应用云计算提供了新思路,同时容器技术 也对云计算的交付方式、效率、PaaS平台的构建等方面产生深远的影响。容器云构建在 Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等整一套 功能,本质上可看作是基于容器技术的PaaS平台。在网络环境良好情况下,容器技术具有简 单部署,开发、测试和生产等多地共用同一镜像仓库、在线拉取最新应用镜像、应用快速启 动等优势;但在离线环境下,对于应用的发布、更新等操作,开发测试环境与生产环境无法 做到实时同步,同时生产环境的管理员必须具备一定的容器技术能力,以便能够在离线环 境下能够自行构建镜像、发布容器应用并能够检查应用是否发布成功等。 目前传统的面向离线容器云环境的应用发布/更新方式如图1所示,传统的面向离 线容器云环境的应用发布/更新方式下,整个离线环境下的容器云发布/更新架构包括两部 分,开发测试环境和生产环境,中间的纽带为开发测试管理员和生产管理员。在开发测试环 境中,包括应用开发模块、应用测试模块、应用镜像制作模块和应用交付模块,在生产环境 中,包括应用镜像导入模块、应用配置变更模块、应用发布/更新模块和应用检查模块。在离 线容器云环境下发布/更新应用时,首先开发环境对应用做更新开发、测试等,待开发完成 并测试通过后,开发测试人员将对最新版本的应用做容器镜像,并交付给开发测试管理员, 开发测试管理在收到应用的最新容器镜像后,将该容器镜像交付给生产管理员,生产管理 员在生产环境中导入最新的容器镜像,并根据新镜像名称,修改该应用的发布配置文件并 发布该应用。如果该应用已在运行,生产管理员需首先停止运行中的应用,并发布最新版本 的应用。在应用发布完成后,生产管理员还需确认应用发布是否存在问题,如果存在问题, 将主动将应用回滚到上一个版本,并将该问题及时反馈回开发测试管理员。其中,容器镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含 了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。  镜像不包含任何动 态数据,其内容在构建之后也不会被改变。 在离线容器云环境下,该种方式能够满足应用的发布/更新需求,应用也能够通过 该种方式进行发布/更新。但对于生产管理员,必须具备一定基础的容器技术,能够对应用 容器进行镜像导入、应用发布配置文件编写、应用发布/更新、应用检查等技术操作,同时由 4 CN 111610989 A 说 明 书 2/11 页 于人工手动操作,无法保证应用发布/更新的合法性和安全性。另外在这种模式下,开发测 试环境和生产环境无法在应用镜像版本、配置信息等方面保持一致,在不断的迭代过程中, 会导致应用版本信息在开发测试环境和生产环境中的混乱,最终导致应用的发布/更新彻 底崩溃。 现有的面向离线容器云环境的应用发布/更新方法可能会存在如下缺陷:1、生产 管理员需具备容器技术基础。由于应用镜像的导入、应用发布信息的配置、应用的发布/更 新、发布后的应用检查均由生产管理员操作,需要生产管理员具备一定的容器技术基础。2、 无法保证应用发布合法/安全:在该种发布方式中,从镜像导入到最后的应用发布后的检查 操作均是人工操作,在整个操作过程中的任何一环如果出现问题,则应用发布将很可能面 临失败,尤其是在对A应用进行发布/更新时,错将新版本的应用数据发布到B应用上,将导 致多个应用发生故障,这将无法保证应用发布的合法性和安全性。3、无法保证环境一致。在 开发测试环境和生产环境的应用不断迭代更新过程中,应用的发布配置信息、应用镜像名 称等应用信息无法在两边环境中保持一致,后续在版本维护与升级过程中,将会导致应用 在开发测试环境中能够运行正常,一旦发布到生产环境中,则无法正常运行,另外在故障排 查中,也将耗费大量的人力物力,降低应用更新及故障排查的效率。 综上所述,容器技术的发展和应用,为各行各业应用云计算提供了新思路,同时容 器技术也对云计算的交付方式、效率、PaaS平台的构建等方面提出了更严苛的要求。至今基 于离线容器云环境的应用管理和维护仍是云计算领域中研究的要点和痛点。
技术实现要素:
本发明要解决的技术问题:针对现有技术的上述问题,提供一种面向离线容器云 环境的应用发布/更新方法及系统,本发明从生产实际需求考虑,弥补了离线容器云环境下 无法自动发布/更新应用的缺陷,能够实现自动应用发布/更新,无需人工手动操作,提高了 离线容器云环境应用发布/更新的实时自动化处理能力,降低了生产管理者的技术门槛,避 免了人工误操作,  能够有效的对应用的发布/更新信息进行合法性和安全性检查,大大降 低了应用发布/更新的失败几率。 为了解决上述技术问题,本发明采用的技术方案为: 一种面向离线容器云环境的应用发布/更新方法,在生产环境中执行应用自动发布或 更新的步骤包括: 1)将收到的目标应用的信息入库; 2)对目标应用进行合法检测,如果通过则执行下一步,否则判定应用自动发布或更新 失败,结束并退出; 3)为目标应用制作容器镜像; 4)检查镜像仓库是否正常,如果不正常则判定应用自动发布或更新失败,结束并退出; 否则,将目标应用的容器镜像推送到镜像仓库; 5)判断该目标应用是否已经有老版本在运行,如果已经有老版本在运行则终止目标应 用老版本的运行;根据目标应用的容器镜像发布新的目标应用;运行目标应用并判断目标 应用是否运行正常,如果不能正常运行,则将目标应用回滚到上一个版本,判定应用自动发 布或更新失败;否则判定应用自动发布或更新成功。 5 CN 111610989 A 说 明 书 3/11 页 可选地,步骤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信息判断目标应用是否运行正常。 可选地,所述判定应用自动发布或更新失败、判定应用自动发布或更新成功之后 6 CN 111610989 A 说 明 书 4/11 页 还包括将目标应用的应用自动发布或更新记录发送给生产环境的生产管理员的步骤。 可选地,步骤1)之前还包括下述步骤:在生产环境的生产管理员登陆web页面后通 过web页面显示出所有的上传的应用的信息并提供发布或更新的操作选项,如果生产管理 员针对某个目标应用发布或更新的操作按钮,则跳转执行步骤1)。 此外,本发明还提供一种面向离线容器云环境的应用发布/更新系统,包括: 应用信息入库程序单元,用于将收到的目标应用的信息入库; 应用合法检测程序单元,用于对目标应用进行合法检测,如果通过则执行下一步,否则 判定应用自动发布或更新失败; 应用镜像制作程序单元,用于为目标应用制作容器镜像; 应用镜像入库程序单元,用于检查镜像仓库是否正常,如果不正常则判定应用自动发 布或更新失败;否则,将目标应用的容器镜像推送到镜像仓库; 应用发布检测程序单元,用于判断该目标应用是否已经有老版本在运行,如果已经有 老版本在运行则终止目标应用老版本的运行;根据目标应用的容器镜像发布新的目标应 用;运行目标应用并判断目标应用是否运行正常,如果不能正常运行,则将目标应用回滚到 上一个版本,判定应用自动发布或更新失败;否则判定应用自动发布或更新成功。 此外,本发明还提供一种面向离线容器云环境的应用发布/更新系统,包括计算机 设备,该计算机设备被编程或配置以执行所述面向离线容器云环境的应用发布/更新方法 的步骤,或者该计算机设备的存储器中存储有被编程或配置以执行所述面向离线容器云环 境的应用发布/更新方法的计算机程序。 此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有 被编程或配置以执行所述面向离线容器云环境的应用发布/更新方法的计算机程序。 和现有技术相比,本发明具有下述优点: 1、本发明从生产实际需求考虑,弥补了离线容器云环境下无法自动发布/更新应用的 缺陷。 2、本发明在(生产管理员)获取到应用信息后,通过容器云WEB管理界面进行自动 应用更新,无需人工手动操作,提高了离线容器云环境应用发布/更新的实时自动化处理能 力,降低了生产管理者的技术门槛,避免了人工误操作。 3、本发明能够有效的对应用的发布/更新信息进行合法性和安全性检查,大大降 低了应用发布/更新的失败几率。 4、本发明可进一步通过应用发布/更新的审计日志记录,使得应用的管理维护、故 障检测等方面有据可查,大大提高了管理维护、故障恢复的效率。 附图说明 图1是现有面向离线容器云环境的应用发布/更新系统的示意图。 图2是本发明实施例中面向离线容器云环境的应用发布/更新系统的示意图。 图3是本发明实施例中面向离线容器云环境的应用发布/更新的流程图。
分享到:
收藏