devops之部署模式

devops之部署模式

蓝绿发布

旧版本仍旧提供服务,同时部署新版本,等新版本测试ok后,流量全部导入新部署版本。

特点: 没有downtime,会存在额外基础设施的浪费(双倍示例)。

Screen Shot 2020-12-29 at 5.31.48 PM

金丝雀((Canary)发布 /灰度发布

金丝雀发布/灰度发布是在原有版本可用的情况下,同时部署一个新版本应用作为“金丝雀”,测试新版本的性能和表现

部署过程:

  • LB摘除金丝雀服务器
  • 发布“金丝雀”应用
  • 应用测试
  • 金丝雀服务重新加入LB
  • 如果成功,升级剩余服务器;否则回滚
Screen Shot 2020-12-29 at 5.34.45 PM

特点:

如果有问题,只影响小部分用户

自动化程度要求高,发布缓慢

ABTesting:

AB测试是为Web或App界面或流程制作两个(A/B)或多个(A/B/n)版本,在同一时间维度,分别让组成成分相同(相似)的访客群组随机的访问这些版本,收集各群组的用户体验数据和业务数据,最后分析评估出最好版本正式采用。

AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来

滚动发布 (rolling update)

新旧版本同时在线,新版本逐步替代旧版本。一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本。

流量模式:

Screen Shot 2020-12-29 at 5.41.44 PM