一、DevOps的由来和概念

1. 由来

  • 2009年6月:美国圣荷西,第二届Velocity大会上最大的亮点是一个名为“10+ Deploys Per Day: Dev and Ops Cooperation at Flickr”的演讲,可以作为DevOps萌发的标志。这个演讲提出了DevOps的“一个中心,两个基本点”——以业务敏捷为中心,构造适应快速发布软件的工具(Tools)和文化(Culture)。

  • 2009 年 10月,Patrick想通过 Twitter 召集开发工程师和运维工程师在比利时根特举办一个类似于Velocity的大会,会议名称叫做DevOpsDays,取得了出乎意料的成功,然而, DevOpsDays的讨论仍在Twitter上继续着。由于Twitter140个字符的限制,大家在Twitter 上去掉了DevOps中的Days,保留了DevOps。于是,DevOps这个称谓正式诞生。

  • 2010 年:在DevOpsDays之后,DevOps被越来越多的人所熟知并迅速得到了大多数人的认可。人们认为这正是IT部门的正确运作方式,DevOps成为了一种促成开发运维合作的运动。为了统一化DevOps的见解的需要,The Agile Admin博客发表“What is DevOps”, 给出了详细 DevOps 的定义,并且依据敏捷的体系构造出了DevOps的体系: 它包括一系列价值观、原则、方法、实践以及对应的工具。并且梳理了DevOps的历史和对DevOps 的一些误解。

  • 2010 年:《持续交付》的作者Jez Humble参加了第二届的DevOpsDays并做了 “持续交付”的演讲。“持续交付”是“持续集成”的延伸,而这点恰恰和2008年敏捷大会中的观念一致。但由于发生时间的先后关系,“持续交付”被看作是敏捷以及DevOps文化的产物。而今,持续交付仍然被作为DevOps的核心实践之一被广泛谈及。

2. DevOps概念解析

(1)来自不同渠道和来源的定义:

  • 百度百科:DevOps是一组过程、方法与系统的统称,用于促进开发(应用软件和软件工程等)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现时由于软件行业日益清晰地认识到,为了按时交付软件产品和服务,开发团队和运营团队必须紧密合作。

  • 维基百科:DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。其通过对“软件交付”和“架构变更”的流程进行自动化,使得构建、测试、发布软件更加快捷、频繁和可靠。

  • Wikipedia:DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个集合。它是人们为了及时生产软件产品或服务,以满足某个业务目标,对开发与运维之间相互依存关系的一种新的理解。 …DevOps并不仅仅关注软件部署,它是部门间沟通协作的一组流程和方法。

  • IBM:DevOps是一种软件交付方法,它基于精益和敏捷的软件开发,在需求人员、开发人员、测试人员、运维人员的协同下,保证软件的交付能够基于真实的用户反馈。

  • CA:DevOps是通过文化、流程、工具的转换和改进以加速软件交付的。

  • Gartner认为:DevOps代表一种文化的转变,它通过敏捷和精益实践来进行IT服务的快速交付。DevOps寻求开发团队和运维团队进行合作,同时强调利用技术对软件进行改善,尤其是使用工具对软件的整个生命周期的自动化进行改善。

  • DevOps是一种文化转变,或者说是一个鼓励更好地交流和协作(即团队合作)以便于更快地构建可靠性更高、质量更好的软件的运动。(CloudTechnology Partners公司的副总裁兼首席架构师Mike Kavis)

(2)其他摘录

  1. DevOps是软件开发、运维和质量保证三个部门之间的沟通、协作和集成所采用的流程、方法和体系的一个结合,体现了精益管理中的客户价值原则,即以客户的观点来确定企业从设计到生产交付的过程,实现客户需要的最大满足。实现的关键有两点:一是全局观,二是自动化。

  2. DevOps=Culture+Tools,DevOps是一个循环递进的过程,通过文化的指引,打造符合当前组织和文化的相关工具链,固化协作的规范、流程;然后随着工具落地、实践推广,促使组织更快地发展和改进产品,从而进一步加强协作文化和方式。所有未通过工具/平台固化下来的流程规范,如果仅仅依靠文档和意识,当团队迅速扩大时,其腐化速度是超过想象的。

  3. DevOps是对敏捷软件开发和精益生产思想的演进,应用于IT端到端的价值链中,使得业务基于现代信息技术,并通过文化、组织与技术变革来获得更大的成功。实施DevOps可以:缩短市场响应事件、减少技术债务、消除脆弱性。

  4. SRE由Google提出,即Site Reliability Engineering网站可用性工程,把运维(Operation)问题当成软件问题来看,用工程化的思路解决网站可靠性问题,就是用软件和自动化来替代传统运维工程师的工作。它和DevOps是同一种思想,如果关系到可靠性,可以理解为SRE,否则就理解成DevOps。

二、DevOps 工作流程

DevOps 工作流程提供了输入顺序的直观概述。 此外,它还告诉您执行了哪个操作,并为操作过程生成了输出。
在这里插入图片描述
DevOps 工作流程允许分离和安排用户最需要的工作。 此外,它还可以在配置工作中反映其理想过程。

1. DevOps的好处与价值

对于业务与产品而言,DevOps的好处更多基于持续部署与交付。
从组织结构而言,DevOps是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。

  • 代码的提交直接触发:消除等待时间,快速反馈
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
  • 全开发流程高效自动化:稳定,快速,交付结果可预测
  • 持续进行自动化回归测试:提升交付质量
  • 设施共享并按需提供:资源利用最大化

2. DevOps能力环

在这里插入图片描述
DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
在这里插入图片描述

这个定位稍微有点抽象,但是并不难理解。反正它不是某一个特定软件、工具或平台的名字。

从目标来看,DevOps就是让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件整体过程更加快捷和可靠。

在这里插入图片描述

破墙工具

很多人可能觉得,所谓DevOps,不就是Dev+Ops嘛,把两个团队合并,或者将运维划归开发,不就完事了嘛,简单粗暴。

注意,这个观点是不对的。这也是DevOps这些年一直难以落地的主要原因。

想要将DevOps真正落地,首先第一点,是思维转变,也就是“洗脑”。不仅是运维的要洗,开发的也要洗。员工要洗,领导更要洗。

DevOps并不仅仅是组织架构变革,更是企业文化和思想观念的变革。如果不能改变观念,即使将员工放在一起,也不会产生火花。

除了洗脑之外,就是根据DevOps思想重新梳理全流程的规范和标准。

在DevOps的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

DevOps的实施,促进开发和运维人员的沟通,增进彼此的理解。

在思维和流程改变的同时,想要充分落地DevOps,当然离不开软件和平台的支持。

三、devops流程工具

DevOps的目标不是单靠一款工具就能实现的。
在各个阶段,每个都有其单独对应的目标。
依赖于组织的选择,有着各种各样的工具可以在相应的背景和趋势下,实现当前业务目标,满足中远期的需求。
在这里插入图片描述
在这里插入图片描述

四、DevOps发展现状

目前,DevOps处于高速增长的阶段。尤其是在大企业中,DevOps受到了广泛的欢迎。

根据最近调查发现,74%的受访者已经接受了DevOps,而前一年这一比例为66%。

哪些互联网公司采用DevOps开发软件产品?

越大的企业,越喜欢DevOps。包括国内的腾讯阿里百度美团,国外的AdobeAmazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Walmart、Sony等公司,都在采用DevOps。

如今,DevOps几乎已经成为了软件工程的代名词。

DevOps迅猛发展,相关专业人才的薪资待遇也跟着水涨船高。

根据调研,DevOps工程师在美国的平均年薪为130000美金,在中国平均年薪也在40万-50万区间,能力强者年薪百万也是比比皆是。

在这里插入图片描述

Logo

更多推荐