全部产品

如何快速实现持续交付

随着企业快速发展和竞争的加剧,产品和协作的复杂度提升,业务对研发效能的期望越来越高,如何提高团队软件交付速度都要求企业具备快速响应的能力,这正是推动持续集成、持续交付、持续部署的动力。

1、用户的诉求或问题

  • 团队没有统一的研发管理流程,工具无约束,遵守流程规范基本靠自觉;

  • 发布时间长,需要人工介入多,无论从时间成本,还是由于人工介入带来的风险都很大?

  • 缺乏统一的研发平台,自动化程度低,没有有效的质量保障体系,基础设施保障的建设往往落后于企业的快速发展?

  • 业界有很多很好的实践,但是复用到自己团队却很难,无从下手。

2、云效持续交付架构图

云效,企业级一站式DevOps解决方案,源于阿里巴巴先进的管理理念和工程实践,提供从“需求->开发->测试->发布->运维”端到端的协同服务和研发工具,支持多种部署形态。通过代码扫描、代码评审等能力,助力企业持续、快速、高质量地交付软件。

持续交付1

步骤

1.晨会上团队基于精益看板进行需求、任务对齐,完成任务指派;

2.开发同学根据特性开发,创建变更分支;

3.通过线下或云端开发环境进行编程工作,然后提交代码;

4.代码提交自动触发代码扫描,并做完分支级别的验证,发送给指定代码评审员进行评审;

5.完成评审的代码自动触发集成发布流水线,自动化的完成构建,生成Docker镜像,分别在开发环境、集成环境及预发环境进行部署,完成相应的验证工作;验证完之后处于待发布状态,触发上线审核流程,运维完成审核发布上线;

6.过程中任何问题通过钉钉,遵循no news is good news的原则,自动化地及时反馈到指定负责人,做到准确反馈、即时响应,快速恢复。尽量避免垃圾短信式反馈,过多的噪音,反而会降低协作的效率。

3、场景介绍及操作指南

第一步:通过代码平台进行代码托管和评审

创建一个代码库

你可以开始创建自己的第一个仓库,通过代码库列表右上角【新建代码库】;

交付2

基于特性分支编码

基于平台新建分支,开发进入编码阶段,可以通过代码平台在线方式或者本地编码模式,代码完成后提交远端分支;在代码提交时可以使用#ID语法建立代码和任务的关联,如gitcommit -m "#id"

交付3

开始代码扫描

由于设置了代码提交触发扫描检查,这里可以清晰看到检查的运行情况;

交付4

发起代码评审

通过新建合并请求发起代码评审,强制代码评审有利于提高代码质量,帮助开发人员尽早发现问题,提高问题修复的效率;

交付5

代码合入集成分支

分支通过代码评审后,合并到集成分支,即将进入编译、部署、验证、发布阶段;

第二步:通过流水线实现持续交付

创建一条流水线

点击流水线列表右上角【新建流水线】按钮,您可以快速选择一款适合企业场景的模版;

交付21

编辑流水线场景

通过流水线编辑功能,结合企业场景快速配置以下2条流水线:

•集成环境流水线

交付22

【步骤说明】

*触发方式选择:代码提交触发;

*集成分支开始代码扫描和单元测试;

*测试通过开始代码构建;

*编译通过部署测试环境;

*测试同学测试验证;

*验证通过代码合并发布分支;

•发布环境流水线

交付24

【步骤说明】

*发布分支开始构建编译;

*编译通过部署预发环境;

*预发环境验收测试;

*验证通过开始发布单审核;

*审核通过部署生产环境;

配置质量红线

添加红线卡点,当前测试任务必须达到标准才能进入下阶段;例如【代码扫描】选择“添加红线”,可以设置:

•Blocker的问题为0

•Major的问题为0

•Critial的问题为0

交付31

开始运行流水线

开始触发集成分支流水线,开展代码扫描和单元测试,通过流水线可以直观看到扫描结果是否成功,详细结果可以通过测试报告查看;

交付41

质量红线结果

测试任务会根据对应的质量红线判断,如果不通过,无法进入流水线下一阶段;考虑在一些特殊的情况下,未通过质量红线的流程也需要继续往下执行,云效也提供了“跳过”的能力,可以由管理员将红线跳过。

交付43

查看流水线运行结果

所见即所得,流水线运行过程直观展示,企业可完整看到当前流水线运行所处阶段和场景;

•集成分支流水线

交付44

•发布分支流水线

交付45

钉钉消息通知

基于任务可以快速配置钉钉消息通知,可以便于在流水线执行过程中及时接收消息通知,快速定位排查和解决问题;

交付46

总结

通过【代码平台和流水线】组合出击规范代码管理和应用发布,快速实现持续交付。