首页> 中国专利> 一种OpenStack云平台流水线自动化部署的方法

一种OpenStack云平台流水线自动化部署的方法

摘要

本发明公开一种OpenStack云平台流水线自动化部署的方法,涉及云平台部署技术领域;配置针对分布式存储系统和OpenStack云平台各个组件的流水线脚本,将代码托管平台与流水线脚本对应关联,通过流水线脚本执行代码规范检查、单元测试及单元测试覆盖率,通过流水线脚本针对Kubernetes部署的OpenStack云平台环境构建基础镜像及构建release镜像或者针对非Kubernetes部署的OpenStack云平台环境构建deb包流程,通过流水线脚本执行环境部署、自动化功能测试、人工介入集成测试和代码审核及合并,通过流水线脚本执行OpenStack云平台版本发布。

著录项

  • 公开/公告号CN112882724A

    专利类型发明专利

  • 公开/公告日2021-06-01

    原文格式PDF

  • 申请/专利权人 浪潮云信息技术股份公司;

    申请/专利号CN202110332387.0

  • 发明设计人 李敏;蔡卫卫;谢涛涛;宋伟;钱帅;

    申请日2021-03-29

  • 分类号G06F8/60(20180101);G06F8/71(20180101);G06F11/36(20060101);

  • 代理机构37100 济南信达专利事务所有限公司;

  • 代理人孙晶伟

  • 地址 250100 山东省济南市高新区浪潮路1036号浪潮科技园S01号楼

  • 入库时间 2023-06-19 11:11:32

说明书

技术领域

本发明公开一种方法,涉及云平台部署技术领域,具体地说是一种OpenStack云平台流水线自动化部署的方法。

背景技术

随着云计算的使用范围不断扩大和高速发展,快速高效的迭代更新是云计算领域发展的必然趋势和必备要求,而云平台是整个云中心最为核心基础的组成,OpenStack云平台可以支持各种分布式云环境,可以提供实施简单、大规模扩展、功能丰富、标准统一的云计算管理平台,而OpenStack云平台的稳定迭代更新中多次代码迭代、功能测试必不可少。尤其作为一个云环境建设的基础底座,对于一个完备的OpenStack云平台来说,多次代码迭代、功能测试需要使用到的OpenStack组件至少包含Keystone、Nova、Cinder、Neutron、Glance等核心组件以及其他可能使用到的辅助组件,以上核心组件还需要存储平台辅助迭代及测试。而以上各个组件和存储平台在测试、发布和部署的过程中涉及到大量需要人为介入的环节,不仅要投入人力把控整个研发过程,耗时耗力,还容易因人工测试、发布和部署导致效率低下等情况的发生。

发明内容

本发明针对现有技术的问题,提供一种OpenStack云平台流水线自动化部署的方法,避免现有研发过程中容易出现的效率低下、人为介入易出错的情形,同时可以实现自动化的代码检查、单元测试、部署测试、代码质量检查等操作,优化迭代效率。

本发明提出的具体方案是:

一种OpenStack云平台流水线自动化部署的方法,配置针对分布式存储系统和OpenStack云平台各个组件的流水线脚本,

将代码托管平台与流水线脚本对应关联,

通过流水线脚本执行代码规范检查、单元测试及单元测试覆盖率,通过流水线脚本针对Kubernetes部署的OpenStack云平台环境构建基础镜像及构建release镜像或者针对非Kubernetes部署的OpenStack云平台环境构建deb包流程,

通过流水线脚本执行环境部署、自动化功能测试、人工介入集成测试和代码审核及合并,

通过流水线脚本执行OpenStack云平台版本发布。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中划分流水线执行阶段:

通过流水线脚本执行代码规范检查、单元测试及单元测试覆盖率,通过流水线脚本针对Kubernetes部署的OpenStack云平台环境构建基础镜像及构建release镜像或者针对非Kubernetes部署的OpenStack云平台环境构建deb包流程为第一阶段,

通过流水线脚本执行环境部署、自动化功能测试、人工介入集成测试和代码审核及合并为第二阶段,

通过流水线脚本执行OpenStack云平台版本发布为第三阶段。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行代码规范检查:

针对OpenStack云平台各个组件进行pep8的检查,使代码风格符合python代码编码规范。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行单元测试及单元测试覆盖率:

单元测试为针对单个方法或类在与程序其他部分隔离的情况下进行单独测试,单元测试覆盖率指示出单元测试对方法、分支以及代码行数的覆盖情况。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行构建基础镜像及构建release镜像:

针对OpenStack云平台的组件代码,构建基础镜像,

根据基础镜像,构建release镜像,release镜像tag带有时间戳,便于测试使用。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行环境部署:根据部署环境信息,对部署环境中当前组件进行迭代更新。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行自动化功能测试:

利用OpenStack的Tempest组件进行,默认值执行smoke测试或者通过配置白名单和黑名单的方式指定测试用例进行功能测试。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行人工介入集成测试:

向测试人员发送提示邮件,进入流水线等待期,直至测试人员完成测试反馈测试结果。

进一步,所述的一种OpenStack云平台流水线自动化部署的方法中通过流水线脚本执行代码审核及合并:

自动化功能测试和人工介入集成测试通过后进行代码审核,超过规定的正向分数阈值,认为代码符合合并条件。

一种OpenStack云平台流水线自动化部署的系统,包括配置模块、关联模块及执行模块,

配置模块配置针对分布式存储系统和OpenStack云平台各个组件的流水线脚本,

关联模块将代码托管平台与流水线脚本对应关联,

执行模块通过流水线脚本执行代码规范检查、单元测试及单元测试覆盖率,通过流水线脚本针对Kubernetes部署的OpenStack云平台环境构建基础镜像及构建release镜像或者针对非Kubernetes部署的OpenStack云平台环境构建deb包流程,

通过流水线脚本执行环境部署、自动化功能测试、人工介入集成测试和代码审核及合并,

通过流水线脚本执行OpenStack云平台版本发布。

本发明的有益之处是:

本发明方法提供一种OpenStack云平台流水线自动化部署的方法,针对OpenStack云平台的需要快速、稳定迭代更新的现状,实现自动化代码检查、单元测试执行、构建镜像、部署环境、功能测试,结合人工介入机制可实现代码审核、代码合并和版本发布等功能,提高版本迭代效率,减少人工迭代发版容易出现的效率低下、易出错的情况。

附图说明

图1是本发明方法流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

本发明提供一种OpenStack云平台流水线自动化部署的方法,配置针对分布式存储系统和OpenStack云平台各个组件的流水线脚本,

将代码托管平台与流水线脚本对应关联,

通过流水线脚本执行代码规范检查、单元测试及单元测试覆盖率,通过流水线脚本针对Kubernetes部署的OpenStack云平台环境构建基础镜像及构建release镜像或者针对非Kubernetes部署的OpenStack云平台环境构建deb包流程,

通过流水线脚本执行环境部署、自动化功能测试、人工介入集成测试和代码审核及合并,

通过流水线脚本执行OpenStack云平台版本发布。

通过本发明方法避免现有研发过程中容易出现的效率低下、人为介入易出错的情形,同时可以实现自动化的代码检查、单元测试、部署测试、代码质量检查等操作,优化迭代效率。

在具体应用中,在本发明方法的一些实施例中,在流水线平台中配置好针对分布式存储Ceph和OpenStack平台各个组件的执行脚本,将代码托管平台与流水线脚本对应关联,通过各条流水线执行代码规范检查、单元测试及覆盖率执行、构建基础镜像、构建release镜像、部署环境、自动化功能测试、人工介入集成测试、代码审核及合并等流程。

其中流水线脚本有以下特征:

流水线脚本可与源代码统一托管,便于针对不同迭代版本进行管理,

对于OpenStack的各个组件,其代码规范检查、单元测试及覆盖率执行、构建镜像等操作,可作为公共方法进行统一管理,在各个组件流水线脚本中调用即可;

对于分布式存储系统比如Ceph,其代码规范检查、单元测试及覆盖率执行、构建镜像等流程需要根据代码特征进行配置,实现方法单独管理;

针对一个OpenStack云平台使用的公共变量,例如环境信息等,可进行统一维护,各条流水线在使用时进行动态加载。

而在流水线执行过程中对于分布式存储Ceph和OpenStack的各个组件,其研发部署流程都包含以下核心步骤:代码规范检查、单元测试及覆盖率执行、构建基础镜像、构建release镜像、部署环境、自动化功能测试、人工介入集成测试、代码审核及合并、版本发布;

构建基础镜像、构建release镜像的步骤适用于基于Kubernetes部署的OpenStack云平台环境,对于非Kubernetes部署的环境,可以替换为构建deb包的过程。

在本发明的另一些实施例中,针对基于Kubernetes环境部署的平台进行详细的介绍。

进行部署前可进行前期准备工作,比如在执行流水线之前,确定流水线动态加载部署环境的信息和不同分组的邮件接收人等,

部署环境信息可配置多个可用环境,在各个组件流水线中按照需要读取环境信息即可,

对于邮件接收人,在不同执行阶段可将邮件发送给不同接收人,其中测试相关的工作发送给测试人员,代码审核发送给参与研发的人员,代码合并发送给研发组长,流水线执行结果发送给代码提交人员,

开始执行流水线之前可以再次检查主分支是否有代码更新,若有代码更新自动合入当前分支等等。

进入OpenStack云平台流水线自动化部署步骤:

配置针对分布式存储系统和OpenStack云平台各个组件的流水线脚本,

将代码托管平台与流水线脚本对应关联,

通过流水线脚本执行代码规范检查:代码规范检查是为了加强代码的一致性,通过各个语言制定的编程规范使代码保持统一的编程风格,增强代码可读性;

针对OpenStack各个组件的代码规范检查,主要进行pep8的检查,使代码风格符合python代码编码规范。

通过流水线脚本执行单元测试及单元测试覆盖率:

单元测试可以针对单个方法或类在与程序其他部分隔离的情况下进行单独测试,保证单个方法的可用性;而单元测试覆盖率则可指示出单元测试对方法、分支以及代码行数的覆盖情况,有助于研发人员和测试人员对代码质量的辅助判定;

通过流水线可将单元测试结果和单元测试覆盖率结果输出为html格式,便于研发人员和测试人员查看结果;

若研发过程中存在单元测试覆盖率的阈值要求,可在流水线中提取测试报告关键字进行判断,从而进一步控制代码质量。

通过流水线脚本执行构建基础镜像:

针对OpenStack组件代码,提出构建基础镜像的步骤;

该步骤在ubuntu基础镜像中安装组件代码以及依赖的deb包、pip包等;

该步骤是为了在构建release镜像时节省时间,避免每次构建重复安装deb包和pip包,因此在每次运行流水线时默认不执行,一般由研发组长控制是否执行以及执行频率。

通过流水线脚本执行构建release镜像:

针对OpenStack组件,该步骤以构建基础镜像作为基础;

针对OpenStack组件代码,该步骤不再重复安装大部分依赖包;

针对OpenStack组件代码,该步骤仅安装组件代码和研发过程中有特殊需求的依赖包;

该步骤会构建出一个release镜像,其镜像tag带有时间戳,便于测试使用。

通过流水线脚本执行环境部署:

根据得到的部署环境信息,仅对部署环境中当前组件进行迭代更新;

在基于Kubernetes部署的环境中,将charts中组件的镜像tag更换为release镜像得到的tag,然后更新环境,即可进行升级部署;

该步骤会关注环境升级部署的情况,等待组件服务都正常启动后才认为步骤执行成功;若服务启动超时或失败,认为步骤执行失败,流水线终止。

通过流水线脚本执行自动化功能测试:

环境升级完成后自动开始进行功能测试;

功能测试利用OpenStack的Tempest组件进行,默认值执行smoke测试,也可以通过配置白名单和黑名单的方式指定测试用例进行功能测试;

测试结果会自动输出到网页中,便于研发人员和测试人员跟踪测试结果;

指定的功能测试项全部通过后流水线进行到下一个步骤,否则认为执行失败,流水线终止。

通过流水线脚本执行人工介入集成测试:

该步骤适用于自动化功能测试无法覆盖,需要人工进行测试的功能项;

该步骤会向测试人员发送提示邮件,然后进入流水线进入等待期,直至测试人员完成测试反馈测试结果,若测试通过,可进入下一个stage;否则流水线执行失败终止。

通过流水线脚本执行代码审核及合并:

功能测试和人工测试均通过后,会向参与研发工作的人员发送邮件提示进行代码审核,审核采用打分机制,可由研发组长规定正向分数阈值,当研发人员打分超过正向分数阈值后,可以认为代码符合合并条件;

代码合并会给研发组长发送提示邮件;

代码审核和代码合并步骤中,在发送完邮件后流水线均会进入等待期,直至研发组长触发才会进入下一个步骤。

通过流水线脚本执行版本发布:

一般在迭代周期中进行版本发布中才会执行,主要工作是对研发主分支的代码打上版本tag,同时更新组件charts中的镜像tag。

上述本发明方法实施过程中,流水线的执行阶段分为了三组,其中代码规范检查、单元测试及覆盖率执行、构建基础镜像、构建release镜像分为一组;部署环境、自动化功能测试、人工介入集成测试、代码审核及合并分为一组;版本发布单独作为一组;执行流水线可按需选择执行步骤,其中版本发布默认不执行;

各个组件流水线的执行互不干扰,可独立运行。

并且流水线执行步骤发生错误后,整条流水线会终止,同时向相关人员发送邮件提示;

研发人员进行bug修复后可选择人为触发,从上次出错位置开始执行;或者自动触发,重新执行整条流水线。

通过上述本发明的一种OpenStack云平台流水线自动化部署的方法,可以实现自动化代码检查、单元测试执行、构建镜像、部署环境、功能测试,结合人工介入机制可实现代码审核、代码合并和版本发布等功能,可提高版本迭代效率,减少人工迭代发版容易出现的效率低下、易出错的情况。

同时本发明提供一种OpenStack云平台流水线自动化部署的系统,包括配置模块、关联模块及执行模块,

配置模块配置针对分布式存储系统和OpenStack云平台各个组件的流水线脚本,

关联模块将代码托管平台与流水线脚本对应关联,

执行模块通过流水线脚本执行代码规范检查、单元测试及单元测试覆盖率,通过流水线脚本针对Kubernetes部署的OpenStack云平台环境构建基础镜像及构建release镜像或者针对非Kubernetes部署的OpenStack云平台环境构建deb包流程,

通过流水线脚本执行环境部署、自动化功能测试、人工介入集成测试和代码审核及合并,

通过流水线脚本执行OpenStack云平台版本发布。

上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号