WHCSRL 技术网

Libra-Platform微服务平台之全链路蓝绿灰度发布

1、Libra-Platform 微服务平台

Libra-Platform微服务平台。基于SpringCloud(2020.0.x) + SpringCloudAlibaba(2021.x) + SpringBoot(2.4.x) + Vue3开发,基于多租户SaaS模式的设计,拥有强大的用户中心,权限基于RBAC设计,支持全链路蓝绿灰度发布。Libra-Platform平台架构清晰、代码简洁、注解齐全,很适合作为基础框架使用。

Gitee仓库地址:https://gitee.com/huangfubin/LibraPlatform

Github仓库地址:https://github.com/hfbin/LibraPlatform

2、在线体验

http://www.librayun.net:8888/

3、Libra-Platform微服务平台之全链路蓝绿灰度发布

蓝绿灰度发布目前已抽成组件,与业务代码和其它组件没有任何关联,需要用时候非常简单只需要将对应组件依赖引入到对应需要蓝灰度发布的服务即可。

3.1 蓝绿灰度发布工程说明

│─libra-bgg -- 蓝绿灰度父级
│  ├─libra-bgg-common 蓝绿灰度公共封装
│  ├─libra-bgg-gateway 蓝绿灰度网关组件
│  ├─libra-bgg-service 蓝绿灰度非网关组件
  • 1
  • 2
  • 3
  • 4

3.2 支持全链路混合蓝绿灰度发布

网关 -> 服务全链路调用中,可以混合实施蓝绿灰度发布

  • 网关上实施蓝绿发布,服务上实施灰度发布
  • 网关上实施灰度发布,服务上实施蓝绿发布

服务 -> 服务全链路调用中,可以混合实施蓝绿灰度发布

  • A服务上实施蓝绿发布,B服务上实施灰度发布
  • B服务上实施灰度发布,A服务上实施蓝绿发布

3.3 支持单节点混合蓝绿灰度发布

网关或服务上可以同时配置蓝绿灰度发布策略,策略优先级:蓝绿 > 灰度

全链路蓝绿发布

在这里插入图片描述
全链路灰度发布

在这里插入图片描述

3.4 蓝绿灰度发布配置说明[rule.json]

1、完整的混合全链路蓝绿灰度发布配置
图片

规则执行优先级:蓝绿 > 灰度 > 兜底,蓝绿灰度发布匹配条件支持多条件配置,expression支持spring sepl表达式规则。

2、全链路蓝绿发布配置
图片
3、全链路灰度发布配置
在这里插入图片描述

3.5 网关接入蓝绿灰度发布

1、添加依赖

<dependency>
    <groupId>cn.hfbin</groupId>
    <artifactId>libra-bgg-gateway</artifactId>
    <version>1.0.0</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

2、在resources下添加蓝绿、灰度发布规则rule.json

3、在bootstrap.yml添加如下配置,开启蓝绿灰度发布,默认是关闭的,如果在配置策略中包含的相关服务,必须在所包含的服务都设置为true,如果中间断层往后调用的服务链路将不起作用。

libra:
  bgg:
    enabled: true
  • 1
  • 2
  • 3

说明:如果不需要蓝绿灰度发布引入了包务必将libra.bgg.enabled配置为false,蓝绿灰度发布是通过请求头进行传递相关策略信息,有一定耗时(具体损耗的时间待测试给出数据)。

3.6非网关接入蓝绿灰度发布

1、添加依赖

<dependency>
    <groupId>cn.hfbin</groupId>
    <artifactId>libra-bgg-service</artifactId>
    <version>1.0.0</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

2、在resources下添加蓝绿、灰度发布规则rule.json

3、在bootstrap.yml添加如下配置,开启蓝绿灰度发布,默认是关闭的,如果在配置策略中包含的相关服务,必须在所包含的服务都设置为true,如果中间断层往后调用的服务链路将不起作用。

libra:
  bgg:
    enabled: true
  • 1
  • 2
  • 3

说明:如果不需要蓝绿灰度发布引入了包务必将libra.bgg.enabled配置为false,蓝绿灰度发布是通过请求头进行传递相关策略信息,有一定耗时(具体损耗的时间待测试给出数据)。

推荐阅读