链接:https://www.zhihu.com/question/55874411/answer/608052871

DevOps 到底是什么

2018 年,我们走访了近百个分布在各行各业中的 IT 团队,意外的发现,大多数的 IT 团队寻求改革并非来源于部门内部的自我革新,而是来源于业务部门的服务压力。正如同当年企业寻找 ERP,今天的企业将目光投向了 DevOps。但是 DevOps 并非像 ERP 那样可以直接部署的东西,而是一种由主流互联网巨头们所总结出来的的研发管理理念,是 Google、Netflix 等大型互联网公司实现快速迭代的秘诀。

作为一家专注于研发 DevOps 工具链的公司创始人,我在接触客户的时候,发现一个很有趣的现象:所有人都想“做” DevOps 并期待其能为他们带来商业上的成功,却对 DevOps 的核心理念知之甚少。这很大一部分原因是市面上对 DevOps 有着各种各样的说法,导致大家概念的混淆。想要弄清楚 DevOps 到底是什么,必须先从它的本质说起。

软件开发最高效的组织形式是“One Man Work”,只有一个人干活,写个小项目,从需求到开发,从测试到部署全部独立完成,非常高效。但随着业务的增长,项目开始逐渐变得庞大,变成团队,出现了分工,出现了产品经理、项目经理、开发、数据、测试、运维等等角色。这些角色间存在天然的工作目标上的矛盾。

举个例子,对于运维来说,稳定压倒一切,新 Feature 越少越好。而对于研发来说,却希望能开发更多的功能。这种矛盾会导致大量的资源和时间的浪费。就像两匹马拉一辆车,如果马头向着的方向不一致,肯定是没法全速前进的。

DevOps 的理念就是希望能打破这种屏障,让研发(Development)和运维(Operations)一体化,让团队从业务需求出发,向着同一个目标前进。

字面意思上说 DevOps 是指“开发运维一体化”,即通过工具辅助开发完成运维的部分工作,减少成本。但深入理解了 DevOps 之后,你会发现 DevOps 其实是一种软件研发管理的思想,方法论,他追求的是一种没有隔阂的理想的研发协作的状态,可能涉及到的角色有开发、测试、产品、项目管理、运维等等。所以我们认为,为了帮助研发团队在保持质量的前提下提高交付效率的方法和方法论都隶属于 DevOps 的范畴

比如 Google 提出的 5 个 DevOps 原则,这套原则中必须依赖于工具辅助的部分只有后两点,更多的则是对于开发组织形式的内省:

  1. 精简组织架构;
  2. 愿意承担一部分试错带来的损失;
  3. 分阶段地一小步一小步地进行转型;
  4. 最大化地利用工具和自动化流程;
  5. 对所有的过程和结果进行记录和分析。

所以 DevOps 不是简单的开发软件化,而是企业的学习能力不断提升的结果,将企业改造成敏捷应对的学习型组织,运用新的工具,优化组织架构和流程,不断地进行自我革命和创新的方式。工具是辅助,而非基础。


困难重重的 DevOps 落地

在弄清楚了 DevOps 的宏观定义之后,我们再来观察一下 DevOps 目前在国内的实践现状。根据南京大学 «DevOps 中国•2018 年度调研» 的调研报告,目前设有 DevOps 实践团队的公司中,科技和互联网行业占比接近 70%。其他行业的从业者对 DevOps 的认知还存在一定的不足。

这与我们的调研走访体验一致:大多数企业都愿意尝试运用 DevOps ,但是在实践 DevOps 中,普遍碰到了比较大的困难。主要是以下三个原因:

  • 对 DevOps 有不切实际的预期

部分团队为了做 DevOps 而做 DevOps,并没有真正的从业务的角度出发来考虑。

如前文所说,DevOps 不是银弹,高水平的研发团队在 DevOps 实践中将快速找到研发质量与业务增长的平衡点。但对于许多仍然在使用中心化的研发组织形式的团队来说,DevOps 的尝试无法立即获得肉眼可见的增长数据,思索与尝试带来的对团队的训练可能会是第一份收获。

  • 步子迈得太大

新生代互联网公司诞生于 DevOps 理念已经相对成熟的年代,且互联网公司天生地将迭代速度作为追求目标之一,使得这些公司能够在发展的初期,就将 DevOps 的理念融入到公司的架构设计中。

上图是 Netflix 的整个系统架构。如此复杂的系统架构同时还能每天迭代几十个版本,无法通过传统的研发管理模式来维护,只有通过实践 DevOps 的理念,来优化组织的分工、资源和能效,才能得以实现。在这样的组织里,已经不需要有人了解所有模块是做什么,每个人只需要对自己的模块负责。

而很多企业,为了巩固和提高自己的市场竞争力,非常急于达成上述高效的状态,并且希望能一步到位。国内其实大部分团队都没到大规模实践 DevOps 的时间点,有些团队甚至连分支开发、并行开发的方式都没有。我给这类的企业建议是:不要想着一口气吃成个胖子,一步一步来,先理解 DevOps 的理念和对业务的实际意义,然后搭建一只小的 DevOps 团队来承接一项新业务,旧的业务仍然使用旧系统,双轨并行,等待小团队适应了 DevOps 的管理节奏之后再向其他团队进行推广。

之前出过一篇关于 DevOps 的专题报告《四周年 · 专题报告:双速 IT》,也可以作为参考。

  • Toolchain Crisis

实践 DevOps 的原则中很重要的一点就是对工具的运用及依赖工具搭建合适企业的自动化流程。但是目前市面上缺乏成熟的 DevOps 工具链,各个服务商的细分工具层出不穷,企业为了搭建整套 DevOps 流程,需要研究几十种工具,并选取其中的 7-8 种进行落地实践。非常依赖于管理者的项目经验,没有 DevOps 经验的团队起步将会比较困难。

以 CODING 为例。2018 年之前 CODING 产品仅有任务及代码管理模块。我们是这样进行工作的:产品经理在 CODING 上撰写文档创建任务,研发 Leader 将任务分配给开发,开发完成后提交代码,并创建 MR,我们在本地部署了 Jenkins 进行持续集成进行构建和测试,再由其他工程师进行人工评审,通过后并到发布分支,进行预发布,再通过持续集成进行构建,自建 Docker registry 进行构建物管理。构建出的 Docker 镜像在测试环境和预发布环境上依次进行自动化测试及人工测试,测试通过后,使用我们运维自己搭建的工具进行部署管理。

目前 CODING 每天都进行产品迭代,可以快速响应用户需求并保证服务质量,但搭建这一整套的流程高度依赖于团队能力,门槛非常高。

为了降低工具的成本和使用门槛,包括 CODING 在内的很多云服务厂商都在做打通全流程的 DevOps 工具链的尝试,希望可以做到让企业开箱即用,低成本的践行 DevOps 理念,不过目前产品仍处于迭代期,无法满足所有企业的需求。

链接:https://www.zhihu.com/question/55874411/answer/608052871

DevOps 到底是什么到底是什么相关推荐

  1. h5 一镜到底_传说中的一镜到底效果,到底是怎么玩的?

    一镜到底这种高级技术其实已经存在多年了.相信许多人都了解影视行业的人都知道导演和摄影师都喜欢采用这种表现方式.一方面是为了增加画面的内容,烘托剧情.另一方面,则是导演在"旁敲侧击" ...

  2. 九章量子计算机 科学杂志,张礼立 : 中国 “九章”量子计算机到底厉害在哪?...

    对我而言,没学过量子力学,也不是量子计算的专家,但多少对这个话题还是非常感兴趣的,毕竟,数字和信息科技的工作中,很多时候也离不开对量子计算有些讨论和学习. 今天周末,我想就借着这个重大的突破事件,和大 ...

  3. 印度评论九章量子计算机,张礼立:中国 “九章”量子计算机到底厉害在哪?...

    [背景信息]12月4日,<科学>杂志公布了中国"九章"的重大突破. 这台由中国科学技术大学潘建伟.陆朝阳等学者研制的76个光子的量子计算原型机,推动全球量子计算的前沿研 ...

  4. 关于CNN的权重共享,CNN到底学到了什么?

    CNN的fliter里的每个值都是学习出来的不是事先设定好的. 经过fliter处理后得到是特征图(feature map) 卷积减少权重参数的本质: 权重共享,不同的fliter会在某些神经元上权重 ...

  5. 量子计算机九章能否预测未来,张礼立 : 中国 “九章”量子计算机到底厉害在哪?...

    原标题:张礼立 : 中国 "九章"量子计算机到底厉害在哪? [背景信息]12月4日,<科学>杂志公布了 中国 "九章" 的重大突破. 这台由中国科学 ...

  6. 前端js框架到底有哪些?

    做前端开发的都知道3大框架:Angular,Vue,React.但是除了这三个框架以外的前端框架还有那些?他们在前端技术的发展中有什么样的作用?哪些网站还在用它们? 下面具体介绍下前端都有那些框架: ...

  7. 数值策划到底需要多高的水平

    1.有人说数值策划的门槛很低,小学四年级就可以上. 2.也有人认为数值策划门槛很高,甚至要求是经济学,数学专业的人. 那到底数值策划到底需要多高的技术和技能才适合做呢?我更倾向于用软件技术里的数据流来 ...

  8. SQLite优化之路——让SQLite油门到底

    1.前言   以前对于数据库中的知识,只是知道其理论.并没有真正的接触过大量数据的数据库,没有经过实践(除了简单的增删改查,或者随便建个索引看看效率是不是提升了).所以对于很多知识,其实根本就没有弄明 ...

  9. 如何建设移动 DevOps?

    简介:DevOps这一优秀的软件交付理念在服务端已经有很多相关的实践,那么是否也可以应用到移动端进行交付呢?基于移动端和服务端场景的差异,移动DevOps跟服务端DevOps又有哪些不同和挑战?本文分 ...

最新文章

  1. 布兰森:激励是最好的加速器
  2. BLAST引物或靶点特异性
  3. IOS 非常流畅的滑动tableView
  4. 机电传动控制第三次作业
  5. ffmpeg 从mp4上提取H264的nalu
  6. delphi if多个条件_屡试不爽!使用策略模式代替多个if条件语句
  7. sql 2008找不到服务器,sql server 2005 数据库迁移问题总结——错误 ‘80004005’ 在 sys.servers 中找不到服务器 ‘XXX’...
  8. 数据库---增删改查
  9. c++将文本中的字符串一次读入到内存
  10. [转]Http Message结构学习总结
  11. 如何在一个bat批处理文件中调用另一个bat批处理文件?
  12. YUV 和 YUV420
  13. vue项目安装axios
  14. 小米路由r1c 刷番茄_充分利用番茄路由器的5条提示
  15. 实习商汤,校招华为,我的深度学习之路
  16. linux日志关键词高亮,【转载】Linux使用tailf高亮显示关键字
  17. SDUT 3337 计算长方体、四棱锥的表面积和体积
  18. Python第四课:input()函数
  19. apache安装完成后,语法检查一直报错,哭唧唧T ^ T
  20. Ubuntu14.04搭建LXR本地服务器阅读Linux内核代码

热门文章

  1. 第一个项目的cmd代码
  2. 飞桨day-04 NLP实践作业
  3. 3万字长文带你轻松入门视觉Transformer
  4. php zlib decompress,PHP - Manual: Phar::decompress (官方文档)
  5. InfluxDB使用教程:数据库管理工具InfluxDBStudio
  6. 【兴趣阅读】DeepInf: Social Influence Prediction with Deep Learning
  7. @Kubernetes(k8s)
  8. 单节点Rancher离线安装的关键一步
  9. python爬取电影信息并插入至MySQL数据库
  10. 为什么要开发问卷调查APP?