Azure DevOps同一Deployment Group内能否串行部署Web App至目标服务器?
同一Deployment Group内即可实现串行部署,无需拆分
你完全不需要把四台服务器拆分成多个Deployment Group!Azure DevOps的Deployment Group本身就支持串行部署的配置,刚好能满足你借助负载均衡实现无感知停机的需求,下面是具体的操作步骤和注意事项:
核心配置步骤
- 在你的Azure DevOps发布管道中,找到针对Deployment Group的部署任务(比如
IIS Web App Deployment或你自定义的部署脚本任务) - 展开任务的Deployment group设置区域,找到Deployment strategy选项
- 选择
Run on each machine one at a time(逐个在每台机器上运行)模式,这会让部署任务依次在四台服务器上执行,完成一台后再启动下一台的部署
配合负载均衡实现无感知停机
为了确保用户完全感知不到停机,还需要和负载均衡的健康检查配合:
- 确认你的负载均衡器已配置健康检查规则(比如检查应用的某个健康端点)
- 当某台服务器开始部署时,负载均衡器会因为健康检查失败(或你主动操作)自动将流量从这台机器上切走;部署完成且健康检查通过后,流量会自动恢复
- 你也可以在部署流程中添加自定义任务:部署前调用负载均衡器的API/CLI命令,将目标服务器从后端池中移除;部署完成后再调用命令将其加回,进一步提升可靠性
为什么不需要拆分Deployment Group?
拆分多个Deployment Group反而会增加管理成本:你需要维护多个Group的相同配置,后续服务器扩容或配置变更时还要同步更新所有Group,完全没必要。而同一Group内的串行部署既简化了管理,又能精准控制部署顺序。
内容的提问来源于stack exchange,提问作者Mikael Engver
相关产品推荐
相关产品推荐

