在2018年研发效能嘉年华上,DevOps解决方案架构师李雨恭为现场的听众带来了题为《从传统到智能,企业研发效能转型之路》的精彩技术分享。在本次分享中,他重点阐述了对企业研发效能的思考,阿里巴巴DevOps实践,还有基于分布式架构的DevOps体系以及客户案例的分享。
数十款阿里云产品限时折扣中,赶快点击这里,领券开始云上实践吧!
以下案例取自云效客户,立即注册云效,体验阿里巴巴的研发速度和工作方式,一起Work Like Alibaba。
直播视频回顾
PPT请点击
以下为精彩视频内容整理:
关于企业研发效能的思考
重新思考现代企业研发中的价值,研发已经从企业内部的一种运营工具,逐步演进为一种竞争优势。
企业研发增效的定位和诉求,其中一个关键点就是技术促进业务的快速交付。包括效率的提升、质量防控、需求质量的闭环、融合、贯穿、协同研发、团队能力提升六个方面。这其中DevOps梯队、精英化测试团队、跨职能研发团队的转型是我们重点关注的方面。
阿里巴巴DevOps实践
维基百科对DevOps定义:它是一组过程,方法与系统的统称,用于促进开发、技术运营和质量保障团队之间的高效沟通和整体协作。DevOps经常被描述为开发团队与运营团队的协作、高效的关系。
基于这样的核心理念,实现DevOps主要包括如下的四个持续:
- 持续反馈。需求以小批量形式在团队的各个角色之间顺畅的流动。这里的几个关键词,小批量,团队的各个角色,顺畅的流动。DevOps促使能够在较短时间内,以小粒度的方式频繁的交付,并在这个过程中各个角色紧密协作。
- 持续集成,是一种软件开发的实践。即团队的开发成员能够经常性地集成他们的工作,每一个成员,通过每天至少一次的集成,也就意味着每个团队每天会发生多次集成,每一次集成都能够去触动自动化的构建,这其中包括自动化的编译、发布、自动化测试,他们的目的是来验证,从而尽早地发现集成中的错误。在这里的一个关键词就是尽早地发现错误。
- 持续交付。一系列的开发实践方法,用来确保代码能够快速安全地部署到产品环境中。它通过每一次改动都提交到一个模拟的产品环境中去,从而触发严格的自动化测试,确保业务和服务能够符合预期。那这里的关键词是去确保符合预期。
- 持续部署。通过借助基础架构的编排、应用编排、pass平台等工具能力,来帮助需求持续部署到目标环境中去,并且借助一些运维的技术,包括红绿染色、灰度发布等,进一步降低部署到生产环境中的变更风险,从而提升变更的成功率。
十年前的阿里巴巴也是烟囱式的组织,伴随着分布式架构、大中台的建设,阿里巴巴不断地实践着自己的架构演进和DevOps的转型,应对大并发带来的效率提升和质量挑战的时候,推动了团队协作之间分工协作的演进。
通过上图可以看到,互联网竞争的日趋激烈直接带来了一个结果,或者说是对软件研发的一个严格的要求,就是产品迭代的速度加快。前台业务海量且纷繁复杂的需求,源源不断地涌入需求池,每一个需求价值也要快速的通过敏捷的方式上线反馈。需求、立项、开发、测试、运维、复盘改近,这样一个循环每天都会发生,甚至每个小时都会发生。我们如何去应对?
通过2012年推动的研发自测和2014-2015年推动的研发自运维,我们逐渐在改变着自己的DevOps。现在开发转化为DevTestOps,测试转化为测试开发,赋能DevTestOps做开发自测,并为质量和效能承担最终责任。运维也是同理,赋能开发的同时,对效率和质量承担最终责任。可以看到,绿色和蓝色的箭头正是赋能研发的一股力量,而其中云效作为一站式的工具,提供了全套的支持。
云效--基于分布式架构的DevOps体系
云效产品的理念和模型
- 使命。云效产品的使命是希望所有的企业能够像阿里巴巴一样高效的研发。
- 战略目标。依托阿里巴巴20年沉淀的工具体系,结合企业客户云化改造的过程,帮助客户实现研发能力,向DevOps转行,最终完成研发效能升级。
- 业务方向。关注20人以上的研发团队;关注他们在云上升级,分布式微服务改造的这个进程;关注这些有研发效能需求转型的客户。
- 发展模式。我们希望所有的研发效能的转型都有工具的辅助和帮助;教会客户正确地使用工具,从而提升他们的研发效能;服务和交付都是标准化的。
- 核心能力。完善的DevOps工具体系;完善的阿里巴巴技术和产品生态;拥有完整的客户实施经验。
CICD关键概念
Martin Fowler对持续集成是这样定义的:持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。持续交付(Continuous Delivery)是一系列的开发实践方法,用来确保让代码能够快速、安全的部署到产品环境中,它通过将每一次改动都提交到一个模拟产品环境中,使用严格的自动化测试,确保业务应用和服务能符合预期。
云效—一站式开发测试云平台
由产品大图可以看到,整个DevOps交付流水线之中,需求、项目管理、代码管理、代码编写、单测集成、构件部署、测试环境管理、系统集成,乃至到最后的提交发布,都一一对应了云效清晰的产品模块以及他们的能力,每一个云效的产品套装和产品模块,都能够对相应的研发阶段提供强有力的支持。
由上图看到,落地过程和落地策略分成四个阶段:准备阶段、培训赋能、沙盘演练、落地推广。
DevOps的体系中的关键机制具体如下:
- 领域负责人机制。将项目划分为项目管理、配置管理、测试环境、自动化测试四个建设领域。开发团队负责项目管理、配置管理,测试团队负责测环境管理、自动化测试管理,指定明确的领域负责人,而云效团队会在每一个领域负责人提供相应的对接支持,去配合企业领域负责人。
- 持续沟通机制。代码质量报告每周会发送至开发测试的主管,每个领域的落地进展会以周报的形式给大家汇总发布。每周关键角色会跟企业的负责人进行电话会议的方式,去沟通这一周所有发生的问题以及解决方案。
- 团队培养机制。通过云效的理念和沙盘相辅助,帮助各领域的同学能够快速的掌握交付、快速交付的能力。云效团队提供配管、单测、环境、自动化等领域的培训,用于提高开发测试团队的成员能力。
- 考核体系和考核机制。帮助调动成员积极性。
客户案例分享
以下为云效与客户共建的灵活多样的解决方案。
上图为产品组合。云效的产品并不是铁板一块的产品,而是灵活自由调度组合的几个模块。有如下子模块,包括项目管理,配置管理,持续集成,环境管理,UI自动化,接口自动化,性能压测,集成自动化,缺陷、用例,挡板和Mock中心,数据质量中心。在不同的客户不同的场景结合不同的客户痛点,提供不同的解决方案模块。另外在运维域也有全套的运维解决方案。
云效产品在保险、银行、券商、新零售和地产有着丰富的客户实施经验,有很多的客户都在和我们的合作中获得了很好的成长,真正实现了研发效能提升。
上图分享了结合技术中台建设的持续交付,在底层还是分布式架构。分布式的PaaS底座,其中有应用管理、发布管理、部署策略、实时监控、应急容灾,对应着不同的客户环境,包括开发、SIT、UIT、准生产的生产环境。在我们的中间的持续交付的通道中,可以看到DevOps研发流水线生命周期也体现在其中。
创建项目、开发自测、集成测试、用户验收、预上线、生产发布,都与云效的各个模块紧密地结合在一起。在顶层,支撑的业务包括互金核心,互金贷款,互金理财等,在价值交付方面实现了一站式的交付,并且对新型的ISV交付进行了标准化管理。研发的资产整个沉淀在研发平台上,最终也帮助了组织和团队的能力实现了升级。
更多研发效能体系升级内容,关注云效微信公众号(ali_yunxiao)
用云效,体验阿里巴巴研发速度
更多精彩内容请点击 2018第二届研发效能嘉年华干货集结看这里