AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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:0013366
用户头像

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

关注

评论

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

AI浪潮再掀低代码开发热,快来了解最新趋势!

加入高科技仿生人

人工智能 低代码 AI技术

软件测试/测试开发丨Web自动化测试高级定位xpath

测试人

程序员 软件测试 自动化测试 测试开发

Wallys/DR5018+QCN6122/support for the latest Wi-Fi standards in networking devices.

Cindy-wallys

ipq5018 QCN6102 QCN6122

艾媒咨询 | 2023年中国信创产业发展白皮书

亚信AntDB数据库

数据库 AntDB AntDB数据库

基于 Log 的通用增量 Checkpoint

Apache Flink

大数据 flink 实时计算

详解RocketMQ 顺序消费机制

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

「ACL 2023」:火山语音团队多篇论文中选,涉多方向技术创新突破

科技热闻

探索 PlanetIX:解读区块链游戏运营的奥秘

Footprint Analytics

区块链游戏 web3 Planet IX

财务共享五大价值助力央企构建世界一流财务管理体系

用友BIP

财务共享

利用透明压缩技术解决企业级SSD读写延迟挑战

ScaleFlux

压缩算法 固态硬盘 企业存储

进阶神册!Redis+Nginx+设计模式+Spring全家桶+Dubbo核心技术笔记

程序知音

Java 数据库 spring java架构 Java进阶

inBuilder今日分享丨表单设计器画布渲染引擎揭秘

inBuilder低代码平台

多元办公场景下,企业如何保障工作效率与数据安全流通?

人称T客

用友BIP新一代全球司库,重塑企业资金管理新价值

用友BIP

全球司库

财务标准化建设进程中,财务共享能起到什么作用?

用友BIP

财务共享

商业地产研策如何搜集数据​

MobTech袤博科技

怎样才能让业财融合真正为企业数智化转型起到推动作用?

用友BIP

财务共享

活动回顾丨首期阿里云 Serverless 技术创新实战营上海开讲(含 PPT 下载)

Serverless Devs

如何进行存储容量规划?

ScaleFlux

存储成本 数据压缩 企业级SSD NVMeSSD

ScaleFlux企业级SSD通过VMware IOVP认证

ScaleFlux

vmware 固态硬盘 企业SSD 存储解决方案

MegEngine 使用小技巧:如何解读 MegCC 编译模型几个阶段 Pass 的作用

MegEngineBot

深度学习 编译器 MegEngine Pass

论数字化大趋势下,建设财务共享中心的重要性

用友BIP

财务共享

水泥行业全球第一企业怎么进行财务共享建设?

用友BIP

财务共享

旅游景区如何寻找共享电单车厂家

共享电单车厂家

共享电动车厂家 景区共享电单车 共享电动车投放 景区共享电动车

西南财经大学李玉周:数智化技术广泛使用推动管理会计加快落地

用友BIP

智能会计 价值财务

怎样将图片直接转换为3d模型?

真大的脸盆

Mac Mac 软件 图片转换工具 图片转换模型软件

艾媒金榜|2023年中国信创企业百强榜

亚信AntDB数据库

数据库 AntDB AntDB数据库

阿里一面凉凉,幸获内推华为技术四面,offer到手!

程序知音

Java java面试 Java进阶 八股文 Java面试八股文

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

通过SQL获取每个月第n周任意天的数据

搞大屏的小北

sql查询 sql 第一周 每个月 周一

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