百度持续交付案例—微信语音分享实录
2019-12-26
来源:百度敏捷教练
表自动化执行,红色的箭头是人工干预执行的过程,比如提测、部署、上线等阶段触发是需要人工做决策的。在每一个stage里面是我们的jobs,这些jobs就可以理解为去做一件特定的事情,比如说去部署一个环境,或跑某种类型的测试,或者是去做上线工作,这些都是不同类型的jobs。我们这些jobs之间也可以定义串行或并行的关系,也可以去标记成功、失败的状态。
有了流水线和这些jobs,是不是就完了呢?实际上,我们还要更关注它的质量,流水线不能完全自动、直接的流转下去。我们要去把控每一个环节,它的质量要达到严格的质量标准,每个环节都要做到质量内建。比如说我们会要求,前一个阶段,如果失败了就不能流转到下一个阶段;前一个阶段,如果它的测试通过率不达标,它的测试覆盖率没有达到要求,同样也是不能流转到后面阶段的。
第二部分是我们如何去优化这个流水线?
实际上,我们就要去把我们建设的各种能力做注入。什么是各种能力,比如说我们自动化测试的能力,包括我们自动化部署环境的能力,我们自动完成复杂上线的能力等等。我们要把它的挂接在流水线上,变成一个完整的价值流。
这个截图,大家可以看到,我们的自动化覆盖到的过程:
整体分为上下两个部分。上面我们叫主干持续集成。包括从源代码,到这种编译,到这种单元测试,到模块测试到系统化测试,整个是主干上的所有相关的活动。那这个图的下半部分,我们叫分支发布,拉出分支来之后,我们在各个环境里边做部署,以及这个环境上做这种冒烟的测试等等的过程。
大家可以去发现整个流水线非常多的内容是非常相似的,比如说我们部署测试环境,部署沙盒的环境,部署预上线的环境,甚至部署内网的环境,外网的环境。我们说,这种部署的过程中非常类似,所以说呢,我们可以用相同的部署的模式、部署平台,去实现这种部署的工作,这样的话,去提升这种部署的自动化的水平,并且通过部署的一致性降低风险。
下面给大家讲一下第三个方面,我们整个百度交付工具链:
从上到下可以分成四个大的部分:
第一部分是我们的项目管理工具iCafe:
这个工具是做需求Backlog管理、迭代管理、Story拆分,项目计划安排,可视化电子看板、迭代回顾等等,是支撑敏捷项目管理工作的。
第二部分绿色部分是与开发相关的一系列工具:
iCode的是我们内部的一个代码托管平台,做代码的库的新建,代码库的查找和提交代码。
代码提交后是存储在我们的代码库里面有SVN库和GIT库,这两个库之间,是通过Subgit做这种双向同步的。
在代码库之上,是我们相关的代码评审的平台,SVN对应的是我们叫Cooder这么一个的平台,GIT是对应Gerrit,大家应该是非常熟悉这个代码评审的平台。
那么这个平台本身其实就是为了保证我们代码的质量,我们任何一个代码提交,首先要通过两层检验:
第一层检验的是代码规范检查,看代码本身是否符合百度编码规范。
第二层检验,是我们人工进行Code Review,去做这种代码设计、质量、问题的人工检查。
第三层是我们今天核心要看的部分,就是持续流水线的这个部分:
图中红色的部分,就是我们内部做流程编排的最核心的一个平台,就是你从代码提交到你每一步测试,每一步部署等各种活动的调用。这些活动是由谁组织呢?就是由这个AGILE平台来去组织,它就是我们整个交付流水线的核心中枢,所有的工作都是由它统一来做安排和调度。AGILE之后是一
免责声明:
1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!
-
延伸阅读:
-