农行运营合规管理心得体会_农行 PaaS 云镜像接入制品库管理实践

5e6a734f078db965a237ec547b7a10e4.gif

f4293e99f9d9dfea719602f4a4bb010c.png 我行信贷中台等5个项目顺利通过 DevOps 持续交付标准3级评估,代表着我行软件研发运维一体化能力达到国内领先水平。在 DevOps 工程实施中,制品库承上启下,成为 DevOps 持续集成持续交付工具链的枢纽中心:

0da0c9186e0e062857daad0409cdcaaf.png

制品库不仅承担应用系统编译依赖组件的管理,而且对应用系统编译输出的制品进行了规范管理,从而替代了传统粗粒度的制品管理方式(比如搭建简易 FTP 来提供制品下载),解决了传统管理方式下制品版本无法跟踪、无法提供制品与组件视图等问题。

随着我行 PaaS 云建设进展,越来越多的应用系统实现了云构建和云部署。在应用系统上云过程中,镜像制品规范管理是基础保障。本文主要分享 PaaS 云镜像如何纳入制品库管理以及相关规范要求。

制品库管理框架

0f4e178a69a77d6c2c4aaa9b9b4c2355.png

镜像制品分为三大类:编译镜像,基础镜像以及应用镜像;其中编译镜像和基础镜像由组织级统一管理和维护:

0d140aca399b44bd9f0db8d5c4848580.png

应用镜像又分为自动构建镜像、自定义镜像以及公共镜像三大类,其中自定义镜像、公共镜像采用审批上传方式进行管理。自动构建镜像通过持续集成流水线(jenkins或者TFS)接入制品库。应用镜像仓库分为以下四个类别:
  • abc-docker-dev(开发仓库,用于管理开发版本,可上传)
  • abc-docker-test(测试仓库,用于管理测试版本,可上传、晋级)
  • abc-docker-prepord(待投产仓库,不可上传,只能晋级)
  • abc-docker-prod(投产版本,不可上传,只能晋级)
注意 :应用镜像自动上传制品库,必须严格遵循镜像标签tag命名规范,如:“{Build.SourceBranchName}_{Build.BuildNumber}_[项目组自定义]”,且首次只能上传到开发仓库或者测试仓库;在开发版本或测试版本通过DevOps各项质量门禁后,可以晋级到待投产仓库和投产仓库。

通过以上制品分类、管理规范、流程策略等多措施,确保了镜像制品的版本可追溯性以及安全管理。

Jenkins 应用镜像制作流水线对接制品库

72cd3b91e980bb1c518ddc90a8c21d9e.png

项目组通过TFS(Team Foundation Server)调用PaaS云上的jenkins流水线实现持续集成,具体步骤如下:
  1. 通过Jenkins配置CI、CD任务,CI任务包括源码仓库配置、构建触发条件配置、构建配置等,CD任务包括部署YAML配置、构建环境配置、部署命令配置等;
  2. 在TFS中,配置Jenkins连接信息、Jenkins作业信息等,然后通过手工触发或者设定的时间等方式触发持续集成/持续部署;
  3. TFS调用Jenkins进行构建;
  4. Jenkins CI服务从TFS源代码仓库将源码下载下来,构建应用包,然后使用应用包构建应用镜像,之后把构建出来的镜像推送到镜像库,镜像推送到制品库代码实现:48700e5f43da37a0e97ed1f5f091bf42.png

  5. Jenkins CD服务通过自动化部署命令触发PaaS平台从镜像仓库中拉取镜像部署到开发测试PaaS云中进行部署。
  6. 最后Jenkins将构建的日志发送给TFS,在TFS中实时查看构建的相关报告。

TFS 应用镜像制作流水线对接制品库

07e3a0f6efa662bc4eebe7b891d77ccc.png

由于TFS工具集成了docker以及k8s等云部署插件,故项目组也可以直接在TFS平台定制实现云构建和云部署流水线,具体步骤如下:

  1. 在TFS配置CI、CD任务,CI任务包括源码仓库配置、应用构建配置、镜像构建配置、镜像推送配置等,CD任务包括K8S服务连接配置、镜像仓库连接配置、部署命令配置等;

  2. 在TFS中,通过手工触发或者设定的时间等方式触发持续集成/持续部署;

  3. TFS CI服务下载源码构建应用包,然后使用应用包构建应用镜像,之后把构建出来的镜像推送到镜像仓库,下图为某个应用系统在TFS中的编译、docker镜像制作以及镜像上传制品库流水线:1fd504fd5d2d2a76a30eaae6ad364d1b.png

  4. TFS CD服务通过自动化部署命令触发PaaS平台从镜像仓库中拉取镜像部署到开发测试PaaS云中进行部署。

  5. 最后在TFS中能实时查看到构建的相关报告。

关于制品晋级

镜像制品入库后,通过晋级的方式实现制品位移:dev(开发)、test(测试)->prepod(待投产)->prod(投产):

普通晋级(test->preprod、dev->preprod)

dev、test、preprod之间的晋级由项目组根据研发进度按需展开;一般来说,晋级制品应当满足单元测试、代码合规、安全等各项质量门禁要求。

投产晋级(preprod->prod)

项目组通过生产变更单的方式将待投产镜像制品自动晋级到投产仓库中,最后由部署部门从投产仓库中获取镜像进行部署运维。

结束语

制品库是连接持续集成与持续交付的关键实践。它提高了开发人员的工作效率和协作,同时推动 DevOps 和持续交付目标。

PaaS云镜像接入制品库管理,不仅确保了镜像制品版本的可追溯,而且加强了项目团队高效有序的协作,例如开发、测试、运维、CI/CD 人员,通过统一的制品库,按需获取版本(开发版本、测试版本、待投产版本和投产版本)。最后组织级按需设置制品库的开放程度,以及按需设置各成员的制品访问权限,提高企业数字资产保密性、安全性的同时,又保留一定的开放性,真正做到精细化安全管控。

作者介绍

熊厚余、庄鑫鑫、谢溥芸懿,农业银行研发中心系统支持部云上构建支持团队,负责PaaS云上应用构建流程建设以及制品管理研究,为各应用系统落地实施DevOps持续集成提供技术支持。


2020年6月19日,由云计算开源产业联盟指导、高效运维社区和 DevOps 时代社区联合举办的 GNSEC 2020 全球新一代软件工程线上峰会上,隆重发布了 DevOps 标准持续交付部分第七批评估结果。

中国农业银行本次参评的 5 个项目均顺利通过由中国信息通信研究院(以下简称信通院)开展的《研发运营一体化( DevOps )能力成熟度模型》持续交付部分3级评估。

7afc4f1ea3dd46a2dfb2afea5ddad155.png

中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:
  • 信贷中台项目
  • 个人网银项目
  • 分布式应用互联平台(AIR)项目
  • 增值税进项税管理项目
  • 金融小店项目

DevOps 标准共分5级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。

中国农业银行多个项目通过 DevOps 持续交付标准3级评估相关报道:

重磅!中国农业银行多个项目通过 DevOps 持续交付标准 3 级评估,相关项目能力达到国内领先水平!

线上金融 DevOps 排头兵:农行个人网银系统实践

助力技术中台数字化转型,探索农行 DevOps 实践之路

社交营销与 DevOps 共舞,农行金融小店 DevOps 落地实践

度量驱动 DevOps 转型:中国农业银行 DevOps 度量体系建设实践浅析

试点项目背后的支撑:农行研发中心 DevOps 工具链集成揭秘

数据驱动,让 DevOps 看得见,摸得着

c5701199a910d6d726643dc2f707ac6f.png点个“在看”,少个bug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值