蓝绿发布
什么是蓝绿发布
蓝绿部署是一种应用发布模式,可将用户流量从先前版本的应用或微服务全量转移到新版本中(两者均保持在生产环境中运行)。
旧版本可以称为蓝色环境,而新版本则可称为绿色环境。一旦生产流量从蓝色完全转移到绿色,蓝色就可以在回滚或退出生产的情况下保持待机,也可以更新成为下次更新的模板。
蓝绿发布的适用场景
- 机器资源有富余或者可以按需分配
- 单体应用、调用复杂度不高的业务系统
- 对用户体验具备一定的容忍度
北极星如何支持蓝绿发布
蓝绿发布需要依赖几个关键的技术点:
- 流量入口侧需要支持按百分比进行流量切换,并对灰度流量进行染色(打上灰度标签)。
- 微服务框架需要支持灰度标签的透传。
- 服务治理中心支持灰度流量只路由到灰度版本的服务中,非灰度流量只路由到原版本服务中 。
北极星提供以下功能,支持蓝绿发布:
- 网关直通微服务:北极星支持直接打通网关到微服务的链路(支持主流网关Envoy/Kong/Nginx/Spring Cloud Gateway),网关侧可以直接将流量打通到微服务的节点/POD,无需通过ClusterIP来中转。
- 提供自定义路由能力,支持流量按标签(版本等)进行路由。
- 微服务框架SpringCloudTencent,以及流量代理Envoy支持流量标签透传能力。
北极星支持Spring Cloud Tencent以及服务网格(Envoy)的方式接入使用蓝绿发布的能力。
前置条件
部署polaris
如果已经部署好了polaris,可忽略这一步。
polaris支持在kubernetes环境中进行部署,注意必须保证暴露HTTP端口为8090,gRPC端口为8091。具体部署方案请参考: