中国工商银行DevOps工具链建设之路

标签: 中国 工商银行 devops | 发表时间:2021-03-28 16:50 | 作者:大卫
出处:http://weekly.dockone.io

【编者的话】新技术发展迅猛,金融产品和服务模式创新加快,快速增长的产品需求与有限研发资源之间的矛盾长期存在。如何提高研发效能,快速上线业务需求,支撑业务创新发展,是金融机构产品研发部门面临的挑战。传统银行的产品、架构体系庞大复杂,对研发效能提升带来更大挑战,无论流程改进还是工具支撑,都需兼顾现有系统的安全稳定运行。系统建设是在不断重构中向前演进,DevOps工具链建设也是如此。首先要适应当前流程和用户工作习惯,然后工具改进和流程改进同步进行,工具体系不能脱离技术和管理现状,而是要随着技术和管理的优化不断改进。因此打造适合自身的DevOps平台,对传统大型研发企业来说尤为重要。

DevOps平台探索之路

中国工商银行一直致力于研发效能的提升,从2009年开启了工具化的建设道路,对应用版本构建和部署进行了工具统一,并对构建和部署行为进行了约束及一定程度上的标准化,应用版本构建和部署效率得到了较大提升。2013年开始了持续集成之路,使用Jenkins串联了构建、部署,并推出了代码扫描、单元测试、自动化测试、冒烟、打桩等一系列自动化工具,持续提升版本流转效率。2018年初首先从持续交付工具链开始,启动了DevOps平台建设。经过两年左右的建设,打通了开发、测试、运维,实现了版本构建、质量保证、交付、交接及投产部署的自动化、线上化。

DevOps平台建设成果

中国工商银行的工具链总视图主要包括开发者门户、持续交付流水线、运维平台等。开发者门户是工具链的“一站式”门户,为开发人员提供统一的操作入口;持续交付流水线打造了产品研发、质量保证、投产部署的价值交付链,通过Jenkins将各项基本服务串接起来;运维平台统筹生产运维、应用监控、性能容量等领域,为投产上线、日常运维提供服务。

概要视图


开发者门户

基于现有系统和工具进行集成、整合、创新,建设面向开发人员的门户,实现从需求受理到版本发布的一站式、可回溯、自动化处理。通过信息聚合,实现需求维度的端到端研发支撑体系,将局部能力整合为组织级能力,通过标准化的流程、自动化的体系,提升研发流程的自动化程度。

流水线

中国工商银行搭建了一套适合我行版本管理流程的自动化版本持续交付系统,实现版本的持续集成、持续交付、持续部署。通过流水线,单个应用完成构建、部署、冒烟测试的周期缩短至2小时,部署时间缩短至0.5小时,目前已在各产品线全面推广使用。

通过持续交付系统贯通各个环节,将软件交付过程通过可视化的方式呈现给用户,展现了从代码提交、代码扫描、构建、部署、自动化测试、交付的整个过程可视化,降低协作沟通成本。

  • 提交构建流水线:

  • 持续集成流水线:

  • 交接部署流水线:


质量门禁

提交构建流水线(“第一次就做对”):在开发提交代码变更时自动触发流水线执行,检测开发人员本次代码提交的质量,例如代码扫描是否有高级别的问题、单元测试行覆盖率是否达到一定的标准,协助开发者发现问题,并提醒修改,各指标必须达标才能将代码合入主干,降低发现问题和解决问题的成本。

持续交付流水线(“交付准出门禁”):多人代码合并到主干后,对主干分支开展代码扫描、构建、部署、自动化测试等环节并获取测试结果,在提交构建门禁基础上增加了冒烟测试成功率指标,所有指标达标才能将版本交付出去,确保交付质量。所有门禁指标分级制定,给团队成长的台阶。

运维平台

统一的生产运维平台,集生产运维、应用监控、性能容量等于统一门户,为投产上线、日常运维提供服务。

标准化建设

通过两年多的DevOps实践,逐步暴露出应用代码管理、版本构建、生产部署等领域的标准化程度不足,制约了工具平台的自动化、智能化提升。2020年,工商银行建立了交付过程的标准化技术规范,同时对工具链和各系统进行标准化重构。目的是降低系统使用门槛,赋能产品研发团队。

聚集流动效率

目标实现真正意义上的自助化,降低操作门槛,减少手工介入。由开发团队驱动版本全流程运转,真正实现“谁开发,谁运维”,配置管理、测试、运维工具提升,各类运维服务自供应。

标准化发布单元

标准化改造是对当前版本管理的一次重新定义,需要试点应用结合业务架构、应用架构的充分解耦,对代码库组织、构建方式、部署目录结构、应用环境定义等进行标准化改造。

构建、部署即代码;构建、部署过程云化

以“构建部署过程即代码”为目标,即构建、部署过程使用标准的yaml文件描述构建定义。通过构建、部署分层的构建云、部署云建设分模块、分层级的标准化工具。

组件化流水线

标准化组件接入,设立组件接入规范;重构流水线以达到灵活可编排,“横向可定制流程,纵向可定制任务”。

度量平台

可视化与度量:基于各系统数据打通,以可视化赋能研发改进,多维度、可定制、全程透明,不同角色,各取所需。

全功能视图


未来展望

目前整个DevOps工具链的建设,还是遵循既有工作流程。随着工具的完备,流程会逐步发生转变,很多管控环节的要求将会消失,同时对工具平台会提出更高的要求,工具体系将进入良性循环。我们希望通过不断完善工具支撑,不断消减人工介入,最终将发布和运维的能力赋予产品团队,让产品团队从交付版本向交付用户可使用的服务转变。同时,进一步加强运维和开发的融合,未来要以SRE思想推动运维转型,通过一系列DevOps工程建设和方法落地,打造自动化、自助化、智能化的DevOps平台,降低软件交付门槛,赋能产品团队,实现开发和运维深度融合,助力IT效能提升。

原文链接: https://mp.weixin.qq.com/s/qqOHrc4QWc4wnNO3sS8BXg
作者:龚光庆,中国工商银行软件开发中心总经理助理

相关 [中国 工商银行 devops] 推荐:

中国工商银行DevOps工具链建设之路

- - DockOne.io
【编者的话】新技术发展迅猛,金融产品和服务模式创新加快,快速增长的产品需求与有限研发资源之间的矛盾长期存在. 如何提高研发效能,快速上线业务需求,支撑业务创新发展,是金融机构产品研发部门面临的挑战. 传统银行的产品、架构体系庞大复杂,对研发效能提升带来更大挑战,无论流程改进还是工具支撑,都需兼顾现有系统的安全稳定运行.

Service Mesh 在中国工商银行的探索与实践

- - DockOne.io
微服务架构是当今互联网和金融机构渐趋主流的系统架构模式,其核心是集成服务通信、服务治理功能的服务框架,微服务框架在持续演进同时,服务网格(Service Mesh)作为一种新型的微服务架构,因架构灵活、普适性强,被认为具有较好发展前景. 中国工商银行(后简称工行)主动探索服务网格领域,从 2019 年开始服务网格技术预研工作,通过对服务网格技术深入研究和实践后,于 2021 年建设了服务网格平台.

中国工商银行银行卡被盗用后,处理过程实录

- Nickcheng - 博客园-Duiker's Blog
最近发现自己工商银行的银行卡消磁了,所以去工商银行的换张卡,结果发生了一连串杯具. 换完卡,查询了一下余额,发现少了几千块,打印详单吧,确认是被盗用了,联系工行,打110报警,结果步步都是个坎,看来老百姓别没事麻烦这些大爷. 续1:在工行详单中通常会打印出所在的地区号和网点号,但是对于普通老百姓来说,给出的这些数字,你想了解到底是在那个地方被盗刷了,您就得打95588这个电话了,发生问题的两笔业务的地区号分别是4600和4000,查询后确认分别是北京和深圳.

DevOps 实战

- -
DevOps 的 3 个支柱. 第 1 步:寻找合适的试点项目. 第 3 步:快速建立初期成功. 第 4 步:快速展示和持续改进. 第一阶段:每次提交触发完整的流水线. 第二阶段:每次流水线触发自动化测试. 第三阶段:出了问题可以在第一时间修复. 第二步:定义指标并达成一致. 第三步:建立自动化执行和检查能力.

DevOps实践一:DevOps概述 - 知乎

- -
DevOps系列文章包含了本人在工作中的实践和认知理论,现总结并分享出来,希望能够给“迷你型”团队在DevOps上的实践提供一个“反面教材”和可行性建议. 本系列主要包含以下文章(过程中可能也会有所更改):. DevOps实践一:DevOps概述. DevOps实践二:持续集成、持续交付和持续部署.

『DevOps 最佳实践』 — DevOps 实践

- -
Culture – 文化:公司各个角色一起担当业务变化,实现有效协作和沟通;. Automation – 自动化:在价值链中尽量除去手工步骤;. Lean – 精益:运用精益原则更频繁地交付价值;. Metrics – 度量:度量并使用数据来优化交付周期;. Sharing – 分享:分享成功和失败的经验来相互学习.

让DevOps起作用

- - InfoQ cn
根据Neil Garnichaud在Dr. Dobb’s上发表的文章《 究竟什么是DevOps》,想要频繁地发布高质量的软件,首先需要弄清如何使开发人员、QA人员和运营人员在一起协同工作. 在软件公司里,特别是在开发基于云的网络应用, 而又缺少有才华的、合格的员工的公司中,压缩的时间进度和最低限度的QA是压力的根源.

『DevOps 最佳实践』 — DevOps 平台 - Ledge DevOps 知识平台

- -
DevOps 数字化转型框架. 企业为什么需要一站式综合研发平台. 越来越来多的组织开始搞敏捷和 DevOps 转型,打造了很多的 DevOps 基础设施,比如有管理需求的 Jira, 有持续集成的 Jenkins,有容器编排的 K8S 等等. 可是这纷繁复杂的 DevOps 工具链,同时也给企业带来新的困扰.

DevOps,你真的了解吗?

- - IT经理网
与大数据和PRISM(NSA的监控项目之一),DevOps(开发运维)如今是科技人士挂在嘴边的热词,但遗憾的是,类似圣经,每个人都引用DevOps的只言片语,但真正理解并能执行的人极少. 根据CA的一项 调查,45%的受访者并不了解DevOps的含义,其余则有17%认为DevOps只不过是炒作. DevOps如今几乎成了创新的同义词,但其原本的含义却在业界的流传中被人们弃之脑后.

Kubernetes 会不会“杀死” DevOps?

- - InfoQ推荐
DevOps 这个概念最早是在 2007 年提出的,那时云计算基础设施的概念也才刚刚提出没多久,而随着互联网的逐渐普及,应用软件的需求爆发式增长,软件开发的理念也逐渐从瀑布模型(waterfall)转向敏捷开发(agile). 传统的软件交付模式(应用开发人员专注于软件开发、IT 运维人员负责将软件部署到服务器运行),再也无法满足互联网软件快速迭代的需求.