购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.4 DevOps与敏捷开发的对比

从DevOps的发展历程来看,DevOps并不是凭空提出的,而是与敏捷开发存在一定程度的关联性,这也使得二者间存在广泛的相似性。这些相似性使人们认为它们是相同的,但是DevOps与敏捷开发存在着本质区别。为了避免混淆,深入了解二者间的异同是很有必要的。

DevOps和敏捷开发的相似性主要表现在以下几方面。

1)DevOps和敏捷开发是可以协同工作的,两者之间并没有冲突。可以认为DevOps是敏捷开发实践的演变,或者更准确地说是补充了敏捷开发缺失的一部分。DevOps将“敏捷”理念创造性地带到后续运营阶段,使得“敏捷”理念完整地覆盖软件生命周期。

2)DevOps和敏捷开发都能促进软件产品的快速迭代。DevOps基于自动化的持续集成和持续部署,实现软件产品的快速迭代;敏捷开发为较小的团队提供了更好的协作能力,实现不断满足用户需求的产品迭代。

3)DevOps和敏捷开发的转型都面临着重大文化转变。DevOps需要培养原本两个“孤立”的团队(开发团队和运营团队)合作,加强两个团队的协作意识;敏捷开发则需要企业把传统的以技术为中心的开发转变为以用户为中心的开发,增强开发灵活性以快速交付产品。

更重要的是,我们还应当充分认识DevOps和敏捷开发的主要差异,如图3-9所示。

1)DevOps和敏捷开发涉及的软件生命周期阶段不同。虽然DevOps与敏捷开发都涉及软件开发(主要包括开发、测试)、交付部署过程,但是敏捷开发终止于交付部署,而DevOps则包括后续的运营阶段以及持续开发,形成持续集成、持续交付、持续部署的自动化闭环流程。

2)DevOps和敏捷开发涉及的团队不同。敏捷开发是较小的团队之间协作,不同的职能部门负责软件研发、测试和交付后的部署;DevOps则打破了开发、运营间的隔阂,促进相对较大的团队的协作。

3)DevOps和敏捷开发解决的问题不同。敏捷开发主要是为了解决用户和开发人员的沟通障碍,专注于协作、用户反馈和小而快的发布,以便快速响应不断变化的消费者需求。而DevOps解决了开发人员和运营人员的沟通障碍,将开发团队和运营团队凝聚在一起,实现开发即运营,运营即开发。

图3-9 DevOps与敏捷开发的差异

以上分析了敏捷开发和DevOps的相似性和差异性。总体来说,DevOps和敏捷开发二者总体目标相近——敏捷,但二者的定义、关注点以及团队规模等均有所不同,如表3-2所示。

表3-2 DevOps和敏捷开发对比

在应用实践中,DevOps与敏捷开发并非非此即彼的对抗关系。在这场广义的敏捷变革中,二者并不冲突,而是实现了不同层次的敏捷。二者可以共存,其中敏捷开发可以作为DevOps实现业务敏捷的基石。至于如何选择DevOps和敏捷开发,企业还要根据具体的业务场景决定。 +Sbp24sNXGFsRMRpa5zqrJN9aTsjlQw7VgBOSo0azrtPxzXcHD6sn0yuP4NMTy6v

点击中间区域
呼出菜单
上一章
目录
下一章
×