DevOps 与敏捷开发
敏捷开发和 DevOps 之间有什么不同之处和相似之处?
Tom Hall
DevOps 推广人员和从业人员
当敏捷开发方法在 21 世纪初获得广泛采用时,它就改变了我们开发软件和其他产品的方式。然而,在成为行业标准的几年内,就出现了一个关键的疏忽:变革遗漏了部署和管理软件产品的运营团队的相关流程和要求。
DevOps 于是孕育而出,这是一种协调开发团队和运营团队的方法。那么,DevOps 是否取代了敏捷开发?又或者说,它们互为补充,相辅相成?事实证明,两者之间既有不同之处,也有相似之处。敏捷开发和 DevOps 既具有排他性,也具有包容性,两者都存在于组织内部。
什么是敏捷?
敏捷开发是一种项目管理和软件开发的迭代方法,侧重于协作、客户反馈和快速发布。它起源于 21 世纪初期的软件开发行业,可帮助开发团队做出反应,并适应不断变化的市场条件和客户需求。
在敏捷开发方法中,某些规划和设计是提前完成的,但开发会分小批量进行,且需要与利益相关者密切合作。与通过瀑布方法所开发的产品相比,敏捷开发需要不断整合变更,且产品的可用版本发布通常更快。这提供了诸多好处,而其中可以说最为重要的就是:如果软件无法满足客户的需求或期望,还可以实时补救。
敏捷开发是一个方法集合,而不是单一的开发方法。它是 Scrum、极限编程 (XP) 和开发人员多年前使用的其他实践系统的集合,是从业人员携手合作将这些方法统一为一套原则的成果。这种统一化的结果就是“敏捷宣言”,该宣言由 12 项原则组成,以 4 个核心价值观为基础。
相关资料
了解 CALMS 框架
相关资料
了解 DevOps 的历史
敏捷宣言的四个核心价值观
个人和交互
优先于流程和工具
工作软件
优先于全面的文档
客户协作
优先于合同谈判
响应变化
优先于遵循计划
开始了解 DevOps
DevOps 是一种软件开发方法,通过整合敏捷开发原则和实践(例如:提高自动化程度以及改进开发团队和运营团队之间的协作),使团队能够更快速、更可靠地构建、测试和发布软件。开发、测试和部署在敏捷开发和 DevOps 中同时进行。然而,传统的敏捷开发会停止运作,这是 DevOps 不可或缺的组成部分。
DevOps 的目标是帮助让编写应用软件的开发人员与在生产环节运行软件的运营人员携手合作。同时,在其运行之处构建和维护基础设施。DevOps 取代了之前开发团队编写应用的旧方法,然后将应用扔给对软件开发方式了解最少的运营团队,由对方进行软件部署和管理。在 DevOps 环境中,开发人员和运营团队在开发、部署和管理应用的整个过程会并肩工作。
了解 DevOps 的两个常见框架分别是“三种方法”和“CALMS”,即文化 (Culture)、自动化 (Automation)、精益 (Lean)、衡量 (Measurement) 和分享 (Sharing) 的首字母缩写。文化是指文化转型,在此过程中,开发和运营人员会更加团结一致地工作。自动化可提高速度并确保更高的质量。持续改进和接受失败这两项精益原则是实验性思维的基础。衡量是指衡量结果以改进流程的实践。分享强调了 DevOps 在作为团队共同努力成果和采用最佳实践方面的重要性。
DevOps 的三种方法
系统思维
了解软件应用是复杂的系统
扩大反馈回路
改善团队成员之间的双向沟通
文化变革
持续实验和学习的文化
敏捷开发和 DevOps 何时会协同工作?
DevOps 可视为敏捷开发实践的演变,或者敏捷开发的缺失部分。这是为了采用敏捷开发方法创新并将其应用于运营流程之中。同时,这是敏捷开发缺失的一部分,因为某些敏捷开发原则只有在采用了 DevOps 实践时才能以最完整的形式实现。例如,敏捷开发文档中有多次提到了软件的持续交付,但由于交付管道包含运营问题,因而持续交付通常被视为一种 DevOps 实践。扩大反馈回路需要改善团队之间的沟通。敏捷开发,尤其是 Scrum,可通过各种形式(如每日站会、规划会议和回顾)来协助促进此类交流。
敏捷开发和 DevOps 之间有哪些相似之处/不同之处?
- 敏捷开发强调开发人员与产品管理层之间的协作,而 DevOps 包括运营团队
- 敏捷开发以软件开发流程(从构思到代码完成)为中心,而 DevOps 将重点扩展到交付和维护层面
- 敏捷开发强调迭代开发和小批量,而 DevOps 则更注重测试和交付自动化
- 敏捷开发为开发人员的计划工作增添了结构,而 DevOps 整合了对运营团队来说很常见的计划外工作
敏捷宣言明确优先考虑个人和交互、工作软件、客户协作和变更响应。显然,这些也是 DevOps 的优先事项,但不仅限于开发过程,还涉及到系统管理和运行中的应用管理。
此外,敏捷软件的十二项原则还包括对 DevOps 原则的引用。例如,敏捷软件的十二项原则都提到了持续集成和交付、小批量处理和频繁发布以及使用自动化的重要性。
针对敏捷开发和 DevOps 的概述
分享此文章
下一主题
推荐阅读
将这些资源加入书签,以了解 DevOps 团队的类型,或获取 Atlassian 关于 DevOps 的持续更新。