我听到这些术语并想知道它们之间的区别是什么?它们与持续构建和持续部署有什么关系?
我听到这些术语并想知道它们之间的区别是什么?它们与持续构建和持续部署有什么关系?我听到这些术语并想知道它们之间的区别是什么?它们与持续构建和持续部署有什么关系?
我听到这些术语并想知道它们之间的区别是什么?它们与持续构建和持续部署有什么关系?持续集成 / 持续构建的目的是让开发者频繁地向源代码库提交代码(并从代码库获取最新版本,以便进一步更改基于其他开发者的最近更改)。这减少了合并冲突所浪费的时间,因为在这种情况下合并更容易。
最好使用构建服务器自动化该过程,该服务器还可以运行任何单元测试。如果构建/测试失败,则向开发人员提供反馈,以便快速解决任何问题。
持续部署涉及将构建过程中生成的构建工件自动部署到测试和生产环境中。为了减轻其中的风险,人们经常使用功能切换将发布(以受控方式)与部署分离。
持续交付与技术关系较小,更多地涉及组织对软件交付的方法(尽管它确实大量使用自动化)。
DevOps是一个更广泛的领域,通常强调打破开发人员和运营团队之间的障碍,并让他们以一种方式合作,从中获得组合技能的好处。在公司中,将会出现更多环境配置、构建部署、监控(并自动响应问题和可扩展性)以及在某些情况下软件定义网络的自动化。在一些组织中,专门的DevOps团队已经被创建。持续交付(CD)是由ThoughtWorks的Jez Humble和David Farley共同撰写的2010年书籍中首次描述的概念。
持续集成和持续交付经常被混淆,但它们之间有一些关键区别:
以下是Martin Fowler的一句话:
"持续集成是一种软件开发实践,在这种实践中,团队成员频繁地集成他们的工作,通常每个人每天至少集成一次-导致每天多次集成。每个集成都由自动构建(包括测试)验证,以尽快检测到集成错误。许多团队发现,这种方法可以显著减少集成问题,并使团队更快地开发出具有凝聚力的软件。”
持续交付和持续部署之间的主要区别是自动化。您自动化了部署方面的事情。如果您每天多次推送到生产环境或出于其他原因,则此方法很有效。
至于DevOps,那是完全不同的东西。人们通常认为DevOps是一种角色或工具,但它实际上是一种文化。您不能“执行”DevOps。以下是Mike Kavis的一句话,我非常喜欢:
"DevOps是一种文化转变或运动,鼓励良好的沟通和协作(即团队合作),以促进更快、更可靠地构建更高质量的软件。"
不同人对于连续的 xxx 短语的使用可能存在一些歧义,但我认为这篇博客文章总结得非常好。
DevOps更像是一个总体理念而不是具体的实践,有点像敏捷开发是理念,单元测试是实践。