![0a15814fbff8dfdcf2142201f477481f.png](https://i-blog.csdnimg.cn/blog_migrate/53f10cacb09d1fd968d030a122da29c6.png)
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。这是百度百科给出的名词解释。如果大家不太理解,我可以给大家举个例子。
比如说,一个产品,定义了很多条需求。如果等到所有需求开发完成,再进行测试,需要耗费大量的时间。如果测试与开发可以并行,就会缩短项目周期。思想如下:
![40126865a9077f2b1f9a4e6c13ce6e36.png](https://i-blog.csdnimg.cn/blog_migrate/ef6fb851c44d04fef4f8663a21d9a492.png)
一条业务线运行,先开发,后测试,假设需要10天;那么测试开发并行可能7、8天就能结束工作;但是我们发现每一次测试前,都需要部署。重复的部署工作,还是耗费了一些时间的,如果可以让电脑自动完成部署工作,是不是6、7天就能完成工作?这个就要具体去分析部署的工作流程了。
![a6e3ed03ef1b0c4021276d4a01779ef2.png](https://i-blog.csdnimg.cn/blog_migrate/e560b4a96221090b84e68c7653727f42.png)
这是一个比较简单的部署流程,除了源码下载,其余各阶段,自动化执行都比手工敲打命令速度要快。所以部署的节省时间可以用下面这个公式去计算
节省时间=(单次手工部署耗时*部署次数)-(手工编写脚本耗时+单次自动部署耗时*部署次数)
假设每次手工部署需要20分钟,自动化部署需要8分钟,部署10次,编写脚本20分钟
那么节省时间=(20*10)-(20+8*10)=100分钟
若系统需要分布式部署,节省时间就是成倍增长的。只要节省时间较大,自动化部署方案就可以执行。这便是自动化部署的第一个有点ÿ