“五型五秀”: 满眼生机转化钧,天工人巧日争新 ——C3“全场景配置管理+持续集成”探索实践之路

为提升农行开发中心软件交付效率和质量,应用开发五部与项目管理办公室联合发起了全流程可靠持续交付的方法、工具研究与实践项目,目标是以C3项目群为案例,探索适合开发中心的全流程软件研发管理和版本交付方法,提升可快速交付的能力。

0
3059
本文作者:王丽敏、葛江浩、宋绍磊
文章转自:https://mp.weixin.qq.com/s/VzTFw_lsbdayor8Bxd-cJg

确立目标

为提升开发中心软件交付效率和质量,应用开发五部与项目管理办公室联合发起了全流程可靠持续交付的方法、工具研究与实践项目,目标是以C3项目群为案例,通过开展方法论研究、配套工具研发和项目实践,分析软件产品交付价值流中的效率提升点和风险点,探索适合开发中心的全流程软件研发管理和版本交付方法,提升可快速交付的能力。

直面挑战

之所以选择C3项目群作为研究对象,是因为该项目群几乎涵盖了新方案需要支持的所有场景——多团队协作、多项目并行、多技术体系并用、多产品/模块协同、多环境并存、多时点交付。项目组选择挑战这个最具不确定性的项目群,就是为了将来方案能具备普适性。

探求模型

经过探索与实践,项目组研究了业内主流的分支模型,结合C3研发特点与常见研发场景,基于Git提出了适合全场景的配置管理模型。

该模型具有以下优点:

1.支持全场景研发模式:支持瀑布、敏捷两种研发模式;

2.支持大团队协同开发:团队开发分支与功能特性分支相结合,适合跨职能组的大团队并行协同开发;
3.强制多级版本归并:功能分支必须按序合并到测试分支、窗口分支和主分支,保证主分支处于可靠状态;
4.强制两级代码审核:设置了跨团队代码和公共核心代码的强制评审机制,保证了代码质量。

探寻应用

基于前期确定的最优模型,项目组从开发测试和生产版本交付两方面入手,提出了从任务分配、分支建立、代码提交、版本合并、冒烟测试到构建发布的测试版本交付流水线模型;提出了从投产申请、预投产发布部署、自动化版本验证到投产版本构建的生产版本发布流水线模型。目前已基于TFS落地实现了C3前台的持续交付流水线,正在进行试点。

1.自动预构建:提前发现代码构建错误,避免问题代码入库;

2.按需持续集成:支持开发人员持续发布、定时发布及一键回滚;
3.全流程可追溯:将工作项、分支、代码提交、合并、构建、发布等进行关联,实现从代码开发到测试、投产的全流程可视化追溯;
4.多环境单一代码来源:将源代码与环境配置分离,部署时动态合并,将版本与环境解耦,避免测试配置带入生产;
5.全流程线上协同作业:支持工作项流转、代码合并、审核、构建过程中的全线上协同操作,提高团队协作开发效率。

在完成C3前台配置管理与持续集成的研发规范与手册,并在部分职能组进行了培训与试用后,充分验证了推广试用的可行性与投产版本的准确性。

试点应用

基于前期成果,应用开发五部技术委员会召开了评审会,针对C3前台配置管理与持续集成方案进行了评审,五部管理团队、主要技术骨干和项目管理办公室的部分专家参加了评审会。

会上项目组对C3前台配置管理与持续集成方案及部门内的推广试用计划进行了阐述,与会领导和同事在新的研发模式、流程、操作、代码管理及风险管控等方面提出了问题和建议,展开了深入交流和沟通。与会领导肯定了前期工作成果,同时对项目组提出了要注意风险管控、加大宣贯力度的要求,要正确处理敏捷和传统研发模式的关系,总结适合开发中心的最佳实践。

针对当前的工作进展情况,领导部署了配置工具切换、平台深度应用、研发流程再造的三步走推广应用策略。

6月19日,应用开发五部开展了C3前台配置管理与持续集成操作培训,普及了基于TFS+Git的配置管理和测试、生产版本发布流程,并明确了部门内的具体推广计划。

前景展望

有了前期的积累,下一步项目组将继续对敏捷研发展开深入的理论研究与探索实践,重点在如下方向进行突破:一是C3后台版本持续集成和自动化发布方面,解决TFS不支持AIX平台等技术难题,实现后台的持续集成。二是丰富持续交付流水线,实现自动化代码检查、冒烟测试、自动化功能测试、灰度发布等功能的集成。三是全面贯通敏捷研发全流程,实现从需求管理到投产发布的一体化管理。

路漫漫其修远兮,吾将上下而求索——敏捷研发,继续前行,助力开发中心渐进式实现全流程“双模”研发转型。

作者

▲王丽敏

▲葛江浩

▲宋绍磊


请关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的信息