目前最流行的开发模式DevOps究竟是什么鬼?

随着业务复杂化和人员的增加,开发人员和运维人员逐渐演化成两个独立的部门,他们工作地点分离,工具链不同,业务目标也有差异,这使得他们之间出现一条鸿沟。而发布软件就是将一个软件想从鸿沟的这边送去那边,这之中困难重重。

另一方面,行业竞争更加激烈,无论是客户还是公司自身,都要求软件能快速发布,频繁修改,而上边所说的这种隔阂,阻碍了开发团队的生产力,成了企业亟待解决的难题。


面对种种突出的矛盾,故事的情节,似乎又回到了当初只有程序员,而没有更细分为开发、测试和运维岗位的时候。


DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

DevOps是为了填补开发端和运维端之间的信息鸿沟,改善团队之间的协作关系。不过需要澄清的一点是,从开发到运维,中间还有测试环节。DevOps其实包含了三个部分:开发、测试和运维。

换句话说,DevOps希望做到的是软件产品交付过程中IT工具链的打通,使得各个团队减少时间损耗,更加高效地协同工作。专家们总结出了下面这个DevOps能力图,良好的闭环可以大大增加整体的产出。

有些人认为DevOps意味着开发人员接管了运营。这只是一部分而不是全部。当我们意识到部分运营需要自动化时候,运维人员需要进行一些自动化开发,开发人员也编写"运维"代码,或两者兼而有之。可怕的是,没有找到在这两种人员之间的整体协作方法,所有的成功团队都是将具有深度开发技能和深度运维技能人协调在一起工作,以创建一个更好的产品。

一、DevOps常用技术

二、DevOps有三种特点与模式

2.1、系统级别的效率考量

这是强调从整个系统的效率性能考量,而不是孤立地从所在工作部门或子系统考量,可以是整合开发人员和IT运维人员的大视角,也可以小如独立的发布者如开发人员和系统管理员。

重点是关注整个业务价值链,开始于业务需求的确认,开发人员的开发构建,然后交付给IT运维,在最后环节,对于客户的软件价值作为一种服务体现出来。

由于强调整体效能,就不要将缺陷推托到下游,不允许因为局部优化而带来整体退化,不能因为细节战术的提高导致整体战略上的退步,如果想提高整个系统的价值,就必须深入全面理解整个系统。

2.2、放大反馈循环

关于创建从右到左反馈循环。如有必要可以不断修正缩短和放大这种反馈循环。能够理解和响应所有的客户包括内部和外部,缩短和放大所有的反馈循环,嵌入我们需要的知识。

2.3、持续的锻炼和学习

这种方式就是创造一种企业文化,培育两件事:不断实验冒险以及从失败中吸取教训。认识到重复和实践是通向掌握的先决条件。

实验和冒险能确保我们持续推动改善,即使这意味着进入我们无法控制的危险地带,我们必须需要掌握帮助我们脱离危险区域的技能。 

第三条道路的结果包括分配改善日常工作的时间,,为冒险创造仪式,奖励团队,并将错误引入系统增加弹性。

三、DevOps的好处

DevOps的一个巨大好处就是可以高效交付,这也正好是它的初衷。与低效组织相比,高效组织的部署频繁200倍,产品投入使用速度快2555倍,服务恢复速度快24倍。在工作内容的时间分配上,低效者要多花22%的时间用在为规划好或者重复工作上,而高效者却可以多花29%的时间用在新的工作上。所以这里的高效不仅仅指公司产出的效率提高,还指员工的工作质量得到提升。

DevOps另外一个好处就是会改善公司组织文化、提高员工的参与感。员工们变得更高效,也更有满足和成就感,对公司更加认同。

参考文章:

1、http://www.infoq.com/cn/news/2016/09/learn-devops-from-reports

2、http://www.jdon.com/project/devops.html

3、https://www.jianshu.com/p/271b24c11d82

最近热文阅读:

1、四张图带你了解Tomcat系统架构

2、三条路线告诉你如何掌握Spring IoC容器的核心原理

3、面试必备技能:JDK动态代理给Spring事务埋下的坑!

4、漫画区块链,一文带你秒懂她!

更多精彩,从关注《Java后端技术》公众号开始!

### 回答1: DevOps 是一种新的软件开发方法论,它将软件开发、质量保证、运维和运营四个领域结合起来,提高软件产品的质量和效率。 DevOps 的核心思想是通过提高团队协作和自动化流程来缩短产品上线周期,提高软件的可用性和安全性。 ### 回答2: DevOps是一种结合了开发(Development)和运维(Operations)的文化、方法和实践。它旨在通过软件开发团队和运维团队之间的协作和沟通,打破传统的分工模式,实现软件开发、测试、交付和部署的流程自动化、持续集成和持续交付。 DevOps的核心理念是通过自动化工具和流程,将开发和运维环节紧密结合起来。它鼓励开发和运维人员共同参与从软件的开发阶段到部署和运行阶段的整个生命周期。开发人员与运维人员之间的协作和沟通可以减少问题和错误,提高软件的质量和稳定性。 DevOps重视持续集成(Continuous Integration)和持续交付(Continuous Delivery),通过频繁地集成代码和自动化的测试,能够快速发现和修复问题。持续交付则指的是能够在任何时候将可靠的软件版本交付给用户,实现更快速、更可靠的软件交付。 DevOps还注重监控、日志和问题解决。通过实时监控系统性能,快速捕获问题并及时解决,可以降低系统故障和停机时间,提供更好的用户体验。 总而言之,DevOps帮助开发和运维团队建立合作、高效的工作流程,加速软件开发和交付过程,提高软件质量和稳定性,满足当今快速迭代的软件开发需求。 ### 回答3: DevOps是一种软件开发和运维的方法论和文化。它通过将开发团队和运维团队紧密结合,促进沟通和协作,实现高效的软件开发和持续交付。 DevOps的核心理念是将软件开发和运维视为一个整体,强调开发人员和运维人员之间的协作和共同责任。传统上,开发和运维是两个独立的部门,存在着沟通障碍和合作困难。DevOps通过打破这种壁垒,使开发和运维团队能够更紧密地合作,共同解决问题,提供快速响应和高质量的软件交付。 在DevOps中,自动化是一个重要的概念。通过使用自动化工具和流程,可以减少手动劳动和错误。软件开发和部署过程中的许多重复、繁琐和容易出错的步骤可以通过自动化来处理,提高效率和质量。此外,DevOps还强调持续集成和持续交付的实践,通过频繁地进行代码集成和部署,快速反馈和修复漏洞和问题。 DevOps还注重监控和日志的重要性。通过实时监控软件的性能和运行状态,可以及时发现和解决问题,避免发生严重的故障。同时,收集和分析日志可以帮助开发人员改进代码和系统设计,提高软件的稳定性和可靠性。 总结来说,DevOps是一种团队合作的方式,通过结合开发和运维团队,借助自动化工具和流程,追求快速、高质量的软件开发和交付。它强调协作沟通、自动化和持续改进,旨在提高效率、减少错误和改善软件质量。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值