作为一个热门的概念,DevOps这个名词在程序员社区里一再呈现,备受技能大佬们的追捧。乃至网络上有了“南无DevOps”的戏言(南无在梵语的意思是“皈依”),也旁边面反映了DevOps的风靡。

DevOps是什么?只看这篇文章就够了!

可是,一旦有人问起什么是DevOps,大部分人就会扯起相似“之乎者也”等玄之又玄的东西,一部分人说它是东西,一部分人说它是渠道,一部分人说它是办法,一部分人乃至说它是哲学。所以今天,我就想和小伙伴们好好聊聊这个DevOps。

本文会分为:DevOps是什么?;DevOps开展进程;DevOps与微服务、与容器的联系;华为云CodeArts。

DevOps是什么?

从字面来了解,DevOps一词由单词Development(开发)和Operation(运维)组合而成。因此,很多人认为,DevOps不便是把开发和运维两个团队合并了嘛。

可是,DevOps的实际意义其实远超字面的了解。它相当所以一组进程、办法与体系的统称;经过一系列手法来促进开发(应用程序/软件工程)部分 与 技能运营和质量保证(QA)部分之间的亲近交流、高效协作与整合;经过自动化地软件交给架构变更流程,让规划、开发、构建、测验、发布、布置、保护都能更快、更频频、更牢靠,保证开发成果的稳定牢靠。

DevOps能够给团队带来什么呢?技能层面上,DevOps能够促进研制与运维团队的协作;事务层面上,DevOps供给的一致容器镜像,继续集成,继续交给,继续布置,继续测验能够更快地交给客户价值。

DevOps开展进程

最开端,程序还很简略的时分,工作量不大,程序员1个人就能够完成一切开发阶段的工作,也就不需求什么额精细化分工了。

接着,跟着软件规划越来越庞大、杂乱,程序员也开端了细分:研制、测验、运维。研制人员开发完代码交给给QA团队进行测验,测验结束之后交给运维团队去布置。这一套“等上一个阶段一切工作完成之后再交给给下一个阶段”的流程也被称之为“瀑布模型(waterfall)”。下图是比较具体的流程分类【需求-规划-开发-测验-布置-保护】:

DevOps是什么?只看这篇文章就够了!

然后,团队发现瀑布模型并不适用于实在的开发环境。为什么呢?由于客户的需求很可能一开端并不清晰后边要改动,或则要加上一些新的需求,或则产品中途呈现了新的问题,这些都是需求改善的。再加上用户期望团队交给的时刻变得越来越少,这时分,笨重工序化流程的瀑布式模型就不适用了。所以,灵敏开发(Agile Development)这个概念就在2000左右开端被重视(而华为则是在2000年左右引入了IPD开发形式,下一段进行讲解),它是一种能够应对需求快速变化的软件开发能力。其实简略来说,便是把大项目变成小项目,把大时刻点变成小时刻点。简略点来说便是从原先的“规划-开发-测验-布置”形式变为了“规划-开发-测验-开发-测验-开发…-开发-测验-布置”的形式:

DevOps是什么?只看这篇文章就够了!

灵敏开发这种形式能够大幅提高开发的工作功率,让版别的更新变得更快更频频(能够更快交给给用户,更快得到用户的反应然后更快的进行响应),风险也变得更小(能够更快发现问题,修复更容易,版别变化小风险也小)。风险对比图:

DevOps是什么?只看这篇文章就够了!

灵敏开发形式已然好处这么多,为何咱们还需求推DevOps呢?那是由于灵敏开发形式仅作用于开发阶段。而运维那儿依然没有什么改动。可是在咱们说DevOps之前,咱们先把坑填了。上一段提到的“华为则是在2000年左右引入了IPD开发形式”又是什么呢?Integrated Product Development 集成产品开发,一个根据商场和客户需求驱动的集成产品开发流程管理体系。简略来说便是,将企业的思想从“做出来什么再去卖什么”变成“咱们把能卖出去的东西做出来”。这个形式运用成功的企业有IBM、华为。

最后,便是到了咱们的DevOps。前面讲到灵敏形式将开发环节的问题解决了,可是开发和运维之间的矛盾则变深了。由于开发和运维天然就有着彻底不同的逻辑,开发接了客户的需求肯定要加新功能/新特性,就要做出改动,更不要说在灵敏形式下这改动更多更频频了;而运维的核心需求则是稳定,不要出问题。DevOps的目标便是让开发人员和运维人员能够好好交流好好工作,不要掐起来。

在DevOps的形式里,运维和开发是紧密关联的。在项目开发期间,运维人员就会介入到开发进程中来了解技能道路和架构体系,提早拟定相对应的运维方案。而在运维的初期,开发人员也会接入到体系布置中来,供给相关的优化建议。抱负的情况下,两边的交流能够增进彼此的理(gan)解(qing)。此时的流程图变为了:

DevOps是什么?只看这篇文章就够了!

DevOps与微服务、容器的联系

DevOps在微服务/云原生年代,为何会这么炙手可热呢?什么是微服务:把全体的服务拆分成一个个小的服务;每个小型的服务能够独立运转在自己的进程中,服务之间互相协调。

容器化则是在硬件资源、操作体系上,将各个应用程序和类划分为不同的“运转环境”(也便是容器),占用资源变得更少,布置速度变得更快。

微服务和容器化,能够说为DevOps供给了很好的前提条件:事务全体变小变多了,开发环境和布置环境互相之间的影响也变小了。这简直便是为DevOps的理念“加快一个需求从规划到上线布置的进程”量身打造嘛。

华为云CodeArts

可是真实想要将DevOps真实落地,不只仅需求东西和渠道,还需求流程的变化思想的转变,以及团队每个人的参与。这不只检测一家企业的技能,更是其管理水平和企业文化。

华为云软件开发渠道CodeArts,是一个集华为研制实践、前沿研制理念、先进研制东西为一体的研制云渠道(一站式、全流程、安全可信、开箱即用,预置最佳实践),面向开发者供给研制东西服务,让软件开发简略高效,助力企业质量提升和功率倍增。了解产品请戳【软件开发渠道 CodeArts】

DevOps是什么?只看这篇文章就够了!

客户成功事例

DevOps是什么?只看这篇文章就够了!

行业权威认可

DevOps是什么?只看这篇文章就够了!

假如想体会华为云CodeArts,能够点击【软件开发渠道 CodeArts】进行免费体会。

*作者:gentle_zhou* 原文链接:bbs.huaweicloud.com/blogs/36963…