禅道博客

分享专业技术知识,文章内容干货满满

DevOps那些事儿——DevOps相关概念一览

2022-11-24 09:04:00
李晓琳
原创 29
摘要:这篇文章带你理清持续集成、持续交付和DevOps的相关信息!
CI / CD是任何DevOps操作的两大基石,这是一种开发软件的方式,随时以可持续的方式发布更新,以生产快速而强大的软件。这篇文章带你理清持续集成、持续交付和DevOps的相关信息!

持续集成

Continuous Integration,缩写为CI。Martin Fowler这样定义持续集成:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。

也就是说开发人员一天一次或多次提交代码到主干,测试不通过不能集成到主干分支。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。


持续集成有利于:
  • 增强项目可见性,减少风险
  • 减少重复过程
  • 建立团队对开发产品的信心
  • 快速迭代,快速交付

持续交付

Continuous delivery,缩写为 CD。持续交付是一个更改代码会自动生成、自动测试并为发布到生产环境中做好准备的过程,软件可以在任何时候发布到生产环境中。让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以发布的状况。它的目标在于让软件的构建、测试与发布变得更快以及更频繁。持续集成的代码提交将进一步进行性能和功能测试,直到批准发布为止。要有效执行持续交付,需要强大的持续集成。如果正确实施,开发人员将始终拥有已通过标准化测试过程的可部署的构建工件。

持续部署

Continuous deployment ,缩写为CD。 通过自动化部署的手段将软件功能频繁的进行交付。与持续交付以及持续集成相比,持续部署强调了通过自动化的手段,对新的软件功能进行集成。在持续部署中,所有通过自动化测试阶段的代码提交都将自动发布到生产环境中。持续部署不需要在登台环境中进行任何手动测试,因为自动化测试将在发行版的所有阶段中执行。

DevOps


DevOps是一个合成词,源于“Development(开发)”和“Operations(运维)”两个词,它涉及以特定的方式实践应用程序开发的任务,是软件开发、测试和运维结合的过程、方法及系统,可以简单理解为“开发运维一体化”。

DevOps的生命周期包括持续开发、持续集成、持续测试、持续反馈、持续监测、持续部署和持续运维七个阶段,始终以持续交付为核心目标,倡导多个团队建立良好的沟通和协作,以更快更可靠地创建高质量软件。

DevOps可以视作敏捷开发方法论的一种扩展,但更强调开发、测试和运维不同团队间的协作与沟通。敏捷开发的目标是确保开发团队及其开发流程具有快速变化的灵活性,而DevOps则重视端到端的业务解决方案,通过软件开发团队和运维技术团队之间的沟通协作来提高工作效率。

DevOps弥补了瀑布和敏捷过程中开发、测试、运维在整个软件开发周期中相对分离的不足,具有加快交付速度、提高交付质量、减少团队摩擦、实现快速反馈等优势。
发表评论
评论通过审核后显示。