如何理解持续集成、持续交付、持续部署?

如题所述

第1个回答  2018-03-20

我们经常听到持续集成,持续交付,持续部署,它们是什么,联系和区别是什么?让我告诉你我的想法。


是什么

集成指软件作为软件的一部分的部分交付,以尽早发现个体开发部分的问题;

部署是能够尽早交付到运行的开发/测试部分的代码,以便尽早进行测试;

交付是指研究和开发尽快交付给客户,以便尽早发现生产环境中的问题。

如果你一直等到一切都完成了再交付,所有的问题都只能再次出现,而且成本甚至无法解决。而所谓的坚持,也就是说,每一个完整的部分,下一个步骤的交付,问题都可以立即调整。这个问题不会被放大到其他的部分和后期。


三者联系

持续集成,持续交付,持续部署。个人的理解是尽早发现问题并及早发现问题,这比在开发中发现问题的成本要低得多。大多数情况下,最初的需求在开发过程中会有所不同,或者在开发过程中没有足够的需求分析。

三者区别

“持续集成(Continuous Integration)“连续交付(连续交付)”“持续部署”(持续部署)为整个团队提供了良好的企业环境,共同的利益和挑战。在任何情况下,频繁部署、快速交付和开发测试过程自动化将是未来软件工程的重要组成部分。


我个人认为持续的集成,持续的交付,持续的部署是值得传播的。在开发过程中,对集成的最大恐惧导致返工,而持续集成、持续交付和持续部署可以及早发现并及早解决,从而避免了这个问题。


第2个回答  2018-03-20

如何区分和理解这三个概念?

1)持续集成:集成,一起:代码提交是集成(代码在一起),编译是集成(逻辑在一起);部署是集成的(部署包与环境),测试集成(功能),灰度集成(一起)系统集成和校正的综合结果,是持续集成;

2)持续交付:交付:将最终产品发布到在线环境和用户。持续交付的描述软件开发过程中,从最初的识别到最终产品的需求正在部署到生产环境在这一过程中,要求每个团队间小批量的形式流作用,来满足需求的短期内频繁交付的小颗粒大小等等。频繁的交付周期会给软件带来更快速的反馈,在过程中,角色的协作比传统的瀑布软件团队更紧密,更少浪费。

3)持续部署:对目标环境持续部署需求。

2。你的技术团队是否得到认可和提升?在实践推广过程中总结了什么?我们的团队一直在做持续的交付,半年的做下去效果很好,每天都做自动化的构建、打包、部署、验收,每天完成内容,每一次迭代的故事交付点都是稳定向上的发展趋势。在推广过程中,必须强调单元测试的重要性,功能测试自动化测试,仅用于自动化测试,建立良好的保护机制,快速反馈,快速解决问题。市场上有许多类似的工具。在国外也有亚马逊网络服务(AWS),中国CRP持续交付平台的持续交付平台。相对而言,国内开发商应该更接近国内开发商,而亚马逊的学习成本相对较高。我们的团队使用CRP连续交付平台,它是免费的,代码托管,自动构建,部署等等。

是否有必要向产品同事和老板推广这种概念?在普及的内容中发生的事情是需要不断的和同事和老板,因为最终目的的持续交付是快速迭代,快速反馈,持续改进。这可以帮助老板和产品提高交付能力,也可以帮助研发团队提高效率。晋升或会有困难,国内可以实现持续交付团队并不多,很多人都知道的好处,但是自动化单元测试和功能测试内容需要发展成大量的能量,首先还是需要说服研发总监同意你的想法。