2019年5月27-28日,QCon 全球软件开发大会在广州希尔顿举办。QCon是由InfoQ主办的综合性技术盛会,每年在伦敦、北京、纽约、圣保罗、上海、旧金山召开。自2007年3月份开始举办以来,已经有超万名有多年从业经验的技术人员参加过QCon大会。华为云DevCloud布道师徐毅受邀参加本次大会,并在大会上分享了大企业在这个竞争越发激烈的VUCA时代,如何落地敏捷+ DevOps,做到高效能。
创新时代呼唤更快速灵活的研发响应能力
生活和社会的节奏越来越快,变化越来越快,企业越来越需要更快、更频繁地创新,才能够在这个竞争越发激烈的VUCA时代存活下去。任何已经占据江湖地位的大公司都无法松懈,必须持续提升企业自身的响应速度和能力。
“敏捷”,按照敏捷宣言诞生之日来计算,已18岁,按照敏捷在国内开始萌芽,也13岁了。哈佛商业评论先后于2018年3月刊载《HR迈向敏捷》、5月刊载《规模化敏捷》;麦肯锡也在其季刊中连续刊载有关敏捷银行的文章。敏捷像是老树新枝一般,再次成为热门议题。
‘’DevOps”,已进入深水区,以Gartner的报告来看,2015年DevOps还处于技术关注的最高点,市场对它期望很高。转眼到了2018年,DevOps以及DevSecOps都已经从关注度高峰下沉到了具体实践阶段,要开始啃硬骨头了。而正在攀爬关注度高峰的,则是DevOps工具链和工具链的编排。
“大企业”,到底什么叫大?先看看国家统计局的说法,根据《统计上大中小微型企业划分方法(2017)》的标准,软件和信息技术服务业,只有企业从业人员规模在300人以上的,才能算是大企业。
“高效能”,度量是一件非常重要、但也非常难做好的事情。根据所处行业、企业自身的业务特点和企业特点、当前关键问题等各方面会有不同定义。VersionOne的年度敏捷报告是敏捷圈的权威报告,填写者反馈了他们度量敏捷项目成功的标准,包括客户/用户满意度、业务价值交付、速率等指标。 DevOps部分,在DORA发布的2018年《加速度:全球DevOps现状调查报告》中,DORA提出了软件交付和运维效能的概念,它包括以下五项关键指标:前置时间、部署频率、变更失败、恢复时间、可用性。我们可以参考这些观点,但是要靠自己找出适合企业现状的效能指标作为指引。
规模化是硬骨头,审视自身、因地制宜,最适合的办法才是最好的
那么解决方案在哪里呢?我们可以看看目前的规模化敏捷方法论和DevOps方法论,看看有什么启发。
- LeSS:大规模Scrum,以Scrum为基础。LeSS分两个模式,LeSS模式宣称适合8人团队、最多8个团队共64个人的情况,LeSS HUGE模式则号称可适应数千人规模的产品研发;在敏捷方法方面,LeSS以Scrum为核心,工程实践维度,有实践指导材料,DevOps的部分则没有发现有什么详细介绍的内容;
- SAFe:大规模敏捷框架,完整的SAFe框架可以分为四个层级,团队级适合5~9人团队、项目群级适合5~12个团队(约50~125人)、大型解决方案级适合数百人规模、组合级适合500~1000人规模;敏捷方法论方面,介绍了Scrum、XP、Kanban方法,主张团队自主选择,工程实践方面有所提及、但没有特别详细的介绍,DevOps部分也只是有所介绍而已;
- DevOps:目前来看并没有所谓的某个标准的或是一统天下的方法论,各家厂商甚至各家企业都有自己的说法,也没有什么可供参考的标准文献去判断DevOps方法论适合多大规模的企业。
客观地看待自己,才能够找到靠谱的解决问题的办法。那么具体应该怎么做呢?
指导思想是要高瞻远瞩、考虑周全,但同时要脚踏实地、步步为营,扎扎实实地实现目标。可以参考如下公式来建设各方面能力:
(工程方法 + 最佳实践 + 生态) x 工具平台 = 能力
具体操作上,可以参考如下过程:
- 首先,选定一个方法论/流程/套路,学习消化:如果敏捷、DevOps对组织来讲是新的知识,那我们就必须考虑学习本身的特点,在尚不理解的时候是很难去进行所谓的适应性调整的,所以最好是先选定一个模型,从僵化执行开始,晚些再复盘改进;
- 其次,选择团队/项目,敲定整体实施方案,开启试点:前面选定的是主体方法论,但我们还需要用其他实践来辅助填补单个方法论的空缺,比如以Scrum框架为主,辅以一些极限编程的工程实践以及一些DevOps实践作为补充;
- 然后,在试点执行过程中,组织层面要为后续扩大范围打造基座:包括方法论落地的相关经验教训要提炼并转化为可复用、适合推广的智慧资产,以及一批种子选手,后期扩展至更多团队时,他们可以发挥榜样带头作用辅导团队,还有一些能力最好能固化到工具里面;
- 最后,扩大范围时,考虑扩展策略,是横向扩展还是纵向扩展,也有可能是同时开展:即有经验可以横向扩展至其他团队/项目,直接参考实施,也可以考虑将团队级试点纵向扩展应用于更大规模的项目/项目集,这就需要在即有经验基础上进行调整和完善,补充一些实践解决更大规模研发才会面临的问题。
践行敏捷+DevOps理念,华为云DevCloud的实践
以华为云DevCloud团队的转变过程来介绍,除了进行团队协作模式的服务化转型,还有很多其他实践也都需要一并落地才行:
- 实践1:组织结构和产品架构螺旋相适配
- 实践2:Two pizza team,全功能团队,特种作战
- 实践3:按周迭代,小步快跑,持续规划
- 实践4:服务自治,独立需求排序,开发,部署上线
- 实践5:兼听则明,持续规划,价值排序
- 实践6:与客户联合敏捷,众创,对齐客户商业价值
- 实践7:架构解耦,服务/微服务化
- 实践8:云基础设施下,猴子军团出没,耐抗才能高可用
- 实践9:兼顾效率与安全的软件仓库,高速下载,便捷实用
- 实践10:自动化流水线,缩短上线时间,BuiltIn Quality
- 实践11:企业级仪表盘,基于数据科学决策
- 实践12:运维、监控、运维专家经验沉淀到系统
- 实践13:灰度发布,友好/公测,运营运维配合
- 实践14:VoC 驱动,持续规划,数据分析,动态调整,有错就改
敏捷DevOps之旅也是学习之旅,学习的速度就是DevOps的加速度
最后,还有一些建议给到大家:
- 把握趋势,方向大致正确,组织充满活力:我们认为未来是万物互联的数字世界、是智能化的世界,而软件工程则需要解决可信的问题,盯准大方向,才不会做无用功;
- 借力成熟的实施方法,避开常见陷阱:如专家总结的DevOps转型七步法,以及DevOps转型的6大焦油坑(链接:https://bbs.huaweicloud.com/forum/thread-14506-1-1.html)
- 站在巨人的肩膀上,省力:借鉴业界的成熟经验,减少各种代价,如华为云DevCloud HE2E DevOps实施框架就是集合了业界先进理念和华为30年实践的可操作易落地的指引;
- 利用各种学习资源,提升自身能力:如华为云就有很多培训资源,如7天玩转DevOps实战营(链接:https://education.huaweicloud.com:8443/courses/course-v1:HuaweiX+CBUCNXV009+Self-paced/about);
- 千里之行,始于足下,DevOps之旅,健康自检起步:DevCloud敏捷与DevOps专家服务(链接:https://www.huaweicloud.com/service/devcloud_devops.html)。近期针对注册用户推出了在线DevOps能力评估的服务,可以帮助企业对自身DevOps能力进行一个快速自查并即时得知结果;如果你感兴趣,也可以扫描如下二维码体验。