DevOps 与敏捷开发

敏捷开发和 DevOps 之间有什么不同之处和相似之处?

Tom Hall 是 DevOps 流程的倡导者和实践者,他热爱阅读,还是一名业余钢琴家。过去 20 年,他获得了 Novell、EMC、VMware 和 AWS 的认证。2016 年,他在亚特兰大协助主办了 DevOpsDays,之后数年又在德克萨斯州奥斯汀协助主办了 DevOPSDays。

免费试用 Compass

改善您的开发人员体验、为所有服务编制目录,并改善软件运行状况。

当敏捷开发方法在 21 世纪初获得广泛采用时,它就改变了我们开发软件和其他产品的方式。然而,在成为行业标准的几年内,就出现了一个关键的疏忽:变革遗漏了部署和管理软件产品的运营团队的相关流程和要求。

DevOps 于是孕育而出,这是一种协调开发团队和运营团队的方法。那么,DevOps 是否取代了敏捷开发?又或者说,它们互为补充,相辅相成?事实证明,两者之间既有不同之处,也有相似之处。敏捷开发和 DevOps 既具有排他性,也具有包容性,两者都存在于组织内部。

什么是敏捷?

敏捷开发是一种项目管理和软件开发的迭代方法,侧重于协作、客户反馈和快速发布。它起源于 21 世纪初期的软件开发行业,可帮助开发团队做出反应,并适应不断变化的市场条件和客户需求。

在敏捷开发方法中,某些规划和设计是提前完成的,但开发会分小批量进行,且需要与利益相关者密切合作。与通过瀑布方法所开发的产品相比,敏捷开发需要不断整合变更,且产品的可用版本发布通常更快。这提供了诸多好处,而其中可以说最为重要的就是:如果软件无法满足客户的需求或期望,还可以实时补救。

敏捷开发是一个方法集合,而不是单一的开发方法。它是 Scrum、极限编程 (XP) 和开发人员多年前使用的其他实践系统的集合,是从业人员携手合作将这些方法统一为一套原则的成果。这种统一化的结果就是“敏捷宣言”,该宣言由 12 项原则组成,以 4 个核心价值观为基础。

敏捷宣言的四个核心价值观

  1. 个体和互动高于流程和工具

  2. 可用的软件高于全面的文档

  3. 客户协作高于合同谈判

  4. 响应变化高于遵循计划

开始了解 DevOps

DevOps 是一种软件开发方法,通过整合敏捷开发原则和实践(例如:提高自动化程度以及改进开发团队和运营团队之间的协作),使团队能够更快速、更可靠地构建、测试和发布软件。开发、测试和部署在敏捷开发和 DevOps 中同时进行。然而,传统的敏捷开发会停止运作,这是 DevOps 不可或缺的组成部分。

DevOps 的目标是帮助让编写应用软件的开发人员与在生产环节运行软件的运营人员携手合作。同时,在其运行之处构建和维护基础设施。DevOps 取代了之前开发团队编写应用的旧方法,然后将应用扔给对软件开发方式了解最少的运营团队,由对方进行软件部署和管理。在 DevOps 环境中,开发人员和运营团队在开发、部署和管理应用的整个过程会并肩工作。

了解 DevOps 的两个常见框架分别是“三种方法”和“CALMS”,即文化 (Culture)、自动化 (Automation)、精益 (Lean)、衡量 (Measurement) 和分享 (Sharing) 的首字母缩写。文化是指文化转型,在此过程中,开发和运营人员会更加团结一致地工作。自动化可提高速度并确保更高的质量。持续改进和接受失败这两项精益原则是实验性思维的基础。衡量是指衡量结果以改进流程的实践。分享强调了 DevOps 在作为团队共同努力成果和采用最佳实践方面的重要性。

DevOps 的三种方法

  1. 系统思维 - 了解软件应用是复杂的系统

  2. 扩大反馈循环 - 改善团队伙伴之间的双向沟通

  3. 文化变革 - 构建持续实验和学习的文化

敏捷开发和 DevOps 何时会协同工作?

DevOps 可视为敏捷开发实践的演变,或者敏捷开发的缺失部分。这是为了采用敏捷开发方法创新并将其应用于运营流程之中。同时,这是敏捷开发缺失的一部分,因为某些敏捷开发原则只有在采用了 DevOps 实践时才能以最完整的形式实现。例如,敏捷开发文档中有多次提到了软件的持续交付,但由于交付管道包含运营问题,因而持续交付通常被视为一种 DevOps 实践。扩大反馈回路需要改善团队之间的沟通。敏捷开发,尤其是 Scrum,可通过各种形式(如每日站会、规划会议和回顾)来协助促进此类交流。

敏捷开发和 DevOps 之间有哪些相似之处/不同之处?

  • 敏捷开发强调开发人员与产品管理层之间的协作,而 DevOps 包括运营团队

  • 敏捷开发以软件开发流程(从构思到代码完成)为中心,而 DevOps 将重点扩展到交付和维护层面

  • 敏捷开发强调迭代开发和小批量,而 DevOps 则更注重测试和交付自动化

  • 敏捷开发为开发人员的计划工作增添了结构,而 DevOps 整合了对运营团队来说很常见的计划外工作

敏捷宣言明确优先考虑个人和交互、工作软件、客户协作和变更响应。显然,这些也是 DevOps 的优先事项,但不仅限于开发过程,还涉及到系统管理和运行中的应用管理。

此外,敏捷软件的十二项原则还包括对 DevOps 原则的引用。例如,敏捷软件的十二项原则都提到了持续集成和交付、小批量处理和频繁发布以及使用自动化的重要性。

针对敏捷开发和 DevOps 的概述

归根结底,敏捷开发和 DevOps 的目标相同,即提高软件开发的速度和质量,将两者分开讨论没什么意义。很多团队发现敏捷开发方法对他们有非常大的帮助,而其他团队则在努力实现敏捷开发方法所带来的好处。其中的原因可能有许多,包括团队没有完全理解或正确实施敏捷开发实践。也可能是,对于那些在努力实现敏捷开发的组织来说,采用 DevOps 方法将有助于弥合差距,并帮助他们取得预期的成功。

Atlassian 将开发IT 运营敏捷团队与跨越 Atlassian 产品和第三方工具的开放式工具链联系起来。Atlassian DevOps 为团队提供开发和运营软件所需的一切。立即试用。

为您推荐

DevOps 社区

DevOps 学习路径

免费试用

Morty Proxy This is a proxified and sanitized view of the page, visit original site.