百度持续交付案例—微信语音分享实录
2019-12-26
来源:百度敏捷教练
今天我跟大家分享是百度开放云。百度开放云,跟AWS,跟阿里云、腾讯云一样,是一个优质的公有云服务平台,它不单纯是一个云存储系统,百度开放云到现在为止,已经拥有了计算网络存储CDN,中间件数据库,数据分析,多媒体等等几十款云计算的产品和解决方案。
百度开放云整体分为三个大的服务的模块,一是基础服务,二是大数据,三是人工智能领域,是一个规模大技术复杂的产品。在这么短的时间能开发出这么大规模的产品,我觉得有两方面依赖因素:
首先是技术的积累,因为大家知道,其实百度本身就是一个云的公司,或者叫云基因的一个公司,其实我们内部一直在做这种私有云的建设,我们可能在现场的服务是每天可能有60亿次的检索,每天有多少PB的这种离线的这种数据,所以公司为了支撑这么大规模的业务,内部其实是建设了很多私有云的能力。所以百度开放云就是将核心基础架构技术对外开放出来,做出来这么一个云计算的产品。
另外一点就是软件工程领域里的投入,比如说我们敏捷方法的实践,以及我们工程方法的实践,这也是我们今天分享内容的重点。接下来我们会看在这么一个大规模的产品里面,如何做DevOps,在这个产品的多个大规模项目中,如何去实现持续交付。
首先简单谈下持续交付,今天就不太谈概念性的内容,但是我会想说持续交付这个事情,如果想做成,从我们内部的经验来看,是两部分因素共同作用的结果
第一是我们一定要实施敏捷;
第二我们要把DevOps去落地。
如果说我们把敏捷作为一种精益思想是在需求研发阶段的一个实践,那DevOps就是精益在发布和运维阶段的一个实现。通过DevOps我们可以让开发和运维紧密合作,形成合力,来共同促进我们价值的交付。
在百度开放云实施持续交付的时候,我们认为主要有三个关键点:
第一,就是我们要建立一个可重复可靠的一个流水线:这是我们要对整个交付流程做一个建模,并且按精益的思想找出里边所有增值的活动,把这个增值的活动通过流水线固化下来。
第二,就是我们要实现全面的自动化,在我们流水线的基础之上,让各级的测试,各级的环境和部署,各级的发布等等这些所有的过程达到自动化的程度,从而提升它的效率。
第三,是我们要建设一个整套的工具链做全面的支持,比如在代码,流程编排,部署和监控,相关的工具要做紧密地集成。
我们先看第一部分:交付流水线
大家都知道精益思想里边其实有五个核心点,其中一个非常关键的点叫 Value Stream,就是价值流。我们可以从代码提交到经过各级的测试,到部署和上线给最终用户的交付,整个过程看成一个价值流动的过程。所以我们在持续交付里面做的第一个事情,就是要把我们这个交付流水线过程中所有增值的活动找出来,然后所有非增值的活动去掉,并想办法提升我们增值活动的效率。
这张图是我们某一个项目梳理出来的一个交付流水线的样例:
交付流水线的第一个活动是我们的代码提交,后边是我们按整个生命周期,排成了不同的阶段,比如编译和测试单测阶段,模块测试阶段,系统测试,预上线测试,生产的灰度发布,以及生产全量发布,通过阶段划分把生命周期的各个活动体现出来。流水线的好处就是能够自动化,从代码提交开始经过各级的测试,相关的各种活动都能够自动地流转下去,是一个完全自动化的作业。
我们设计的每一个stage之间其实串行的,大家可以看到图中绿色的箭头是代
免责声明:
1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!
-
延伸阅读:
-