写点什么

DevOps 的前世今生

  • 2016-09-18
  • 本文字数:4168 字

    阅读完需:约 14 分钟

目前在国外,互联网巨头如 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、TFS
  • 构建工具:Ant、Gradle、maven
  • 自动部署:Capistrano、CodeDeploy
  • 持续集成(CI):Bamboo、Hudson、Jenkins
  • 配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
  • 容器:Docker、LXC、Rkt、第三方厂商如 AWS
  • 编排:Kubernetes、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

关注高效开发运维长期领取优质文章补给~


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-09-18 19:0013467
用户头像

发布了 58 篇内容, 共 46.1 次阅读, 收获喜欢 35 次。

关注

评论

发布
暂无评论
发现更多内容

整合YashanDB数据库与人工智能技术的优势

数据库砖家

三大 Mac 软件下载站,总有一款适合你!

晨光熹微

IPv6检测指标中的IPv6授权体系是什么意思?(国科云)

国科云

2025校招/社招Java八股文面试题库,横扫大厂后端岗

Geek_Yin

Java 程序员 java面试 Java面试题

优化YashanDB查询逻辑提高响应速度

数据库砖家

Ableton Live 12 Suite v12.2中文版注册机+许可证

Rose

苹果macOS 26兼容设备 macos 26完整pkg安装程序

Rose

怎么才能知道你的Mac的系统性能呢?Geekbench 5性能测试

Rose

CAD看图软件可以进行标注吗?

在路上

cad cad看图 CAD看图王

鸿蒙Next仓颉语言开发实战教程:订单列表

幽蓝计划

现代财务——智能技术背景下的企业变革

智达方通

全面预算管理 财务管理

四维图新与阿里云达成战略合作,联合打造汽车行业一揽子解决方案

科技汇

这几道Java集合框架面试题在面试中几乎必问

Geek_Yin

Java 程序员 java面试 Java面试题

云原生数据库架构设计指南——基于YashanDB的方案解析

数据库砖家

Ableton Live 12 Suite for mac v12.2中文:音乐制作软件

晨光熹微

电线电缆行业MES系统:实现智能制造与全流程追溯

万界星空科技

制造业 mes 万界星空科技mes 电线电缆行业 电线电缆mes

简单了解一下数据安全定义以及意义

行云管家

网络安全 数据安全 堡垒机

ZAB 与 Paxos:分布式一致性算法的工程实践与深度对比

异常君

zookeeper 分布式 ZAB PAXOS Java.

火热报名中丨暨2025第三届中国SRE大会,将于6月26日在上海召开

雅菲奥朗

AI 可观测性 2025SRE大会

3D数字绘画和雕刻 Mudbox 2025新功能

Rose

mac苹果设备电量信息实时显示AirBattery免费

Rose

苹果访达Finder增强工具TotalFinder 中文版,让效率提升!

Rose

基于生成式物理引擎的AI模型训练方法论

申公豹

人工智能

流批一体向量化引擎Flex

Apache Flink

大数据 flink 流批一体

【JeecgBoot AIGC】AI知识库实战应用与搭建

JEECG低代码

AI大模型 AI应用 AIGC JeecgBoot

感谢艾瑞白皮书“点名”,但网易的挖掘机器人真不是“打游戏送的”

网易伏羲

数字孪生 人机协作 网易伏羲 工程机械

Hype 4 Pro 4.1.19 - 创建动画和交互式的Web内容

Rose

如何使用CAD看图软件放大图纸文字?

在路上

cad cad看图 CAD看图王

AI 技术在图书馆业务中的应用

北京木奇移动技术有限公司

软件外包公司 AI技术应用 图书馆信息化

动漫与游戏产业用到堡垒机的必要性你知道吗?

行云管家

网络安全 等保 堡垒机 游戏行业

梁汝波:字节跳动要以持续智能突破,坚定服务产业应用

新消费日报

DevOps的前世今生_语言 & 开发_木环_InfoQ精选文章