【转】DevOps到底是什么意思?

提到DevOps这个词,我相信很多人一定不会陌生。

作为一个热门的概念,DevOps近年来频频出现在各大技术社区和媒体的文章中,备受行业大咖的追捧,也吸引了很多吃瓜群众的围观。

那么,DevOps是什么呢?

 

有人说它是一种方法,也有人说它是一种工具,还有人说它是一种思想。更有甚者,说它是一种哲学。

 

 

越说越玄乎,感觉都要封神啦!DevOps这玩意真的有那么夸张吗?它到底是干嘛用的?为什么行业里都会对它趋之如骛呢?

 

今天这篇文章,小枣君就和大家好好聊一聊这个DevOps。

 

DevOps的起源

 

这个故事有点长,从头开始讲起吧。

 

上个世纪40年代,世界上第一台计算机诞生。从诞生之日起,它就离不开程序(Program)的驱动。而负责编写程序的人,就被称为“程序员”(Programmer)。

 

 

程序员是计算机的驾驭者,也是极其稀缺的人才。那个时候,只有高学历、名校出身的人,才有资格成为程序员,操控计算机。

 

随着人类科技的不断发展,PC和Internet陆续问世,我们进入了全民拥抱信息化的时代。越来越多的企业开始将计算机作为办公用的工具,用以提升生产力。而普通个人用户也开始将计算机作为娱乐工具,用以改善生活品质。

 

 

于是,计算机的程序,开始变成了一门生意。程序,逐步演进为“软件(software)”,变成了最赚钱的产品之一。

 

在软件产业里,程序员有了更专业的称谓,叫做“软件开发工程师(Software Development Engineer)”,也就是我们常说的“码农”。

 

 

我们知道,一个软件从零开始到最终交付,大概包括以下几个阶段:规划、编码、构建、测试、发布、部署和维护。

 

 

最初,程序比较简单,工作量不大,程序员一个人可以完成所有阶段的工作。

 

 

随着软件产业的日益发展壮大,软件的规模也在逐渐变得庞大。软件的复杂度不断攀升。一个人已经hold不住了,就开始出现了精细化分工。

 

码农的队伍扩大,工种增加。除了软件开发工程师之外,又有了软件测试工程师软件运维工程师

 

 

分工之后,传统的软件开发流程是这样的:

 

软件开发人员花费数周和数月编写代码,然后将代码交给QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。所有的这三个阶段,即开发,测试,布署。

 

早期所采用的软件交付模型,称之为“瀑布(Waterfall)模型”

 

 

瀑布模型,简而言之,就是等一个阶段所有工作完成之后,再进入下一个阶段。

 

这种模型适合条件比较理想化(用户需求非常明确、开发时间非常充足)的项目。大家按部就班,轮流执行自己的职责即可。

 

但是,项目不可能是单向运作的。客户也是有需求的。产品也是会有问题的,需要改进的。

 

 

随着时间推移,用户对系统的需求不断增加,与此同时,用户给的时间周期却越来越少。在这个情况下,大家发现,笨重迟缓的瀑布式开发已经不合时宜了。

 

于是,软件开发团队引入了一个新的概念,那就是大名鼎鼎的——“敏捷开发(Agile Development)”

 

敏捷开发在2000年左右开始被世人所关注,是一种能应对快速变化需求的软件开发能力。其实简单来说,就是把大项目变成小项目,把大时间点变成小时间点,然后这样:

 

 

有两个词经常会伴随着DevOps出现,那就是CI和CD。CI是Continuous Integration(持续集成),而CD对应多个英文,Continuous Delivery(持续交付)或Continuous Deployment(持续部署)。

 

美其名曰:“持续(Continuous)”,其实就是“加速——反复——加速——反复……”,这样子。

 

画个图大家可能更明白一点:

 

 

敏捷开发大幅提高了开发团队的工作效率,让版本的更新速度变得更快。

 

很多人可能会觉得,“更新版本的速度快了,风险不是更大了吗?”

 

其实,事实并非如此。

 

敏捷开发可以帮助更快地发现问题,产品被更快地交付到用户手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的版本变化是比较小的,风险会更小(如下图所示)。即使出现问题,修复起来也会相对容易一些。

 

 

虽然敏捷开发大幅提升了软件开发的效率和版本更新的速度,但是它的效果仅限于开发环节。研发们发现,运维那边,依旧是铁板一块,成为了新的瓶颈。

 

额,嗯?额,嗯??

 

运维工程师,和开发工程师有着完全不同的思维逻辑。运维团队的座右铭,很简单,就是“稳定压倒一切”。运维的核心诉求,就是不出问题。

 

什么情况下最容易出问题?发生改变的时候最容易出问题。所以说,运维非常排斥“改变”。

 

于是乎,矛盾就在两者之间集中爆发了。

 

 

这个时候,我们的DevOps,隆重登场了。

 

DevOps到底是什么

 

DevOps这个词,其实就是Development和Operations两个词的组合。它的英文发音是 /de'vɒps/,类似于“迪沃普斯”。

 

 

DevOps的维基百科定义是这样的:

 

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

 

 

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

 

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

 

破墙工具

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

目前支持DevOps的软件实在是太多了。限于篇幅,就不一一介绍了。话说回来,现在DevOps之所以被吹得天花乱坠,也有这些软件和平台的功劳,可以趁机卖钱啊。

 

DevOps生态圈中令人眼花缭乱的工具

 

上述这些关键要素里面,技术(工具和平台)是最容易实现的,流程次之,思维转变反而最困难。

 

换言之,DevOps考验的不仅是一家企业的技术,更是管理水平和企业文化。

 

对比前面所说的瀑布式开发和敏捷开发,我们可以明显看出,DevOps贯穿了软件全生命周期,而不仅限于开发阶段。

 

 

下面这张图,更明显地说明了DevOps所处的位置,还有它的价值:

 

 

DevOps的发展现状

 

DevOps这个词来源于2009年在比利时根特市举办的首届DevOpsDays大会,为了在Twitter上更方便的传播,由DevOpsDays缩写为DevOps。

 

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

 

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

 

越大的企业,越喜欢DevOps。包括Adobe、Amazon、Apple、Airbnb、Ebay、Etsy、Facebook、LinkedIn、Netflix、NASA、Starbucks、Walmart、Sony等公司,都在采用DevOps。

 

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

 

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

 

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

 

数据来自招聘网站

 

薪资的猛涨,又带动了IT工程师们学习和认证的热潮。

 

DevOps的认证目前最受欢迎的就是EXIN DevOps Master和EXIN DevOps Professional。这些认证的培训费用不低,但是仍然吸引了很多人踊跃报名。

 

EXIN DevOps认证体系

 

DevOps与虚拟化、容器、微服务

 

这几年云计算技术突飞猛进,大家应该对虚拟化、容器、微服务这些概念并不陌生。当我们提到这些概念的时候,也会偶尔提及DevOps。

 

它们之间有什么联系呢?

 

其实很简单。

 

大家可以设想一下,如果要对一项工作进行精细化分工,我们是对一个大铁疙瘩进行加工方便?还是拆成一块一块进行加工更加方便?

 

显然是拆分之后会更加方便。

 

所谓“微服务”,就是将原来黑盒化的一个整体产品进行拆分(解耦),从一个提供多种服务的整体,拆成各自提供不同服务的多个个体。如下图所示:

 

单体式架构(Monolithic)→ 微服务架构(Microservices)

 

微服务架构下,不同的工程师可以对各自负责的模块进行处理,例如开发、测试、部署、迭代。

 

而虚拟化,其实就是一种敏捷的云计算服务。它从硬件上,将一个系统“划分”为多个系统,系统之间相互隔离,为微服务提供便利。

 

容器就更彻底了,不是划分为不同的操作系统,而是在操作系统上划分为不同的“运行环境”(Container),占用资源更少,部署速度更快。

 

 

明白了吧?虚拟化和容器,其实为DevOps提供了很好的前提条件。开发环境和部署环境都可以更好地隔离了,减小了相互之间的影响。

 

这也是DevOps为什么09年时不火,现在越来越火的一个主要原因之一。

 

最后的话

 

天下武功,无坚不摧,唯快不破。

 

时代发展到现在,客户的需求瞬息万变,市场的风向也难以预测。作为企业,想要生存下去,只有让自己变得更快。作为员工,必须让自己眼光更加长远,内心更加包容。

 

好了,以上就是今天的内容,感谢大家的耐心阅读。

 

更多精彩内容,欢迎扫码关注我们公众号:鲜枣课堂

【本文版权归“鲜枣课堂”和小枣君所有,未经授权,请勿转载】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/439111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CCNP-第五篇-OSPF高级版(二)

CCNP-第五篇-OSPF高级版(二) 链路状态数据库LSDB拓扑表 link state database 收到之后放入自己的数据库再计算最新的放入路由表 根据COST值来计算 >COST值的计算方式10的8次方除以带宽这个环境会涉及一个东西叫做重分布,这类会做,然后下一章或者下下章会详细开始讲. 详细环…

IIS 内部运行机制

ASP.NET是一个非常强大的构建Web应用的平台,它提供了极大的灵活性和能力以致于可以用它来构建所有类型的Web应用。 绝大多数的人只熟悉高层的框架如: WebForms 和 WebServices — 这些都在ASP.NET层次结构的最高层。 这篇文章的资料收集整理自各种微软公…

CCNP-第六篇-OSPF高级版(三)

CCNP-第六篇-OSPF高级版(三) 这一节差不多都是密码认证了,还有个NSSA和OE1,OE2 OSPF默认路由OSPF认证问题OSPF特殊区域,NSSA,STUB OSPF下发默认路由 其实跟EIGRP一样,只不过是下发一条路由给别人指向自己 一般都用于核心连接出口处,或者汇聚连接核心处 如果是这种环境下,那…

SharePoint 2013异常信息的查看

刚刚学习SharePoint开发的时候,经常遇到一些异常,却不能直接看到详细信息,很郁闷。这里做下简单的整理,方便查找: 1、代码未处理异常出现黄页——”‘/’应用程序中的服务器错误。运行时错误“。 其实这个黄页是ASP.N…

CCNP-第七篇-OSPF高级版(四)+策略开头

CCNP-第七篇-OSPF高级版(四)策略开头 今天讲NSSA和完全NSSA NSSA区域叫做非完全末节区域,这个东西都不知道命名的人怎么想的 因为完全NSSA区域叫做完全非完全末节区域,pleas,你人傻了吗? NSSA区域特点:过滤4,5类的LSA,同时会5类转为7类条目 7类在路由表里面是ON的 然后,7类除…

同步界面

设置FFS程序 当你下载、安装好后桌面会出现这两个图标。左边是主要的程序,右边软件用来设置自动同步。打开绿色图标的程序。 打开蓝色的设置按钮。 建议选择“文件时间和大小”。单纯的大小不能反映内容。比较文件内容又取决于硬盘速度。如果速度够快可以选择文件内…

CCNP-第八篇-分发列表+PRB+重分布+Route-Map

CCNP-第八篇-分发列表PRB重分布Route-Map 这个学不好,BGP就一定学不好 Route-Map 这样理解吧,在Route-map中 ACL就相当于警察,只能抓,不能判 Rroute-map呢就相当于法官,法官可以判罚 一般都是结合使用的,因为不结合这玩意也没法用环境如图 需求:干掉100.1.1.0/24 在Route-m…

虎年第一篇-CCNP-第九篇-BGP(一)

CCNP-第九篇-BGP(一) 首先,开工啦,祝大家2022新年快乐虎年大吉,虎虎生威哦BGP是一个网络工程师的分水岭 这是真的,BGP一般很大的企业才能用得上,或者ISP运营商 人家可以不用,但是你不能不会吧, BGP,CCIE必考 BGP有四节课基础,后面CCIE的部分还有 从BGP开始就要换一种理念 因为之…

rsync算法原理及使用

如果服务器之间需要保持某些文件的一致,我们可以使用scp来复制,如果需要长期保持一致,可以配合crontab脚本来使用。但是此时我们有更优的方式,就是rsynccrontab来实现定时增量传输保持文件一致。 rsync功能很强大,网上…

CCNP-第十篇-BGP(二)

CCNP-第十篇-BGP(二) 首先 BGP都基本上部署在PE,CE设备 PE:Provider edge 运营商边界 CE:Customer edge 用户边界 建立BGP 1.一般呢,是会使用环回口建立BGP 2.因为他是虚拟接口,很稳定,而且不会down,只要系统在,他就不会down;; 3.如果他down了就是整个网络都断了 4.节约接口使…

CCNP-第十一篇-BGP(三)(精髓篇)

CCNP-第十一篇-BGP(三) BGP十三条线路原则(大点) 能修改的前7条,後6条是无法修改的,所以实际上7条 跟ACL一样,从上往下执行,比如第一条比较出来了就不会继续往下了 工作中比较多用的,第四条根据as-path一,权重-Weight 1.思科里面叫权重,是思科私有的,在华为叫首选优先级(Pre…

WSS 数据库表中的 UserInfo 表中的 tp_SystemId 字段的使用

在 WSS 的数据库中,UserInfo表的 tp_SystemId 记录的是用户登录验证时需要用到的数据,是此用户在 AD( Active Directory ) 中的 SID( Security ID )。此字段的数据很重要,不小心改动的话,此用户将不能登录 WSS。 这里介绍一下如何…

CCNP-第十二篇-BGP(四)

CCNP-第十二篇-BGP(四) 这次接着上次的选路原则继续干 上次是前6条,现在是跟后面的7条 BGP的选路原则默认是11条,最大可以配置后去到13条七.EBGP路由优于IBGP 这个不知道咋讲呢 如果A-B-C 那么A-B为IBGP B-C为EBGP的话 他们同时宣告一个条目 在两边对称的情况下,会选择EBGP宣告…

使用Module自定义网站定义(Site Definition)

在WSS SDK中有一篇文章介绍了使用Modules添加文件到网站定义中(可以在http://msdn.microsoft.com中搜索Using Modules to Add Files to a Site Difinition找到),不过很多东西只是稍微提了一下,具体怎么操作并没有讲到。 一般的,我们可以用下…

CCNP-第十三篇-BGP(五)

CCNP-第十三篇-BGP(五) 这一节要讲下BGP联邦 干啥用的呢? 打破IBGP的传递问题 其实这个东东有点像BGP版本的NAT 啥意思呢? 我自己启动AS100 但是对外宣告200 通过EBGP打破IBGP的传递问题总有AS:1-65535 私有AS 65412-65535 网络环境 环境搭建好之后,R2和R3互为ibgp,as为65…

CCNP-第十五篇-VXLAN(一)

CCNP-第十五篇-VXLAN(一) 到了这个阶段呢,怎么说呢,简单的NP级别的交换我都跳过去了,但是后期会补, 所以这个衔接可能新手或者不会的看的有的迷茫 但是出自个人原因只好这么干了,VXLAN3篇差不多就到IE的MPLS,各种VPN 然后为什么先发第十六不发十五呢 十五是BGP的综合实验,暂时…

CCNP-第十六篇-VXLAN效果演示+端口镜像

CCNP-第十六篇-VXLAN(二)端口镜像 这一篇主要搞vxlan的实操演示 VXLAN演示 正常的ensp里面应该是没这个镜像的 要用到这个CE12800 我这有,可以提供给大家使用 链接:https://pan.baidu.com/s/1nqGo8a7mmWpthu-CuBC80Q?pwdcjnb 提取码:cjnb 这玩意要手动…

CCNP-第十四篇-BGP综合实验

CCNP-第十四篇-BGP综合实验 大家好呀,学了那么长时间的BGP,又是一个巨大分水岭,那怎么能没综合实验呢? 答案以及个人录制视屏(数字那个视频因为录制软件的问题看不到命令行可以直接看后面的,不喜勿喷) 链接:https://pan.baidu.com/s/159TcFZyugYgupXzgBN1l-w?pwd…

CCIE-LAB-第一篇-教学导入环境

CCIE-LAB-第一篇-教学导入环境 2022/2/23 时间好紧啊草 开始讲lab就内容会变少,更新速度会变快. 做IE LAB 头都大,不信去看拓扑图就知道了,在第二篇 首先下载这四个东西导入进入vm里面 链接:https://pan.baidu.com/s/1lrrlSyEMpi0jUde_VhLR6A?pwdfgdt 提取码&a…

CCIE-LAB-第二篇-端口聚合LACP+RSTP

CCIE-LAB-第二篇-端口聚合LACP+RSTP 实际中,思科只会给你5个小时去做下面的全部配置 这个是CCIE-LAB的拓扑图 解决101.102.110-交换机,在左上角,请注意还有生成树的环境 做链路聚合 TAG:不要修改预配置的,他预先的LACP 关日志 比如这些烦人的东东你可以关掉他的日志 no log…