我一起听到这些术语,并想知道有什么区别?它们如何与持续构建和持续部署相关?
答案 0 :(得分:8)
Continuous integration / continuous builds就是让开发人员很少和经常地将代码提交到源代码存储库(并从存储库中获取最新版本,因此任何进一步的更改都基于其他开发人员最近的更改)。这减少了合并解决方案浪费的时间,因为在这种情况下合并更容易。
使用构建服务器可以最好地自动化该过程,构建服务器也可以运行任何单元测试。然后在构建/测试失败的情况下向开发人员提供反馈,以便可以快速修复任何问题。
持续部署涉及将构建工件从构建过程自动部署到测试和生产环境。为了降低与此相关的风险,人们通常使用feature toggles将发布(以受控方式)与部署分开。
持续交付不是关于技术,而是关于组织软件交付方法的更多信息(虽然确实大量使用自动化)。
DevOps是一个更大的领域,通常强调打破开发人员和运营团队之间的障碍,让他们以他们从综合技能中受益的方式进行协作。环境配置,构建部署,监控(以及自动对问题和可扩展性做出反应)以及在某些情况下软件定义网络的更多自动化将在公司中实现。在一些组织中,已经创建了专门的DevOps团队。
答案 1 :(得分:1)
关于连续的xxx短语如何被不同的人使用可能有些含糊不清,但我认为这篇博文很好地总结了它。
DevOps比一个特定的实践更像是一个总体思路,有点像敏捷就是这个想法,单元测试就是一种实践。
答案 2 :(得分:1)
持续交付(CD)是由ThoughtWorks的Jez Humble和David Farley共同撰写的2010年书中首次描述的概念。
持续集成和持续交付经常相互混淆,但存在一些关键差异:
以下是Martin Fowler的引用:
"持续集成是一种软件开发实践 团队成员经常整合他们的工作,通常是每个人 至少每天集成 - 每天导致多个集成。 每个集成都通过自动构建(包括测试)来验证 尽快检测集成错误。很多团队都找到了 这种方法可以显着减少集成问题 允许团队更快地开发内聚软件。"
持续交付和持续部署之间的主要区别在于自动化。您自动化部署方面的事情。如果您每天多次推出生产或出于各种其他原因,这种方法很有效。
至于DevOps,这是另一个蜡球。人们通常认为DevOps是一个角色或工具,但它确实是一种文化。你不做"做" DevOps的。这里引用了Mike Kavis,我非常喜欢这个:
" DevOps是一种文化转变或鼓励伟大的运动 沟通和协作(又称团队合作)以促进建设 更高质量的软件更快速,更可靠。"