云服务场景下如何践行DevOps

资深QA邱总给大家云服务场景下如何践行DevOps。

相对于传统IT产品,做好云服务的基础就是以经营用户为核心去经营产品,在云服务场景下,践行DevOps,首先是把握DevOps的本质,转变思维模式。

1

什么是DevOps?

度娘给的定义: DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。

2

为什么要DevOps?

举个例子:古代婚姻,靠的是“媒人”,父母之命,媒妁之言。婚前都是通过媒人来来回回的传话,男女双方的父母大概了解对方的家庭背景,孩子的长相和品性,孩子的意愿等等,如果合适就定下这门亲事,然后开始准备婚礼。整个过程,男女双方不能见面,只能听说和想象,在洞房花烛夜才真相大白。现在婚姻是靠相互“试探”的过程,男女双方从心动的那一刻起,要多次约会,中间可能会经历争吵、分手、磨合,感情逐步升华,最终走进婚姻的殿堂。

对于硬件来说,硬件设计具有“所见即所得”的特点,设计图画什么样,实物就长什么样。前端设计考虑得详细,后端的返工的风险就低。硬件一旦返工,周期长,成本高。所以硬件开发强调分析、设计阶段要有高质量的文档、要经过充分的评审,才能进入开发阶段。对于硬件,设计文档这个“媒人”很“靠谱”。

对于云服务,文档这个“媒人”就没那么靠谱了,我们只能通过和客户“相互撩”才能洞悉客户需求、做出客户真正需要的服务。所以最合理的开发方式是:不要一次追求“完美”,尽可能早的写出代码进行测试,然后通过客户的反馈不断修改,达到完美。

所以, DevOps的目的不仅仅是促进Development和Operations的沟通协作和整合,更是通过提升与客户“互相撩”的频率和质量,达到交付客户满意的云服务产品的目的。通俗地说,要做好云服务,就是要想办法,把客户“撩”好。 DevOps, 就是解决怎么才能把客户”撩’得好的方法和手段。

3

怎么实现DevOps?

怎么才算DevOps? 我们有众需、有灰度发布、有众测、有敏捷,有PI,有自动化流水线, 有看板,有每日站会,就DevOps了? 这些都是DevOps的实践,是DevOps这棵大树上的果子。怎么实现DevOps, 就是要把客户撩好,本次主要围绕以下三点展开:

1 跑得快

什么样算跑得快?简单地说就是客户需求和客户问题能够快速搞定。 客户需求XX小时上线, 客户问题XX小时闭环,这里大家可以自定义 4个小时、8个小时等。

要跑得快,架构解耦是基础,微服务化、组件化等等都是围绕这个展开。

怎么能跑得快? 懂客户需求,能够第一时间甚至提前将客户需求的东西提供给客户使用。怎么懂客户需求?就是构筑友好快捷的与客户互动的接触面,能够经常高质量地撩到客户。 另外就是全流程高度自动化,精准测试,能快速发布等; 还有流程/审核不要束缚等。如果一方面要跑的快,一方面还靠人肉去堆,不借助工具提高效率,那就不是真的想跑的快。

2跑得稳

跑得稳,可以简单通俗地理解为交付客户服务质量好,业务运行稳定不出事。

怎么做到业务运行稳定不出事,质量好? 一方面服务交付上线前负责验证把关的人和工具要很清楚明白:人要对交付的产品了如指掌,很清楚需求是啥,我们通过哪些手段保证了需求的质量是ok的; 工具平台要起到门禁的作用,通过才放行。另一个方面就是提前预防或则发现现网故障和问题, 先于客户发现, 在客户发现前已经把问题解决了, 这就需要强大的运维监控平台和现网运维体验等了;第三个方面是要具备危机事件处理能力,现网事故能够第一时间内快速规避,消除客户影响,错过了第一时间,后期要耗费十倍百倍以上的努力和代价去弥补;一些优秀的互联网产品不是不出事,而是出事后能够很好地灭火。

3持续跑

首先最重要的就是绩效考核牵引。例如云服务模式下,如果考核现网问题个数,那谁还敢快速上线? 如果考核用户数,谁不想尽各种办法去扩展客户?

其次就是组织运作高效。自组织型组织,激活基层人员大脑,每个人都以主人翁的心态做服务。 每日站会有时候也是浪费,一堆人挤在一起听一两个人讲,站会开一个小时还天天开,不是浪费嘛,有问题拉相关人聊一聊就完了。核心工作时间聚焦核心价值产出, 管理者要保护员工核心工作时间。全功能团队OneTeam理念,各角色之间深度融合,注重人与人之间高效的协作和互动,而不是过分关注流程和工具,这些都是为了人与人之间更好的协作而服务的。

然后就是精神文明建设,看起来有点虚, 其实可以做实。 只有一群有特质的、有某种优良基因的团队,才能打磨出一个优秀的成功的产品。 这种特质,比如协作、分享、试错等等, 是基于产品需要的,是对产品的深度思考和亲自践行、持续形成的一种行为特征、做事方法、工作能力等等。 一个有特质的团队, 自然会积累该相关特质的丰富的物资文明,比如一个高效的研发团队,必然会积累有较高且稳定的自动化环境或则说基础。

最后总结一下,相对于传统IT产品,做好云服务的基础就是以经营用户为核心去经营产品,在云服务场景下,践行DevOps,首先是把握DevOps的本质,转变思维模式。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2018-01-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏calmound

JDBC

import static org.junit.Assert.*; import java.sql.Connection; import java.sql.D...

2664
来自专栏海说

Java应用中常见的JDBC连接字符串(SQLite、MySQL、Oracle、Sybase、SQLServer、DB2)

Java应用中常见的JDBC连接字符串 Java应用中连接数据库是不可或缺的,于是便整理一些可能用到的JDBC的jar包及其相匹配的URL,以备日后查阅。 1)...

2760
来自专栏c#开发者

简体-繁体内码转换API

 public class ANSIConversionAPI     {         const int SIMPLIFIED_CHINESE =...

3555
来自专栏成长道路

JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.P...

2520
来自专栏张善友的专栏

Using sqlite with .NET

The other day I found that there is a .NET wrapper for sqlite. sqlite is a very ...

2318
来自专栏james大数据架构

数据自定义格式化

如 <asp:Label ID="lblOne" runat="server" Text='<%# Bind("rq", "{0:yyyy年M月d日}") %>...

1859
来自专栏Pulsar-V

C#下各种获取时间的姿势

直接贴代码吧 DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21...

3246
来自专栏码匠的流水账

聊聊EurekaRibbonClientConfiguration

spring-cloud-netflix-eureka-client-2.0.0.RELEASE-sources.jar!/org/springframewor...

1181
来自专栏阿炬.NET

c# datetime 格式化

2856
来自专栏james大数据架构

C#日期格式转换

DateTime dt = DateTime.Now; // Label1.Text = dt.ToString();//2005-11-5 13:21:25 ...

1895

扫码关注云+社区