天天看点

浅谈增量部署的svn和全量部署的git

1、增量部署

增量部署一般指在每次部署过程中,首先提取当前版本和即将部署版本之间的增量(包括代码、可执行文件或配置等),并在部署过程中仅更新增量部分。

(1)增量部署的部署流程:

  • 利用代码管理工具(SVN等)提取两个版本之间的增量,并结合其他方面的增量变化。
  • 按照增量部分制定具体的部署方式,编写部署脚本,并准备增量部署包(包括混淆代码等)。
  • 分发和部署增量部署包到已经运行上一版本的目标环境,完成系统的版本升级。

(2)增量部署的优点:

  • 部署速度快。增量部署每次仅对增量部分进行更新,无论是文件分发还是配置更新的内容都会更少,部署需要的时间也就相对较短。
  • 减少变化量。增量部署可以减少对于整个系统的变化幅度,很多已经完成的配置工作不需要每次重复设置,可以避免误操作,降低部署失败率。
  • 提高安全性。增量部署每次只会涉及到增量代码部分,不会直接暴露系统的整个代码部分更新,避免系统代码泄露的风险。

(3)增量部署面临的挑战:

  • 增量部署对于任何部署外的更新(如为修复一个问题而临时修改运行环境)非常敏感,降低了部署流程的可预期性。
  • 增量部署让回滚操作变得非常不容易,每次回滚都需要逆向计算增量部分。
  • 增量部署无法直接满足从头部署最新系统的日常需求,从零开始重新部署最新版本应用属于全量更新。

(4)增量部署应对挑战的方法:使用全量部署

  • 提前在本地准备好全量部署所需要的所有材料(部署包、配置文件等)后再开始部署操作。
  • 使用如灰度发布或者负载均衡等方法降低全量部署对于应用可用性影响。

2、全量部署

全量部署过程会完整执行完整个环境的配置、初始化以及部署工作,对于任何部署外的更新(如为修复一个问题而临时修改运行环境)有更好的容错性。

对于现代系统中绝大部分状态无关的部署单元(应用、模块,微服务等),全量部署一般应是最优的选择。