近 几年,微服务、云计算等热词不断的冲击我们的视线。财会平台也顺势而为,将业务进行了垂直拆分,解耦臃肿的单体应用,搭建起平台级微服务体系。依托于此,财会平台完成了多个微服务产品的云端上线,更好的支撑了业务发展和实现了业务数字化转型。
架构的微服务化对产品交付能力提出了更高的要求。如何持续提升产品交付质量及效率、如何不断提高自动化水平,这是科技研发面临的一个重要挑战,亟需在科技领域也来一场数字化转型。DevOps 就是这个科技数字化转型的解决方案。
农业银行“增值税进项税管理”项目组在财会平台微服务和 DevOps 实践过程中产生了“1+1”研发模式,即“1套研发架构 + 1套研发流程”。
1 套研发架构
我们在“微服务”实践过程中,针对联机和批量自主研发了“财会领域微服务应用开发中台”,功能主要包括 Redis Cache、集成 Swagger、通用双人复核框架、幂等性支持、XA分布式事务、RPC熔断、参数化单元测试用例的代码生成器、ATP日志生成、全局异常处理、交易码操作码管理、CORS跨域支持、基于Ribbon客户端负载均衡实现的服务间调用、代码生成器、对接我行监控平台、短消息服务平台、文件存储对接、日志平台对接、接口管控平台等框架级能力等150多项组件和框架级功能。
这些能力完全抽象于开发中台,新建项目只需结合项目组自研的代码生成器,利用开发中台提供的“脚手架”能力,复用已有最佳实践,可分钟级的快速搭建一个全新微服务应用,让开发者将全部精力放在业务代码实现上。
在此基础上,通过与平台 Nginx 前端、Eureka 服务注册中心、统一用户鉴权的 Zuul 网关等现有微服务基础设施相整合,形成了“乐高式”快速搭建部署新产品的模式。
财会平台 DevOps 实践过程中项目级的多项功能都是基于开发中台实现的,比如通过集成开源组件 Swagger,向测试团队和ATP平台开放接口规范、通过框架级实现单元测试自动化参数代码生产器,赋能各个微服务模块的单测案例编写、通过ATP案例日志输出,提供ATP平台基础测试案例等功能。
1 套研发流程
在研发中心 DevOps 实践中,组织级贯通了 ITA、TFS、ATP、Jenkins、ACMS、星云等工具和系统,在流水线引入 Junit、Eslint、Jtest、Checkmarx 等代码质量检查工具,为提高项目研发的自动化水平和产品质量赋能。
项目组基于此,在实践中形成了一套端到端的项目研发流程:需求分析(前后端两套Wiki模板)→详细设计(前后端两套Wiki模板)→需求工作项拆分(基于详细设计的TFS需求条目化)→任务代码关联(TFS工作项和Git特性分支)→分支任务开发(站会保障进度)→分支提交远程(Git特性分支流水线保障代码提交质量)→分支归并(Git长分支流水线保障主干分支代码质量)→开发环境构建和部署(开发环境构建镜像以及部署流水线)→测试环境部署(测试环境部署流水线)→灰度部署(ACMS整合灰度环境部署流水线)→生产环境部署(ACMS整合生产环境部署流水线)。
下面谈谈各个研发环节:
需求分析和详细设计基于项目组自行搭建的Wiki环境编写,项目组财会平台项目的开发过程中逐渐演进出一套前端和后端的需求分析和详细设计模板,保证开发团队交付的详细设计文档既作为开发人员的后续开发的伪代码、也是测试团队案例编写的参考指南。
通过需求条目工作项拆分以及 Git 特性分支模型关联,保证需求和代码全程可追溯,需求和代码版本一致且事务同步。在此基础上,引入看板站会的形式,监控需求任务开发进度,保障项目按期推进。
通过 Git 特性分支和主干分支流水线上的代码合规扫描、安全扫描、单元测试三道质量门禁以及一道人工代码评审门禁,保障开发人员提交到主干分支的代码质量,无法达标的代码严禁并入主干分支。
接下来就是4条产品构建和部署流水线。开发环境的流水线构建出的镜像,通过各环境验证,逐步晋级到生产环境,保证产品的所测即所投。同时,开发、测试、灰度、生产四套环境的部署都是全流程自动化执行,大大提高产品交付效率,也降低了投产的操作风险。
财会平台“1+1”研发模式,形成了平台级微服务应用开发的“套路”,可推广可复制可落地,是项目组多年“微服务”和 DevOps 实践的结晶。后续我们也会在实际项目研发的过程中,不断扩充和完善这项基础能力,不断为研发赋能。
段博,中国农业银行研发中心财务领域资深技术专家。在财务核算和财务管理领域超过10年的研发和管理经验,牵头增值税进项税管理项目DevOps贯标工作。
刘醉,中国农业银行研发中心财务领域项目经理,带领“增值税进项税管理”项目在行内首批实践DevOps,并在相关领域积累了丰富的建设经验。
姬素丽,中国农业银行研发中心财务领域技术经理,负责“增值税进项税管理”项目DevOps三级贯标落地实施工作,在分支管理、流水线设计、持续集成持续部署方面等DevOps建设方面具有丰富经验。
张艳,中国农业银行研发中心DevOps建设工程总体组成员,增值税进项税项目贯标实施者,拥有丰富的项目管理、敏捷开发等实践经验。
李莉,中国农业银行研发中心高级专员,一直致力于财务领域的研发工作,相信:软件让繁琐变简单。
刘帅,中国农业银行研发中心高级专员,具有多年财务领域研发经验,爱学习,爱钻研,希望明天的自己比今天更强。
毛雅佼,中国农业银行研发中心高级专员。参与增值税进项税管理DevOps三级贯标规范体系建设,秉持敏捷精益的工程思想,助力组织级DevOps文化推广。
2020年6月19日,由云计算开源产业联盟指导、高效运维社区和 DevOps 时代社区联合举办的 GNSEC 2020 全球新一代软件工程线上峰会上,隆重发布了 DevOps 标准持续交付部分第七批评估结果。
中国农业银行本次参评的 5 个项目均顺利通过由中国信息通信研究院(以下简称信通院)开展的《研发运营一体化( DevOps )能力成熟度模型》持续交付部分3级评估。
中国农业银行通过 DevOps 标准持续交付部分的 3 级评估的项目,分别是:
信贷中台项目
个人网银项目
分布式应用互联平台(AIR)项目
增值税进项税管理项目
金融小店项目
DevOps 标准共分5级,持续交付部分如果能达到 3 级已经是国内领先水准,这代表着中国农业银行在参评项目的持续交付能力达到国内领先水平。
中国农业银行多个项目通过 DevOps 持续交付标准3级评估相关报道: