DevOps是近几年非常热门的话题,企业如何成功实施DevOps,是企业迫切想要解决的。在2017杭州云栖大会企业高效研发实践专场上,阿里巴巴研发效能事业部高级技术专家章屹,为大家分享了《云效2.0助力企业成功实施DevOps》议题,为大家提供了解决思路和实施方案。
嘉宾简介
章屹:阿里巴巴研发效能事业部高级技术专家。毕业于清华大学电子工程系硕士,多年从事软硬件的测试、开发、系统设计工作。现为阿里云-云效平台业务负责人,负责研发效能事业部的技术商业化工作。
DevOps定义
从维基百科定义可知:DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。DevOps经常被描述为“开发团队与运营团队之间更具协作性、更高效的关系”。
DevOps重新定义了开发、测试、运维三个团队的关系。那这三者原来的关系是什么呢?
开发、测试、运维这三者之前的关系是一种非常垂直的,相互之间是一个流程化的工作模式,简单讲就是开发做完交给测试,测试做完交给运维,哪个环节出了问题,谁背锅,非常清晰。因为当时整个模式保证的是质量不能出问题,这是核心理念。但是这种方式同时也带来了很多问题:主要体现在产品迭代速度跟不上。这种模式要求你的职责划分很清晰,当你的需求拆的非常碎以后,你每个需求都需要经过这种模式进行,就是测试发现问题找开发,开发再去解决,到了运维这发现了问题,又反馈给测试,这样反反复复,无疑增加了N多工作量。
DevOps模式中,开发、测试、运维的职能发生了明显变化。DevOps也可以叫DevTestOps,就是业内常说的开发自测自运维。当要实现开发自测自运维的时候,我们需要测试团队和运维团队,以及云效这样的工具平台,一起为开发同学进行赋能,来实现真正的DevOps。
何为云效?
云效,一站式企业协同研发云,源于阿里巴巴多年先进的管理实践理念(精益创业、看板方法、Scrum、中台战略、狼团队)和工程实践(微服务、DevOps、CI/CD、自动化测试),提供从“需求->开发->测试->发布->运维->运营”端到端的协同服务和研发工具支撑。升级后的云效2.0支持公有云、专有云和混合云的协同研发,助力企业产品快速创新迭代和研发效能升级。
如果使用云效这样的工具平台,一天之内可以完成开发、测试、发布吗?答案是可以的。
云效操作后台,可以创建项目,填写项目信息,开发在本地机器上进行开发,写单元测试,然后CI代码,会收到邮件告知的漏洞信息。接着搭建测试环境,开始测试,最后提交集成,集成自动化响应通过,就可以发布上线。
这个就是1天之内,1个项目需求在云效平台从开发到测试到发布到上线的全流程管理。
大家可能会有疑问,在这样一个快速研发背景下,实施结果如何呢?
我们看下图阿里巴巴某个事业群的数据。图中右下角所示集成验证耗时,原来一个月发布一次,或者两周发布一次,从2011年开始,云效基本上一周发布一次,现在基本上做到了4个小时发布一次。
我们知道发布快了,质量不能下降,故障不能上去。所以我们依然要看质量。如图所示,我们看到这个事业群,从2011年-2015年,开发故障数是每年都在下降的,同期的应用运维故障个数也在大幅下降。
那么开发自测自运维这种模式的过程数据又如何呢?我们发现,50%的项目小需求测试不接手,开发自测来做,主要的运维工作都交给开发完成。
从以上数据可以看出,使用云效实施DevOps,不仅效率提升,研发质量也得到了有效保障。
云效1.0集中在持续集成持续交付上,主要服务了银行,地产等行业标杆客户。
云效2.0会涉及到持续反馈和持续部署。持续反馈包括需求、项目、任务、风险管理,整个需求的拆分,任务的管理,都用敏捷研发模式去做。持续部署涉及到应用运维,应用监控,基础运维和基础监控。
另外,我们会针对每个行业,每个企业需要发布的速度提供服务,按需投产,达到投入产出价值最大化。