如何理解持续集成、持续交付、持续部署?
在学习精益思想的过程中接触到了持续部署这个概念,查了下资料还有持续集成与持续交付。
身为没有技术背景的产品人员,靠自己搜索信息深刻理解这三个概念实在过于痛苦(相反,产品人员对精益是很容易深刻理解且高度认同的,因为越来越明白再好的产品人员、再好的用研意识与方法都无法保证需求的正确性,前期过度的产品设计是浪费的),所以来知乎上求助一下技术达人有没有现成的总结。
如何分辨与理解这三个概念?
你所在的技术团队是否认同与实践推广?在实践推广的过程中总结出了什么心得?
这类概念是否有必要向产品同事、老板普及推广?在普及推广中有过什么事情发生?
身为没有技术背景的产品人员,靠自己搜索信息深刻理解这三个概念实在过于痛苦(相反,产品人员对精益是很容易深刻理解且高度认同的,因为越来越明白再好的产品人员、再好的用研意识与方法都无法保证需求的正确性,前期过度的产品设计是浪费的),所以来知乎上求助一下技术达人有没有现成的总结。
如何分辨与理解这三个概念?
你所在的技术团队是否认同与实践推广?在实践推广的过程中总结出了什么心得?
这类概念是否有必要向产品同事、老板普及推广?在普及推广中有过什么事情发生?
知乎大神
victoria 之回答
自动化部署、持续集成、持续交付专家
1、如何分辨与理解这三个概念?
1)持续集成:
集成,就是在一起:代码commit是集成(代码在一起),编译是集成(逻辑在一起);
部署是集成(部署包跟环境在一起),测试是集成(功能在一起),灰度是集成(系统在一起)
不断的做集成和集成结果的修正,就是持续集成;
2)持续交付:
交付:就是将最终的产品发布到线上环境,给用户使用。
持续交付描述的软件开发,是从原始需求识别到最终产品部署到生产环境这个过程中,需求以小批量形式在团队的各个角色间顺畅流动,能够以较短地周期完成需求的小粒度频繁交付。频繁的交付周期带来了 更迅速的对软件的反馈,并且在这个过程中,各个角色密切协作,相比于传统的瀑布式软件团队,更少浪费。
3)持续部署
持续部署:就是持续的将需求部署到目标环境上。
2、你所在的技术团队是否认同与实践推广?在实践推广的过程中总结出了什么心得?
我们团队一直在做持续交付,半年做下来效果很好,每天做自动化构建打包、部署、验收,每天都会有完成的内容,每个迭代交付的故事点趋势是稳定向上发展的。
在推广的过程中,需要强调单元测试、功能测试等自动化测试的重要性,只有做好自动化测试,才能建立好保护机制,快速给予反馈,快速修复问题。另外自动化的工具也是必须要做的,现在市面上有不少类似的工具,国外的有Amazon Web Services (AWS),国内的有CRP持续交付平台持续交付平台。相对来说,国内的要更贴近国内开发者,amazon的学习成本比较高。我们团队用的是CRP持续交付平台,免费,代码托管、自动化构建、部署等都做的比较完整。
这块内容是需要不断的和同事和老板推广的,因为持续交付最终的目的是快速迭代、快速反馈,不断的改进。这样可以帮助老板和产品提高交付能力的,也可以帮助研发团队提高效率。
推广还是会有困难的,国内能做到持续交付的团队并不算多,很多都知道好处,但是单元测试和自动化功能测试等内容会需要开发投入不少精力,首先还是需要说服研发的负责人赞同你的观念哦。