Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【扯淡篇】DevOps,值得运维拥抱!

【扯淡篇】DevOps,值得运维拥抱!

作者头像
用户1593318
发布于 2019-11-18 15:05:59
发布于 2019-11-18 15:05:59
7240
举报

原计划是写名字服务相关的一篇文章,但因为周末出去培训,实在没法完成。公司组织大家出去讨论关于协同效率问题,之前在腾讯也讨论过部门墙的问题。随着公司的日益增大,这类问题会一直存在,且一直在解决而不能彻底解决。此时,我从运维的角度来谈DevOps还是比较应景的,它恰好给这个问题提出了一个全新的解决方案。结合之前自己总结的一个DevOps PPT,在这个文章中,我通过我的PPT逐步来谈谈我对DevOps的理解(部分来自于自己的总结,部分来自于之前的读书笔记):DevOps到底是什么?给运维带来了什么样的改变和影响?

一、DevOps是什么?

1、DevOps的初印象

DevOps在很多人看来就是一个代号,先不管它的到底是什么,但这个代号有一个很大的好处,统一了沟通交流术语,如同之前的敏捷。另外从字面上第一次把DevOps放在一起来看,抛弃了之前的一些概念,比如说运维,甚至更早期的D/O分离等等。

DevOps和Dev/Ops、Dev & Ops是有着一些区别。首先、Dev/Ops、Dev & Ops都强调两个独立的职能角色;其次Dev/Ops用分离的视角来看研发和运维,最典型的后果就是研发只看功能需求,不考虑可运维性,而Dev & Ops在一定程度上两个团队的合作能力是更强了(平行团队),但是还没有做到真正的跨职能。把DevOps融入到各自的日常活动中,无论是研发、测试和运维都需要面向共同的目标、价值观、思维模式等等。

2、DevOps是一种文化(Culture)

单纯的说是一种文化,非常空洞。文化的表现必须是通过一种运动的形式来表达其内在的价值诉求,就如同文艺复兴和五四新文化运动一样。同样在DevOps领域,也是因为多种运动不断催生的产物,比如说一天10次部署运动、平台及服务运动、持续迭代运动等等,最终达到其文化价值的传递,比如说高质量、高效率的服务交付。从我的角度来说,持续集成、XX(架构、监控)及服务及运维数据化是DevOps的核心,可视化是其最终的呈现。

3、DevOps是一种价值观(ValueSet)

价值观是DevOps需要恪守的准则:

(1)持续优化。任何一个工作都不存在完美的状态,应该持续的推动他,自动化平台的建设如此,数据驱动DevOps更是如此,因时而变。

(2)合作共赢。把彼此的合作放在第一位,完成面向用户的共同价值输出,而非个人所在部门的利益达成。

(3)杜绝浪费。任何停滞都是一种浪费,不作为更是一种浪费。

(4)关注用户。用户的价值为最终的导向,并且让用户的价值反向传导到内部工作流节点上。

4、DevOps是一种思维模式(MindSet)

在早前我写过一篇文章探讨过互联网+和云+之间的关系。我也特意对两者的思维模式做了一个对比。

其实在思维角度来说,这两种思维也有很大的相近之处。互联网思维,雷军的七字诀不做过多的解释。在DevOps的思维层面上来说,我也做了一个总结,大致如下:

第一、精益

精益思想(Lean Thinking)源于20世纪80年代日本丰田发明的精益生产(Lean Manufacturing)方式。丰田的精益制造有14项基本原则,后面有人对其的管理思想进行提炼,总结出精益思想有五项基本原则:

(1)从客户的角度来定义产品价值。价值由客户定义,而非自己定义。

(2)识别价值流。精益思想识别价值流的含义是在价值流中找到那些是真正增值的活动、那些是可以立即去掉的不增值活动。精益思想将所有业务过程中消耗了资源而不增值活动叫做浪费。识别价值流就是发现浪费和消灭浪费。

(3)让价值流流动起来。精益将所有的停滞作为企业的浪费,因此要求创造价值的各个活动(步骤)流动起来,强调的是不间断地“流动”。

(4)拉动式价值创造。按照客户的需求进行生产,设置好对应的投入和产出。

(5)持续改进式到尽善尽美。“通过尽善尽美的价值创造过程为用户提供尽善尽美的价值”。

在很多管理思想上,原理是互通的,PDCA、全面质量管理、六西格玛等等,甚至是所遵循的方法论,DevOps也是如此。

第二、价值

当互联网思维在强调他的用户口碑的时候,而我们的技术服务则强调他对用户的价值输出,从而为产品赢得口碑。价值在上面也提到是用户关注的价值,而不是我们认为的价值。高可用、稳定的服务是质量的根本,质量则是价值的一部分,而不断的满足用户需求的服务才是重中之重,这就让各自的团队有了一个共性的衡量标准。

第三、跨界

其实互联网思维的专注是让你对事情有更深入的理解,才能做到极致。而在DevOps所倡导的思维模式,并不是让你去失去专注,而是在此基础上让你更加跨界。在强调职能分工的企业中,过多的限制在某个岗位上行驶某个职能,不利于事务的整体推动。而运维是那个全局观能力最强的人,恰恰需要这个时候从整个价值链的活动来全局观察,并提出方案。同样,研发和测试也需要不断跨出自己的职责区,去和运维一起优化产品和技术方案。

第四、敏捷

业务要求快,技术则要求敏捷,无论是流程的敏捷,还是服务交付都需要非常敏捷。传统的敏捷观点是要技术如何更好服务业务部门的需求,是Dev和Biz的之间的合作模式,而现今的敏捷则从持续集成、持续交付、持续部署等多个层次对敏捷提出了新的要求,是Dev、Test、Ops甚至是产品部门一部协奏曲。

5、DevOps是一种工具观(ToolSet)

DevOps首先倡导的原则是自动化一切,但数据化同样重要,并且我提出要把他们都可视化呈现出来。自动化是可视化一切价值流的过程,数据化则可视化价值节点的状态。这个在之前的文章【运维的本质---可视化】,有全面的阐述。

二、DevOps的最佳实践

Damon列举了一系列实践与举措,对于这些举措,我也用几个词做了备注。这些实践与举措在那些成功应用了DevOps的组织中已经成为它们日常工作的一部分,如下:

  • 去除“完成”这个词,服务是永不停止的,它们一直在运行并应该得到持续关注【持续优化】
  • 将运维需求与功能需求一样视为一等公民,使运维方能够及早发现需求影响【合作共赢】
  • 将工作流程可视化,使所有人对全局有了解,瓶颈自然显现【可视化】
  • 协同匹配价值流,这样才能理解系统全局并发现浪费【价值驱动】
  • 将信息流变为产品流,以降低信息传递中的歧义并澄清人员间必须的交流【拒绝浪费】
  • 将相关数据组合起来形成有意义的指标,让组织中不同利益相关者都能意识到【数据可视化
  • 通过将变更关联到相应指标并将它们图形化来提升对变更的认知【数据可视化】
  • 有目的地妆点办公室墙,使每个人都感觉到自己是整个系统的一分子【工作满意度】
  • 去中心化管控,让产品的开发者和运维者就责任达成一致(例如:开发者负责代码的正常运行,运维负责平台的正常运行,诸如此类)【共享责任文化】
  • 举行内部小型会议,大家可以在会上就已经完成和可以完成的事项达成一致,会上也鼓励大家就变更发表自己的意见。【共同参与】
  • 强制在运维的帮助下对所有开发提交的服务进行部署验证检查,以避免在运维时才出现问题【持续部署】
  • 释放你的猴子,这能使你对自己的服务承诺产生巨大的自信【信任】
  • 在问题发生时不仅在管内(pipeline flow)流转(要引入更多的变更和工作),而是关注在找到瓶颈发生的真正原因并加以修正【杜绝浪费】
  • 保证对客户透明,在出现问题时勇于担当,在问题解决后保持警惕,客户自然有理由心满意足【关注用户】
  • 在团队和日常工作流以外建立良好关系,例如通过“Guess the Admin”游戏或与公司内不同的人一起共进午餐【合作与分享】

2013年puppetLabs做了一次DevOps调查,也谈到了最佳实践,汇总如下:

三、DevOps和ITIL对比

DevOps和ITIL有着明显的不同,从这个不同的也也可以看出,DevOps代表着未来,ITIL已经不适用互联网的业务运维模式(传统企业还不敢说)。ITIL应该算是运维第一个阶段的指导思想,但在日益快速变化的互联网运维面前,它已经无法胜任。当然现在有些文章也在表达ITIL的思想和DevOps思想的相同之处,比如说也在强调服务生命周期的管理,最佳实践也是在指导系统平台的建设。但我觉得从本质上来讲,ITIL完全没法覆盖运维的活动,其次没有从价值链的传导过程设计运维实践,比如说持续集成,这些都是其致命的弱点。

四、DevOps的核心技术指标(吞吐率和延时)

从DevOps的最佳实践及自动化要求来看,DevOps本质上就是为了更好地解决组织的吞吐率(Throughout)延时(Latency)问题!在前面也谈到过,我们可以把所有的运维活动提炼成面向用户的价值流(flow),这些流从技术层面上来说,真的有点类似于我们线上应用系统的一次请求。对于技术请求来说,对其性能的衡量就是吞吐率和延时,那么对于运维服务性能(Ops performance)来说,也可以转换成吞吐率和延时。那么这两个指标具体有代表什么呢?

1、吞吐率

第一、持续集成性能,可以从不同的团队角色出发提炼出不同的指标。

从研发团队来说,每天触发持续构建及单元测试的数量、....;

从测试团队来说,每天回归测试的数量、每天自动化测试的数量、....;

从运维的角度来说,每天持续部署的数量、生成持续反馈报告的数量、....;

第二、其他的变更性能

一个运维人或者团队,一定周期内的运维变更能力,比如说可以支持多少个业务多少个变更能力。不过这个变更能力取决于两个方面能力,一个是工具的自动化能力;另外一个取决于线上服务公共化的能力。前者大家很好理解,后者大家就不好理解了。举个例子,当一个被调用服务需要扩容的时候,此时这个服务被前端服务放在配置文件中还是DNS服务中,这个变更的复杂度完全是不一样的。

所以对一个运维团队来说,在构建自动化平台的同时,也别忘了和研发一起做架构上的优化,提升运维的吞吐能力。

2、延时

第一、持续集成延时

之前提到过把能力不断前置,其实是把服务的延时不断降低,类似技术架构中的cache机制。我们都知道,为了让业务访问数据库更快,就不断的把数据推到离应用程序更近的地方;为了让用户下载更快,我们把文件通过CDN分布到离用户一公里。过往的实践告诉我们,打破原有的思维定势非常必要。在过去的观点中,运维应该是应用环境的第一负责人和执行人,但在持续部署平台完善的情况下,发布工作可以不断往前推置;DNS服务的管理也可以不断的交给应用运维自己去管理,甚至直接开放API供应用程序直接调度修改使用。这些工作都需要相关团队的彼此推进和结合,否则很难实现以上所说的角色转换。前置的最极致表现,就是用户的行为对系统产生影响的时候(高容量),变更即刻自动化完成。

集中式也必须不断走向分散式,使用去中心化的管理模式。我们都知道中心化能带来良好的管理和控制,但是最大的影响就是效率,多对一的情况下,那个一很容易成为瓶颈。但在无平台的情况下,我不建议这种能力直接往前端推置,不同的人的管理很容易不统一,这个会给后期的统一自动化平台建设带来更大的成本,而在有平台的情况下,把相关的服务能力直接交付给前端。

第二、故障恢复延时

故障恢复越快越好,这就意味着对用户影响更小。但为了达到这个故障恢复延时很小,则需要监控平台、数据平台强大的支持。如果把故障分解成三阶段:发现故障、定位故障、解决故障,则每个步骤依赖的能力是不同的,缩短每一个阶段的延时,是我们日常运维在故障处理这块的工作重点之一。

更高吞吐率、更低延时的运维就是更好的运维,我们须持续不断的推动及优化!

五、DevOps,运维需要做的改变

1、组织的改变

按照以前职能分工的组织结构造成隔离的责任制文化,大家都只关注自己的岗位职责,而不去care其他。但在DevOps的要求之下,运维活动需要经常的跨职能进行,这也要求部门之间需要有一个共享责任的文化氛围去更好的衔接部门之间的关系。当前在国外的一些调查报告中可以看出,已经出现了独立的DevOps部门和DevOps工程师。从组织的角度来说,需要一些DevOps培训,如同组织引入敏捷培训一样。

2、个人的改变

当前每个人要认识到,运维不再是简单的参与维护职责,而是整体事务的推动者和解决者,此时需要利用运维人的全局观去把控整体项目的影响等等。

运维人也需要不断跳出舒适区,去跨界识别风险和提供优化方案;需要让自己变成善于整合资源的人,集中各团队的优势能力,让我们的运维交付更快、服务更稳定。面向问题和面向事务的运维需要往面向用户价值的运维转变!

3、工具观的改变

以前以ITIL为中心的流程系统建设方法论,需要彻底的改变,把持续集成自动化当作第一要务。有了持续集成的平台之后,不断去解决底层(如:操作系统安装)及上层应用调度的自动化,最终形成自底向上的自动化调度平台方案。

其实DevOps不就是那个协同效率的解决方案么?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 互联网运维杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
运维自动化的最佳实践探索
大家好,这些年来,我经历了不同形态的业务和不同规模的运维,今天我主要和大家分享我这些年来关于运维自动化的一些认识和实践,包括如下八点:
用户1593318
2019/11/20
1.7K0
运维自动化的最佳实践探索
什么是 DevOps 三步工作法?
本文将介绍《DevOps Handbook》全书的核心:三步工作法。《DevOps Handbook》全书就是从三步工作法的思路出发,进行知识体系的组织和实践的编排。 简单说一下拆书联盟的活动,目前有几位小伙伴一起做拆书活动,首先由我做来第一期,然后是石雪峰,他是乐视配置管理和持续交付部门总监,他会给大家带来第二期拆书活动,后面还有王磊、大梁、景韵、赵班长等同学,都会参与到读书分享过程中。如果大家有兴趣可以联系我们,继续扩大阵容。 三步工作法是什么?如何通过三步工作法来指导DevOps的整体实施?以及它的核
DevOps时代
2018/02/02
4.6K0
什么是 DevOps 三步工作法?
DevOps到底是什么?2个基础1个核心
“ 通过一篇文章介绍清楚DevOps整个思想体系,包括精益生产、敏捷、价值流、关键实践等。”
九零后在互联网
2023/02/06
1.1K0
【扯淡篇】运维产品化,才是真正的运维蜕变
在很早以前,记得给YY的产品经理讲什么是运维,当时给运维提炼出一个成熟度模型,囿于当时的认识,用技术模型来做了总结,简单总结如下:
用户1593318
2019/11/18
2.6K0
DevOps 温故知新
【引】伴随着微服务架构以及云技术的广泛使用,DevOps相应地引起了人们的关注,尤其在互联网企业展开了大量的探索和实践。去年赋闲在家的时候, 有幸精读了三本书,分别是《持续架构实践——敏捷和DevOps时代下的软件架构》,《精益DevOps——快速安全的IT交付宝典》和《基础设施即代码——模型驱动的DevOps》, 于是,温故知新,老码农对DevOps 又有了不同的体会。
半吊子全栈工匠
2024/05/14
1410
DevOps 温故知新
企业实施DevOps的七大挑战|洞见
DevOps这个词在近年来可谓大火。从2014年底我开始给一些企业做持续交付/DevOps相关的评估和咨询,似乎每个企业都表示想要推行DevOps,或者说他们正在做DevOps。这把火蔓延的速度远远超过当年敏捷在IT行业的传播。然而有些企业管理者对DevOps的认知让我们意识到,由于各种有意或无意的因素,这个概念不幸地成为了一个让人困惑的buzz word…… 什么是DevOps? 这里我想列出四种我们在市场上、企业咨询以及社区交流过程中接触到的认知: 一些企业的运维部门找我们,说要搞DevOps。我请他们
ThoughtWorks
2018/04/17
7820
企业实施DevOps的七大挑战|洞见
运维助力敏捷交付-我们的运维看板
导言: 在许多工作场景中运维经常遇到的很多问题实际上和研发、质量、测试是有关联的,运维作为产品交付的最后环节遇到的很多问题其实和研发遇到的也非常类似。于是我向廖君仪老师询问能不能把敏捷看板带到运维团队内部,使用敏捷的方法来解决这些问题。 接下来我们会从上到下跟大家分享以下五部分:运维面临的挑战,敏捷开发方法,还有我们的运维看板,以及敏捷软件生命周期,最后是我们的结论:运维也可以敏捷。我们希望通过这次分享向大家交付两个内容,第一点,理解敏捷是什么,第二点大家回去后能尝试进行看板实践。 运维的挑战 运维到底能在
DevOps时代
2018/02/02
3K0
运维助力敏捷交付-我们的运维看板
DevOps在传统企业的落地实践及案例分享
摘要 在传统支撑模式无法满足业务价值快速交付要求的情况下,传统企业应该如何引入DevOps能力进行突破创新,本次分享将从以下几个方面具体探讨DevOps如何与传统融合进而落地: 1.DevOps的整体
IT大咖说
2018/04/04
1.2K0
DevOps在传统企业的落地实践及案例分享
什么是DevOps?
DevOps概念已经被越来越多的人所熟知,本文将从不同职能与DevOps的联系,以及DevOps运动如何演变入手,希望可以帮助你对DevOps有更深刻的理解。
增强现实核心技术产业联盟
2020/07/10
1K0
DevOps让运维人做到去运维化认知
在这次的DevOpsdays大会上了,我的演讲主题是《DevOps,驱动应用从运维走向管理》,我为什么分享这样的主题?
用户1593318
2019/11/19
9480
从优秀到卓越,2020,DevOps 路在何方
DevOps 的历史要从一个比利时的独立IT咨询师说起。这位咨询师的名字叫做Patrick Debois,他喜欢从各个角度研究IT组织。2007年,Patrick参与了比利时一个政府下属部门的大型数据中心迁移的项目。在这个项目中,他负责测试和验证工作。所以他不光要和开发团队(Dev)一起工作,也要和运维团队(Ops)一起工作。
DevOps时代
2020/05/18
7170
什么是devops
DevOps 这个术语最早出现在 2009 年,由 Andrew Shafer 和 Patrick Debois 提出。DevOps 的出现是对传统 IT 实践的一种回应,特别是针对长期以来开发(Dev)与运维(Ops)之间的隔阂。这种隔阂导致了沟通不畅、协作效率低下等问题,进而影响了产品的上市时间和质量。
linus_lin
2024/12/30
1390
什么是devops
详解~前端人需要了解的DevOps
DevOps 日渐成为研发人员耳熟能详的一个组合词,但什么是 DevOps,为什么 DevOps 对于互联网企业如此重要,真正将其思考透彻的人却不多,带着这些困惑,本文将带你一探 DevOps 的起源、原则和实践,让你搞清楚到底何为 DevOps。
zz_jesse
2021/07/30
6250
《DevOps权威指南》电子试读版-第一章-DevOps的发展轨迹和特点
在计算机刚出现的时候,软件开发只是少数人的“特权”,在此期间,从业者具备高学历的特征。在那个时期,只有 “程序”(program),没有“软件”(software),因此,当时编写程序的人员被称为“程序员”(programmer)。学习编程的基本材料只是计算机设备厂商附送的产品使用手册。因此,一些企业只能先购买设备,再自己培养编程人才。图 1-2中的女人是格蕾丝·霍珀(Grace Hopper),她是编程界的传奇人物。(图1-2引自《宽带:创造互联网的女性的不朽故事》。)
顾黄亮
2022/01/09
6120
《DevOps权威指南》电子试读版-第一章-DevOps的发展轨迹和特点
DevOps 从理论到实践指南
如今 DevOps 已经成为一个流行词,很多公司都在说自己在做 DevOps,但是每个人、每家公司理解的 DevOps 又不尽相同,从 DevOps 诞生的第一天起,如何定义 DevOps 就是一个争论不休的话题。
笑看
2019/10/29
7120
TW洞见 |建设DevOps能力到底有多重要?典型问题+对症方法
当软件行业进入互联网时代,市场对软件产品和服务的交付提出了更高的要求:不仅要快速实现需求,而且要快速发布上线,并且必须保证业务可靠、高效运行。为了满足这些要求,IT组织需要强有力的流程、技术和人员作为保障。 ThoughtWorks很早就认识到发布与运营对于成功交付的重要性。我们的创始人Roy Singham在《走完业务软件的“最后一公里”》一文中指出: 所谓[软件开发的]“最后一公里”,是指软件满足了功能需求之后,尚未投入实际运行并创造业务价值的阶段。软件开发者──尤其是面对交付压力的软件开发者──
ThoughtWorks
2018/04/16
8540
TW洞见 |建设DevOps能力到底有多重要?典型问题+对症方法
DevOps推动科技管理敏捷转型
银保监会2022年2号文中提到,要大力推动金融企业科技管理敏捷转型,建立双态数字管理体系,建设企业级一站式研发协同平台,并结合精益生产管理理念,实现企业全方位转型升级。
嘉为蓝鲸
2022/08/29
1.3K0
DevOps推动科技管理敏捷转型
敏捷软件开发-规模化敏捷框架(SAFe)
SAFe ® for Lean Enterprises 是一个知识库,其中包含使用精益、敏捷和 DevOps 实现业务敏捷性的经过验证的集成原则、实践和能力。
学习中心
2023/03/28
2.3K0
DevOps研发模式下CI/CD实践详解指南
借着公司今年新组建的中台研发部东风,我作为其中的主要负责人,在研发中心主导推行DevOps研发管理模式转变及质量管理创新建设,本篇文章摘取自今年9月底,笔者在公司内部针对全体研发人员的一次DevOps培训PPT中的部分内容,涉及公司敏感信息和部分章节内容顺序已经作过处理。
测试开发技术
2019/12/09
1.4K0
DevOps研发模式下CI/CD实践详解指南
【扯淡篇】ITIL,是否已是昨日黄花
首先声明自己不是ITIL方面的专家,特别是具体的规范细节,后面论述如有不当,请指正。但我为什么会提起它?主要是因为它和运维(IT服务管理)相关性太大了。早起的运维完全就是以ITIL来蓝本构建的,在当时公司中还有ITIL学习小组/实践活动、ITIL的外部顾问培训等等。后来在YY的时候,当时实践CMDB、事件管理的时候,也是参照了其具体的规范和要求。我建议大家在讲ITIL的时候,一定要把ITSMF授权荷兰人Jan Van Bon写的两本书都看一下,可以迅速扫盲,避免对ITIL的耍流氓式理解。
用户1593318
2019/11/18
1.7K0
推荐阅读
相关推荐
运维自动化的最佳实践探索
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档