农行 DevOps 实践:制品库对 DevOps 三大流水线的支撑

2021-05-31 15:55:25 浏览数 (1)

DevOps 可以提升开发和运维团队间的协作,并且通过自动化和可重复的方式将代码更快地部署到生产。有助于加快组织交付应用和服务的速度。对产品交付、测试、功能开发和维护起到了意义深远的影响。

项目组在开发过程中引用着越来越多的组件,研发效率上去了,但是随着我们依赖组件越多,我们引入漏洞的风险也越高,通过人工发现的依赖漏洞变的更加艰难,因为漏洞藏的越深,修复漏洞所花费的时间就越长。因此,对于制品的管理——版本管理、风险管理尤为重要。Artifactory 制品库是一款 Maven 仓库服务端软件,基于我行两网隔离政策,在内网搭建 maven 仓库,供公司内部公共库的上传和发布,以提高公共代码使用的便利性。

制品管理是 DevOps 中不可或缺的重要环节,是我们整个 DevOps 流水线的枢纽。简单来说,制品库在 DevOps 中起到了镜像托管的作用,项目组由开发库逐步晋级至测试库、待投产库,最终晋级至投产部署生产。

下面详细了解一下制品仓库在 DevOps 三条流水线中起到的作用:

一、支撑持续集成CICD流水线

持续集成CI和持续部署CD,通俗来讲,就是绑定项目的代码仓库,自动获取最新代码,完成单元测试、代码合规检查、安全扫描、ATP测试等多重质量门禁,完成编译构建,部署到服务器。

制品库是实现CICD的基础。项目组先将组件入制品库,为 DevOps 中代码编译步骤做准备。代码执行测试后抵达镜像制作步骤。

  • 镜像制作:

镜像是 Docker 容器的基石,容器是镜像的运行实例,有了镜像才能启动容器。Docker将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器中运行,就好像在真实的物理机上运行一样。

在TFS中配置了服务连接,用于连接制品库上传或者下载制品。

镜像制作成功后,将镜像及镜像信息推送至制品库镜像库中的dev库,同时清除本地镜像。

  • 部署文件:

应用系统随部署环境的不同需要准备不同的部署脚本(yaml文件),部署环境相关参数如何注入 yaml 文件中;并将 yaml 文件上传到制品库的 yaml 库中的 dev 库中。

  • 发布部署:

选用 Kubernetes 生态中的工作链,从制品库中拉取前置过程生成的dev阶段的yaml文件。

二、支撑测试部署流水线

测试部署流水线对应系统测试阶段。该阶段可以定义流水线的准入准出、制品晋级、 测试部署等流程。

首先需要关联CICD流水线,以保证该流水线的输入为对应的持续集成CICD流水线的输出(制品)。测试准入完成后,对制品晋级。

  • 制品晋级

在制品库中,将镜像从 dev 仓库晋级到 test 仓库形成 STBL 版本;将 Test、Preprod、Prod 三个环境部署脚本 Yaml 文件从 dev 仓库晋级到 test 仓库。

接下来连接 PaaS 云,拉取制品库对应的制品,将制品部署到 paas云上。之后进行一系列ATP测试、性能测试、手工测试,测试完成后,测试准出,该流水线执行完毕。

三、支撑预发布流水线

预发布流水线对应系统预发布阶段,可以定义预投产阶段的准入准出、制品晋级、测试部署等流程。

部署流水线和预发布流水线,这两条流水线包含的过程一样,差别在于晋级仓库、部署环境、测试内容等。

  • 制品晋级

将镜像从 test 仓库晋级到 preprod 仓库形成 PRBL 版本;将 Preprod、Prod两个环境部署脚本 Yaml 文件从 test 仓库晋级到 preprod 仓库。

部署环境不同于部署流水线,该流水线在待投产环境中部署,并进行相应的ATP测试,测试完成后,测试准出。DevOps 流水线全部执行完毕,等待投产。

在 DevOps 流水线的使用开发中,制品库作为中转站,将构建与部署之间的耦合度降到最低,可大幅度提升协作效率。通过制品库的支撑,非常好的达到了工具贯通、流程优化、规范建设的效果,使得 DevOps 流水线事半功倍。

随着 DevOps 的推广普及,制品库作为镜像与部署文件的载体,能够更好的存储以及管理 DevOps 流水线交付物。同时还可以通过制品追溯测试报告,在制品库中,可在制品属性页查看测试报告链接地址,点击自动跳转至自动化测试平台相关页面。DevOps 中的可追溯性为减少产品缺陷、增强合规性提供了有力保障。综上所述,制品库是 DevOps 流水线中不可或缺的一环。


2020年11月27日,由云计算开源联盟指导,由高效运维社区和开放运维联盟联合主办的 2020 GOPS 全球运维大会 · 上海站上,隆重发布了 DevOps 标准持续交付部分第九批评估结果,中国农业银行手机存款贷款模块顺利通过由中国信通院开展的《研发运营一体化(DevOps)能力成熟度持续交付3级评估。DevOps 标准共分 5 级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。这是中国农业银行在 6 月 19 日同时 5 个项目通过持续交付标准评估之后通过的第 6 个项目。

中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:

  • 信贷中台项目
  • 个人网银项目
  • 分布式应用互联平台(AIR)项目
  • 增值税进项税管理项目
  • 金融小店项目
  • 手机银行存款贷款业务

0 人点赞