以下这篇译文清晰明了地揭示了敏捷(Agile),持续集成/持续交付(CI/CD)和 DevOps 三者之间的区别和联系。它们尽管有所不同,但是彼此支持,相互联系。敏捷专注于开发过程,CI/CD 专注于实践,DevOps 专注于文化。

3种不同的开发工具可用于建立练习

您无法只用一个工具盖高楼大厦,您也不能一口气进行开发实践。敏捷,DevOps 和 CI/CD 是三个截然不同的工具,每一个工具本身都很重要。当开发团队将这三个功能用于其预期目的时,结果将具有变革性。

敏捷开发

敏捷专注于消除流程障碍,并使关键的利益相关者(如开发人员和客户)能够在加快交付速度方面进行更紧密的协作。敏捷强调了变革的持续性,并承认作为软件生产者,我们并不总是在一开始就了解在整体生命周期中,成功构思、开发和交付高质量软件所需的一切需求和资源。

因此,尽管在过去的二十年中敏捷的意义有所不同,但其基本原则仍然保持不变:消除赋予个人权力的流程障碍,迅速开发可运行的软件,与客户密切协作以及积极应对(而不是抵制)变化。

CI/CD

持续集成(CI)是一种软件工程实践,团队成员以越来越高的频率集成他们的工作。通过长久的 CI 实践,团队至少每天甚至每小时进行集成,以此接近“连续”程度的集成。

从历史上看,集成一直是一项昂贵的工程活动。因此,为避免项目遭受重创,CI 强调了驱动构建和测试的自动化工具。 CI 实现之后,构建和集成工作就会减少,团队也可以尽快检测到集成错误。

持续交付(CD)用于打包和部署 CI 要构建和测试的项目。实践 CD 的团队可以构建,配置和打包软件,并编排其部署方式,以便可以随时以软件定义的方式(低成本,高度自动化)将其发布到生产环境中。

由于软件更改更频繁地投入生产,高功能化的 CI/CD 实践直接促进了敏捷开发。因此,客户有更多机会体验产品变化并提供反馈。

DevOps 文化

DevOps 专注于敏捷开发过程中文化和角色的局限性。 DevOps 的目的是解决组织中过度专业化和不同部门人员沟通不畅导致的一些痛点,例如对生产问题无法快速甚至有效响应。DevOps 组织通过对每个团队进行彼此技能的交叉培训来打破运维和开发之间的障碍。这种方法提高了每个人欣赏和参与彼此任务的能力,并促进了更高质量的协作和更频繁的交流。

什么是 DevOps 中的 CI/CD?它们与敏捷有什么关系?

CI/CD,敏捷和 DevOps 与现实生活中的发展有何关系?工程团队通常从 CI 开始实践。 DevOps 可以帮助组织了解在整体生命周期甚至更长时间内软件所必需的配置,打包和编排--从而创建更有价值的持续交付实践。反过来,DevOps 中 CI/CD 的实践又增强了敏捷开发。

结论

区分敏捷,DevOps 和 CI/CD 最快速简便的方法:

敏捷专注于在加速交付的同时突出变化的过程。

CI/CD 专注于软件生命周期内强调自动化的工具。

DevOps 专注于强调响应能力的文化角色。