【转】DevOps的前世今生

2023-11-12

目前在国外,互联网巨头如Google、Facebook、Amazon、LinkedIn、Netflix、Airbnb,传统软件公司如Adobe、IBM、Microsoft、SAP等,亦或是网络业务非核心企业如苹果、沃尔玛、索尼影视娱乐、星巴克等都在采用DevOps或提供相关支持产品。那么DevOps究竟是怎样一回事?在Puppet、RightScale分别DevOps出版的调查报告基础上,整理本文,以期为读者理清思路。另外,中国正在开展了一份自己的调查问卷,由南京大学发起,欢迎大家投票参与

DevOps是什么?从哪里来?

DevOps的概念

DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

DevOps概念早先升温于2009年的欧洲,因传统模式的运维之痛而生。
这里写图片描述
DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。
这里写图片描述
换句话说,DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。
这里写图片描述

历史变革

由上所述,相信大家对DevOps有了一定的了解。但是除了触及工具链之外,作为文化和技术的方法论,DevOps还需要公司在组织文化上的变革。回顾软件行业的研发模式,可以发现大致有三个阶段:瀑布式开发、敏捷开发、DevOps。

DevOps早在九年前就有人提出来,但是,为什么这两年才开始受到越来越多的企业重视和实践呢?因为DevOps的发展是独木不成林的,现在有越来越多的技术支撑。微服务架构理念、容器技术使得DevOps的实施变得更加容易,计算能力提升和云环境的发展使得快速开发的产品可以立刻获得更广泛的使用。
这里写图片描述
(注:上图摘自上月红帽副总裁Ashesh Badani的一次新闻分享会)

DevOps的几个关键问题

好处是什么?

DevOps的一个巨大好处就是可以高效交付,这也正好是它的初衷。Puppet和DevOps Research and Assessment (DORA) 主办了2016年DevOps调查报告,根据全球4600位各IT公司的技术工作者的提交数据统计,得出高效公司平均每年可以完成1460次部署。与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。

DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感;调查显示高效员工的雇员净推荐值(eNPS:employee Net Promoter Score)更高,即对公司更加认同。

快速部署同时提高IT稳定性。这难道不矛盾吗?

快速的部署其实可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的变化是比较小的,出现问题的偏差每次都不会太大,修复起来也会相对容易一些。
这里写图片描述
因此,认为速度就意味着危险是一种偏见。此外,滞后软件服务的发布也并不一定会完全地避免问题,在竞争日益激烈的IT行业,这反而可能错失了软件的发布时机。

为什么DevOps会兴起?为什么会继续火下去?

条件成熟:技术配套发展

技术的发展使得DevOps有了更多的配合。早期时,大家虽然意识到了这个问题的,但是苦于当时没有完善丰富的技术工具,是一种“理想很丰满,但是现实很骨感”的情况。DevOps的实现可以基于新兴的容器技术;也可以在自动化运维工具Puppet、SaltStack、Ansible之后的延伸;还可以构建在传统的Cloud Foundry、OpenShift等PaaS厂商之上。

来自市场的外部需求:这世界变化太快

IT行业已经越来越与市场的经济发展紧密挂钩,专家们认为IT将会有支持中心变成利润驱动中心。事实上,这个变化已经开始了,这不仅体现在Google、苹果这些大企业中,而且也发生在传统行业中,比如出租车业务中的Uber、酒店连锁行业中的Airbnb、图书经销商Amazon等等。能否让公司的IT配套方案及时跟上市场需求的步伐,在今天显得至关重要。

DevOps 2016年度报告给出了一个运维成本的计算公式:
停机费用成本 = 部署频率 * 版本迭代失败概率 * 平均修复时间 * 断电的金钱损失

来自团队的内在动力:工程师也需要

对于工程师而言,他们也是DevOps的受益者。微软资深工程师Scott Hanselman说过“对于开发者而言,最有力的工具就是自动化工具”(The most powerful tool we have as developers is automation)。工具链的打通使得开发者们在交付软件时可以完成生产环境的构建、测试和运行;正如Amazon的VP兼CTO Werner Vogels那句让人印象深刻的话:“谁开发谁运行”。(You build it, you run it)

实现DevOps需要什么?

硬性要求:工具上的准备

上文提到了工具链的打通,那么工具自然就需要做好准备。现将工具类型及对应的不完全列举整理如下:

  • 代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
  • 构建工具:Ant、Gradle、maven
  • 自动部署:Capistrano、CodeDeploy
  • 持续集成(CI):Bamboo、Hudson、Jenkins
  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock - GuardRail
  • 容器:Docker、LXC、第三方厂商如AWS
  • 编排:Kubernetes、Core、Apache Mesos、DC/OS
  • 服务注册与发现:Zookeeper、etcd、Consul
  • 脚本语言:python、ruby、shell
  • 日志管理:ELK、Logentries
  • 系统监控:Datadog、Graphite、Icinga、Nagios
  • 性能监控:AppDynamics、New Relic、Splunk
  • 压力测试:JMeter、Blaze Meter、loader.io
  • 预警:PagerDuty、pingdom、厂商自带如AWS SNS
  • HTTP加速器:Varnish
  • 消息总线:ActiveMQ、SQS
  • 应用服务器:Tomcat、JBoss
  • Web服务器:Apache、Nginx、IIS
  • 数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
  • 项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker

在工具的选择上,需要结合公司业务需求和技术团队情况而定。(注:更多关于工具的详细介绍可以参见此文:51 Best DevOps Tools for #DevOps Engineers)

软性需求:文化和人

DevOps成功与否,公司组织是否利于协作是关键。开发人员和运维人员可以良好沟通互相学习,从而拥有高生产力。并且协作也存在于业务人员与开发人员之间。出席了2016年伦敦企业级DevOps峰会的ITV公司在2012年就开始落地DevOps,其通用平台主管Clark在接受了InfoQ的采访,在谈及成功时表示,业务人员非常清楚他们希望在最小化可行产品中实现什么,工程师们就按需交付,不做多余工作。这样,工程师们使用通用的平台(即打通的工具链)得到更好的一致性和更高的质量。此外,DevOps对工程师个人的要求也提高了,很多专家也认为招募到优秀的人才也是一个挑战。

DevOps的采用现状

哪些公司在用?

DevOps正在增长,尤其是在大企业中:调查发现,DevOps的接受度有了显著提高。74%的受访者已经接受了DevOps,而去年这一比例为66%。目前,在81%的大企业开始接受DevOps,中小企业的接受度仅为70%。

那么具体而言都有些公司在采用DevOps呢?Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Target(泛欧实时全额自动清算系统)、Walmart、Sony等等。

他们怎么实施的?

首先,大企业正在自下而上接受DevOps,其中业务单位或部门(31%)以及项目和团队(29%)已经实施DevOps。不过,只有21%的大企业在整个公司范围内采用了DevOps。
其次,在工具层面上,DevOps工具的用量大幅激增。Chef和Puppet依然是最常用的DevOps工具,使用率均为32%。Docker是年增长率最快的工具,用量增长一倍以上。Ansible的用量也有显著增加,使用率从10%翻倍至20%。
这里写图片描述
并且调查还发现不到半数(43%)的公司在使用诸如Chef、Puppet、Ansible或Salt等配置工具;然而使用配置工具的公司更有可能同时使用多个工具。25%的受访者使用两种或更多配置工具,只使用一种工具的比例为18%。其中Chef和Puppet是最常用的组合:使用Chef的组织中有67%同时也使用Puppet,类似的,使用Puppet的组织中也有67%同时使用了Chef。
这里写图片描述

中国也在准备一份DevOps的报告

文中的统计数据来自于国外的DevOps调研报告。其中由Puppet发起的DevOps年度国际调查报告已经连续出版五年,先后收集了2.5万技术人员的答卷;2016年收集的有效答卷为4600份,不过仅有10%来自于亚洲。我们并不认为这样的采样率和采样数量可以充分地反映中国的DevOps行业现状。

目前,依托DevOps中国社区成员的积极参与支持,由南京大学发起开展《DevOps中国2016年度调查》活动。期望通过本次问卷调查,收集DevOps的率先实践者们关于DevOps实践及经验的相关信息,从而了解DevOps在中国推广应用的状况,并汇总在DevOps实践中可能遇到的障碍、挑战和最佳实践,最终通过调查报告进一步促进DevOps在中国的认知和推广,同时为DevOps的每一位实践者提供有价值的参考信息和帮助。

调查问卷的设计主要参考了国际上2014-2016年度的《State of DevOps Report》及《State of Agile Report》的调查问卷设计,以实现信息数据在国内和国际之间的可比性,并根据业内专家意见经过多轮修改。目前问卷中英文版已上线,点此可进行中文版调查。本次问卷调查为学术公益性质,所形成的年度调查报告将免费公开。

期待大家能填写调查问卷,支持中国DevOps的发展!

参考文章:
http://www.infoq.com/cn/news/2016/08/essence-enterprise-accelerate-op
http://www.infoq.com/cn/news/2016/09/devops-enterprise-ITV
https://devup.co/a-look-at-devops-tools-landscape-7220099c6b81#.oehabi9xp
https://en.wikipedia.org/wiki/DevOps
https://puppet.com/resources/white-paper/2016-state-of-devops-report
http://www.rightscale.com/lp/devops-trends-report


【原地址】http://www.infoq.com/cn/news/2016/09/learn-devops-from-reports

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【转】DevOps的前世今生 的相关文章

随机推荐

  • yolov8保存结果

    找到predictor py文件加上如下代码 for result in self results path result path split images 1 split 0 boxes result boxes box boxes c
  • oracle 数据库truncate,Oracle中的truncate用法

    语法 TRUNCATE TABLE table 在使用truncate语句 DDL语言 可以删除表中的所有记录 使用truncate语句删除数据时 通常要比使用delete语句快得多 这是因为使用truncate语句删除数据时 不会产生任何
  • Spring中进行事务管理的两种方式

    1 Spring中事务管理的API 事务是指逻辑上要么全部成功 要么全部失败的一组操作 例如用户A给用户B转账 则用户A账户余额减少 用户B账户增加这两个操作就是一组事务 必须全部成功或失败撤回操作 不能出现A账户余额减少 B增加失败的情况
  • gvim 编译选项没支持Python. gvim is not python supported

    windows 安装 vim tux 该版本开启了所有的编译支持选项
  • 软件测试工程师工作总结

    1 为什么要在一个团队中开展软件测试工作 因为没有经过测试的软件很难在发布之前知道该软件的质量 就好比ISO质量认证一样 测试同样也需要质量的保证 这个时候就需要在团队中开展软件测试的工作 在测试的过程发现软件中存在的问题 及时让开发人员得
  • 三维物体追踪笔记(1)-基于边缘的三维物体追踪——理论、公式推导与实现

    1 基于边缘检测的三维跟踪建模 三维物体追踪是已知图像中某个物体在已知一系列空间三维点位置 或者是一个3D 模型面片集 的信息下 将这些点通过一个恰到好处的位姿 R t 进行转换后投影到图像上 问题的求解目标是这个位姿 R t 难点是并不知
  • 华院计算

    郭守敬 1231年 1316年 字若思 河北邢台人 郭守敬出生于金哀宗正大八年 1231年 时为宋朝 960年 1279年 但当年的河北地域属于女真族人管治的金国 他40岁那年 大蒙古国忽必烈 1215年 1294年 打败了西夏和金国 建立
  • 北大igem生物计算机,喜讯|北京大学iGEM团队在国际大赛中取得金牌

    原标题 喜讯 北京大学iGEM团队在国际大赛中取得金牌 美国东部时间2017年11月13日下午 在波士顿Hynes会议中心举办的国际基因工程机器大赛 International Genetically Engineered Machine
  • YOLO 算法系列

    我们分享了YOLO系列的文章 包括前段时间刚刚发布的YOLOv7检测算法 虽然YOLOv7对象检测算法是YOLO最新的模型 且可以支持对象分割 人体姿态检测等 但是最新的YOLO系列检测模型也同步进行了更新 那就是刚刚开源的YOLOv8对象
  • 在Ubuntu20.10中搭建TFTP服务器

    TFTP Trivial File Transfer Protocol 是用来下载远程文件的最简单的网络协议 它基于UDP协议而实现 一 安装 sudo apt get install tftp hpa tftpd hpa tftp hpa
  • Apache Hive基础

    Apache Hive基础 Hive优势 提供了一个简单的优化模型 HQL类SQL语法 简化MR开发 支持在不同的计算框架上运行 支持在HDFS和HBase上临时查询数据 支持用户自定义函数 格式 成熟的JDBC和ODBC驱动程序 用于ET
  • matlab如何预测数据,matlab预测数据

    基于MATLAB 的人口预测模型 摘要 本文以 1980 2014 年中国年终总人口数据资料为依据 分别使用了一次拟合 灰色预 测模型和时间序列模型进行拟合 最终得出时间序列模型 基于MATLAB 的人口预测方法分析 易亮 摘要 摘要 本文
  • Android Looper Handler 机制浅析

    最近想写个播放器demo 里面要用到 Looper Handler 看了很多资料都没能理解透彻 于是决定自己看看相关的源码 并在此记录心得体会 希望能够帮助到有需要的人 本文会以 猜想 log验证 的方式来学习 Android Looper
  • java 执行bat文件

    Java代码 cmd c dir 是执行完dir命令后关闭命令窗口 RequestMapping a ResponseBody public Object a String command cmd c D Users qwer Deskto
  • 基于51单片机的自动浇花浇水系统LCD1602显示仿真

    硬件设计 基本框架 该电路的工作原理是由STC89C52单片机和ADC0832组成系统的核心部分 湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号 选用湿度传感器和AD转换 电路内部包含有湿度采集 AD转换 单片机
  • 7-3 谁是赢家

    7 3 谁是赢家 某电视台的娱乐节目有个表演评审环节 每次安排两位艺人表演 他们的胜负由观众投票和 3 名评委投票两部分共同决定 规则为 如果一位艺人的观众票数高 且得到至少 1 名评委的认可 该艺人就胜出 或艺人的观众票数低 但得到全部评
  • vue 图片,视频点击预览按钮方法

    图片 使用el image viewer组件 写之前注意引入安装组件 主要代码 div class div
  • opencv之初学第3天

    opencv学习第三天 今天学习一下灰度变换 我对图像不是太了解 我还特地学了一下灰度变换与像素的区别 像素 灰度 RGB 分辨率 y xxiii的博客 CSDN博客 像素值和rgb的关系 先来梳理一下不太懂的知识点 1 关于cvtColo
  • Windows下安装zerotier,网络状态提示PORT_ERROR错误解决

    ZeroTier是一款基于P2P的内网穿透工具 支持多客户端 手机电脑可以互通互联 最近为方便nas操作 在电脑上部署安装 结果踩坑 在Windows下使用zerotier时提示PORT ERROR错误 最初以为是端口被屏蔽 关闭防火墙 发
  • 【转】DevOps的前世今生

    目前在国外 互联网巨头如Google Facebook Amazon LinkedIn Netflix Airbnb 传统软件公司如Adobe IBM Microsoft SAP等 亦或是网络业务非核心企业如苹果 沃尔玛 索尼影视娱乐 星巴