关于敏捷Agile和DevOps都已经有无数的文章谈及,但是还是有很多人经常将二者混为一谈。特别是很多DevOps的文章中又往往提到了敏捷开发,因此,两种技术很容易被大家互认定为彼此,于是就有更多的人被搞糊涂了。为了将二者区分开,笔者查询了一系列的文档,特此将二者的区别在此列一下,希望能够帮助大家搞清楚二者。
一、概念不同
敏捷软件开发(Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的新型软件开发方法,是一种能应对快速变化需求的软件开发能力。如上所示,敏捷是一种提倡迭代、协作和持续评估的方法,所有这些都是为了持续改进。当开发团队采用敏捷方法时,它依赖于客户的反馈,将开发项目划分为更小的任务,并发布更小的迭代,以完成对交付的改进。敏捷运动的起源是2001年的敏捷宣言。当时没有人意识到敏捷的经济意义。敏捷从来没有以这种方式计划过。
根据维基百科对DevOps的定义:DevOps是将软件开发(Dev)和运维(Ops)结合在一起的一组实践,旨在缩短系统开发生命周期并提供具有高质量软件的连续交付。
简而言之, DevOps是为了简化开发和交付工作流程而将开发和操作团队合并的一种实践。通过将开发团队和运维团队聚集在一起,打破之前的壁垒,是的开发周期可以变得更加高效。DevOps允许以较小的增量部署软件迭代。在DevOps中,更多考虑的是投资回报。
二、目标不同
敏捷目标是持续的变化和持续的改进,而DevOps的重点则是将开发和运维过程的不同阶段统一为一个无缝的循环。
三、关注点不同
敏捷开发关注于软件开发的迭代。其帮助开发团队以更高效的方式组织任务,一次只关注一个迭代,以保证在更短的时间内进行更有效的冲刺。而DevOps则致力于自动化软件开发帮助团队处理许多任务。DevOps更加关注的是持续集成和持续交付的整体过程。
四、变革内容不同
敏捷开发更多的是技术方面的变革,其更多的依赖于工具的支持;而DevOps更加强调的是开发团队和运维团队的无缝结合,对组织而言更像是一种在组织和文化方面的变革。
在二者结合时,DevOps团队可以像敏捷团队一样依赖于自动化测试和自动化交付。