2019年5月10-12日,DevOpsDays大会在北京新世纪日航饭店举办。DevOpsDays是一个国际型的系列技术峰会品牌,于2017年引入中国大陆。它的会议内容涵盖了软件开发、测试、运维和安全,以及它们之间的交集。主题通常包括敏捷开发、运维自动化、持续测试、安全加固、持续交付、持续集成、组织文化等。
华为云DevCloud布道师徐毅受邀参加本次大会,在大会上传递了DevOps的初心—更快速地交付持续客户价值,并分享了如何做到全面发展的DevOps。
华为云DevCloud布道师徐毅讲到DevOps的初心,一定是为了更频更快地交付客户价值。技术采纳生命周期变得越来越短,从传统的“钟形”曲线已经被更为陡峭的“鲨鱼鳍”曲线所替代,做不到持续快速交付客户价值的企业,无疑将面临更为严峻的挑战。
下图出自Gartner的2019年报告“DevOps如何更快速地交付持续客户价值”,右侧是已经为人熟知的DevOps双环,左侧其实是告诫我们DevOps不能止步于提交到发布的环节,需要持续优化扩展到客户场景和客户价值探索的环节,才能够打通整个价值链条实现加速。
到底要怎么做好DevOps呢?如果把DevOps做得很好的企业比喻成三好学生的话,那么要能够成为DevOps三好学生,就是要做到德智体美劳全面发展。就如同下面这个公式一样:
(工程方法 + 最佳实践 + 生态) x 工具平台 = 能力
德:就是立场要坚定、不动摇,坚持以持续地快速交付价值为目标;
智:就是要有智慧,有思路、有方法,实践需要理论指引,这个理论就是靠谱的工程方法;
体:DevOps的体力,就是具体的各种基础实践,它们的最主要作用其实是训练我们的基本动作和研发纪律,基本功扎实,战斗力才强;
美:不能孤芳自赏,好要得到大家的认同,而且众人拾柴火焰才高;
劳:影响劳动产出的一大因素就是生产工具,优秀工具平台甚至可以达到事半功倍的效果;
群:群出自台湾版口号“德智体群美”,要发动群众,就要解决人与组织的问题。
DevOps为什么不容易?因为它试图解决的是一个大难题,就是蓬勃的新生产力跟迟钝的旧生产关系之间的矛盾,而这种矛盾对即有组织结构发起了挑战。运维、测试、安全、项目管理、研发等各种传统只能部门,都遇到了巨大的挑战,而新形势下有效的组织结构长啥样却没有一个固定的答案。一篇业内报道指出,在DevOps转型中,有7种DevOps组织反模式和9种有效组织模式,在这么多种可能的模式中,如何选择或如何探索出适合自己的模式,实非易事。
那么到底应该怎么解决这些问题呢?
建议一,从项目型向产品型转变,要认真考虑设立产品经理制度。定义和确立产品,也是在梳理企业的价值流,并基于此建立价值交付型的组织结构。客户项目的涓涓细流,经过价值流动路径,汇入产品,最终流向价值大海。接着还要疏通河道,就是针对这个价值路径进行价值流分析,发现那些阻碍价值流动的问题,并逐个解决。
第二个建议,是要训练出有规矩、讲纪律、有战斗力、能自管理的团队。如今的VUCA时代,过去那种经理驱动型团队的响应速度已经很难跟上市场、产品、技术等各方面的变化节奏,经理人也很容易成为瓶颈,所以我们需要让团队变得自管理,另一方面我又需要团队有规矩、讲纪律,不然自管理变成放羊管理就适得其反了。
建议三跟需求有关。需求命很苦,经常被人吐槽,谁都不满意。用户故事大家都很熟悉了,但是要真正发挥它的威力,需要我们基于用户场景出发,或是要反向找到用户故事的场景,要弄清楚有了这个功能之后,用户到底如何使用、能给用户带来什么好处?用户故事是关于用户如何使用产品/系统功能去完成某件事情的故事,而不是产品/系统的功能。此外,还要做好信息共享、减少误解,我们应该把作为工作项的用户故事跟用户类型介绍、需求详情、相关文档、相关代码关联起来,以便相关工作者能够看到共享信息,避免因为信息传递或不透明而造成的误会以及不必要的返工。
第四个建议是要梳理清楚和明确代码分支模式,以及基于这种分支模式的协作模式,和与之相配的自动化构建和部署流水线,尽可能地减少人工操作出现失误导致的浪费。这其实也是前面说的团队要有规矩、讲纪律的一部分,SVN到GIT并不只是代码仓库工具的变化,实则是一种研发理念的变化,解锁了程序员个体的研发和提交效率,也必须附以研发效率或内建质量保障的动作,避免陷入代码提交频繁冲突的噩梦。
最后一个建议是务虚层面的建议。前面的四个建议,以及其他很多业内实践,如果大家听完很开心,很想要去落地,那么就必须考虑这么一个问题 —— 怎么避开落地过程中的各种坑、快速地掌握这些实践并产生实效?简单来说,就是要学会适当地借助外力。
业界的先进工具和实践,都需要经由组织内成员学习掌握后,才能真正转化为能力、生产力,产生实效。我们可以站在巨人的肩膀上,借助外力来加速如右下图的这个学习过程。华为的快速发展就离不开从各大咨询公司导入的业界经验和先进理念。在内部,我们依靠研发能力中心等部门对产品部门和团队进行广泛地赋能,提升研发团队的战斗力。而赋能的方式,跟左下图所示的华为云DevCloud专家服务内容相似,包括对现状的评估、知识或技能的培训、日常的辅导、行业认证服务,以及整体性的咨询、顾问型服务。
在华为云DevCloud的背后,是华为30年的前沿研发理念以及实践积累,也包括华为云DevCloud自己吃狗粮的经验教训。其中一条经验,就是要有统一的思想指导,最好是集合业界实践和企业自身的经验,以华为云DevCloud自己为例,这个思想指导就是华为云DevCloud HE2E DevOps框架,如图所示。
最后还有一条经验想跟大家分享 —— 千里之行、始于足下,DevOps之旅、健康自检起步。DevOps落地和转型就好像在丛林中探险,我们需要时刻知晓自己所处的方位,才能够始终向着正确的方向前进,华为云DevCloud使用了DevOps能力现状评估来扮演指南针的作用,用于确定当前状态以及下一步的改进方向。下图是评估报告部分内容的示意图。
欢迎您登录华为云DevCloud官网检查自身DevOps能力现状情况,进行DevOps成熟度评测,将实时获取报告。