相对于传统IT产品,做好云服务的基础就是以经营用户为核心去经营产品,在云服务场景下,践行DevOps,首先是把握DevOps的本质,转变思维模式。
一、什么是DevOps?
度娘给的定义: DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
二、为什么要DevOps?
举个例子:古代婚姻,靠的是“媒人”,父母之命,媒妁之言。婚前都是通过媒人来来回回的传话,男女双方的父母大概了解对方的家庭背景,孩子的长相和品性,孩子的意愿等等,如果合适就定下这门亲事,然后开始准备婚礼。整个过程,男女双方不能见面,只能听说和想象,在洞房花烛夜才真相大白。现在婚姻是靠相互“试探”的过程,男女双方从心动的那一刻起,要多次约会,中间可能会经历争吵、分手、磨合,感情逐步升华,最终走进婚姻的殿堂。
对于硬件来说,硬件设计具有“所见即所得”的特点,设计图画什么样,实物就长什么样。前端设计考虑得详细,后端的返工的风险就低。硬件一旦返工,周期长,成本高。所以硬件开发强调分析、设计阶段要有高质量的文档、要经过充分的评审,才能进入开发阶段。对于硬件,设计文档这个“媒人”很“靠谱”。
对于云服务,文档这个“媒人”就没那么靠谱了,我们只能通过和客户“相互撩”才能洞悉客户需求、做出客户真正需要的服务。所以最合理的开发方式是:不要一次追求“完美”,尽可能早的写出代码进行测试,然后通过客户的反馈不断修改,达到完美。
所以, DevOps的目的不仅仅是促进Development和Operations的沟通协作和整合,更是通过提升与客户“互相撩”的频率和质量,达到交付客户满意的云服务产品的目的。通俗地说,要做好云服务,就是要想办法,把客户“撩”好。 DevOps, 就是解决怎么才能把客户”撩’得好的方法和手段。
三、怎么实现DevOps?
怎么才算DevOps? 我们有众需、有灰度发布、有众测、有敏捷,有PI,有自动化流水线, 有看板,有每日站会,就DevOps了? 这些都是DevOps的实践,是DevOps这棵大树上的果子。怎么实现DevOps, 就是要把客户撩好,本次主要围绕以下三点展开。
1. 跑得快
什么样算跑得快?简单地说就是客户需求和客户问题能够快速搞定。 客户需求XX小时上线, 客户问题XX小时闭环,这里大家可以自定义 4个小时、8个小时等。
要跑得快,架构解耦是基础,微服务化、组件化等等都是围绕这个展开。
怎么能跑得快? 懂客户需求,能够第一时间甚至提前将客户需求的东西提供给客户使用。怎么懂客户需求?就是构筑友好快捷的与客户互动的接触面,能够经常高质量地撩到客户。 另外就是全流程高度自动化,精准测试,能快速发布等; 还有流程/审核不要束缚等。如果一方面要跑的快,一方面还靠人肉去堆,不借助工具提高效率,那就不是真的想跑的快。
2. 跑得稳
跑得稳,可以简单通俗地理解为交付客户服务质量好,业务运行稳定不出事。
怎么做到业务运行稳定不出事,质量好? 一方面服务交付上线前负责验证把关的人和工具要很清楚明白:人要对交付的产品了如指掌,很清楚需求是啥,我们通过哪些手段保证了需求的质量是ok的; 工具平台要起到门禁的作用,通过才放行。另一个方面就是提前预防或则发现现网故障和问题, 先于客户发现, 在客户发现前已经把问题解决了, 这就需要强大的运维监控平台和现网运维体验等了;第三个方面是要具备危机事件处理能力,现网事故能够第一时间内快速规避,消除客户影响,错过了第一时间,后期要耗费十倍百倍以上的努力和代价去弥补;一些优秀的互联网产品不是不出事,而是出事后能够很好地灭火。
3. 持续跑
首先最重要的就是绩效考核牵引。例如云服务模式下,如果考核现网问题个数,那谁还敢快速上线? 如果考核用户数,谁不想尽各种办法去扩展客户?
其次就是组织运作高效。自组织型组织,激活基层人员大脑,每个人都以主人翁的心态做服务。 每日站会有时候也是浪费,一堆人挤在一起听一两个人讲,站会开一个小时还天天开,不是浪费嘛,有问题拉相关人聊一聊就完了。核心工作时间聚焦核心价值产出, 管理者要保护员工核心工作时间。全功能团队OneTeam理念,各角色之间深度融合,注重人与人之间高效的协作和互动,而不是过分关注流程和工具,这些都是为了人与人之间更好的协作而服务的。
然后就是精神文明建设,看起来有点虚, 其实可以做实。 只有一群有特质的、有某种优良基因的团队,才能打磨出一个优秀的成功的产品。 这种特质,比如协作、分享、试错等等, 是基于产品需要的,是对产品的深度思考和亲自践行、持续形成的一种行为特征、做事方法、工作能力等等。 一个有特质的团队, 自然会积累该相关特质的丰富的物资文明,比如一个高效的研发团队,必然会积累有较高且稳定的自动化环境或则说基础。
最后总结一下,相对于传统IT产品,做好云服务的基础就是以经营用户为核心去经营产品,在云服务场景下,践行DevOps,首先是把握DevOps的本质,转变思维模式。
【本文为51CTO专栏作者“大数据和云计算”的原创稿件,转载请通过微信公众号获取联系和授权】