
制品库不仅承担应用系统编译依赖组件的管理,而且对应用系统编译输出的制品进行了规范管理,从而替代了传统粗粒度的制品管理方式(比如搭建简易 FTP 来提供制品下载),解决了传统管理方式下制品版本无法跟踪、无法提供制品与组件视图等问题。
随着我行 PaaS 云建设进展,越来越多的应用系统实现了云构建和云部署。在应用系统上云过程中,镜像制品规范管理是基础保障。本文主要分享 PaaS 云镜像如何纳入制品库管理以及相关规范要求。制品库管理框架
- abc-docker-dev(开发仓库,用于管理开发版本,可上传)
- abc-docker-test(测试仓库,用于管理测试版本,可上传、晋级)
- abc-docker-prepord(待投产仓库,不可上传,只能晋级)
- abc-docker-prod(投产版本,不可上传,只能晋级)
通过以上制品分类、管理规范、流程策略等多措施,确保了镜像制品的版本可追溯性以及安全管理。
Jenkins 应用镜像制作流水线对接制品库
- 通过Jenkins配置CI、CD任务,CI任务包括源码仓库配置、构建触发条件配置、构建配置等,CD任务包括部署YAML配置、构建环境配置、部署命令配置等;
- 在TFS中,配置Jenkins连接信息、Jenkins作业信息等,然后通过手工触发或者设定的时间等方式触发持续集成/持续部署;
- TFS调用Jenkins进行构建;
Jenkins CI服务从TFS源代码仓库将源码下载下来,构建应用包,然后使用应用包构建应用镜像,之后把构建出来的镜像推送到镜像库,镜像推送到制品库代码实现:
- Jenkins CD服务通过自动化部署命令触发PaaS平台从镜像仓库中拉取镜像部署到开发测试PaaS云中进行部署。
- 最后Jenkins将构建的日志发送给TFS,在TFS中实时查看构建的相关报告。
TFS 应用镜像制作流水线对接制品库
由于TFS工具集成了docker以及k8s等云部署插件,故项目组也可以直接在TFS平台定制实现云构建和云部署流水线,具体步骤如下:
在TFS配置CI、CD任务,CI任务包括源码仓库配置、应用构建配置、镜像构建配置、镜像推送配置等,CD任务包括K8S服务连接配置、镜像仓库连接配置、部署命令配置等;
在TFS中,通过手工触发或者设定的时间等方式触发持续集成/持续部署;
TFS CI服务下载源码构建应用包,然后使用应用包构建应用镜像,之后把构建出来的镜像推送到镜像仓库,下图为某个应用系统在TFS中的编译、docker镜像制作以及镜像上传制品库流水线:
TFS CD服务通过自动化部署命令触发PaaS平台从镜像仓库中拉取镜像部署到开发测试PaaS云中进行部署。
最后在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级评估。
- 信贷中台项目
- 个人网银项目
- 分布式应用互联平台(AIR)项目
- 增值税进项税管理项目
- 金融小店项目
DevOps 标准共分5级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。
中国农业银行多个项目通过 DevOps 持续交付标准3级评估相关报道:
重磅!中国农业银行多个项目通过 DevOps 持续交付标准 3 级评估,相关项目能力达到国内领先水平!
线上金融 DevOps 排头兵:农行个人网银系统实践
助力技术中台数字化转型,探索农行 DevOps 实践之路
社交营销与 DevOps 共舞,农行金融小店 DevOps 落地实践
度量驱动 DevOps 转型:中国农业银行 DevOps 度量体系建设实践浅析
试点项目背后的支撑:农行研发中心 DevOps 工具链集成揭秘
数据驱动,让 DevOps 看得见,摸得着
