常用的发布类型

滚动发布

  • 原理:假设A服务的v1版本部署了10个节点,轮询将这10个节点升级到v2版本
  • 优点: 易实现且节约资源
  • 缺陷:在发布期间,用户的请求可能会路由到v2版本处理,也可能会路由到v1版本处理;当版本涉及数据库等、接口字段类型等变更时将会造成客户端不可预知的错误 且回滚困难

蓝绿发布

  • 原理: 假设A服务的V1版本部署了10个节点,需要发布v2版本时,先将v2版本也不熟10个节点,然后再统一将v1版本的所有流量路由到v2版本。蓝色发布很多时候配合流量比例使用
  • 优点: 易实现,而且可以快速切换、回滚。提高发版速度
  • 缺陷: 需要两倍的资源

按流量比例发布

原理:比如基于hash、会话、随机等策略使70%的流量到达v1版本,30%的流量到达v2版本 缺陷:

灰度发布(又名金丝雀发布)

  • 原理: 通过流量随机百分比、header头、URI参数等用户属性的方式将流量平滑的在A/B版本上过渡,可以进行A/B 测试,让一部分用户使用灰度版本并逐渐放大流量

微服务全链路灰度发布系统带来的挑战

原理跟灰度发布原理一致,但是要针对整条链路实现链路灰度,比如A->B->C->D的服务调用管理中,变成A->B2->C2->D关系,有灰度版本时走灰度版本,无灰度版本的应用走正常版本 这个流量转发过程变得非常复杂

Copyright © 运维知识库 all right reserved,powered by Gitbook文件修订时间: 2023-09-19 10:45:38

results matching ""

    No results matching ""