使用fc-canary插件进行灰度发布

函数在更新后,默认会将更新后的配置与代码发布并覆盖LATEST版本,函数更新后直接调用函数将默认命中刚部署的LATEST版本最新配置与代码。为了保证生产环境的稳定性,社区提供fc-canary插件实现灰度发布。本文介绍如何使用fc-canary插件进行灰度发布。

插件使用

函数计算提供别名的产品能力,将部署与发布行为分离,从而保证生产环境的稳定性。线上环境可以配置一个别名并指向一个不变的版本,发布时可以首先发布一个版本,然后将别名指向目标版本即可。在更新别名目标版本时,可以使用别名的灰度产品能力,配置灰度比例,先让少部分调用可以命中灰度版本,观察确认业务正常后再全量更新至灰度版本。

如果用插件实现灰度发布,需要首先成功部署。插件会基于刚更新的配置与代码(LATEST版本)发布稳定的版本,然后更新别名配置,如果别名不存在,将基于目标版本创建别名,让指定比例的流量命中灰度版本。

在FC 2.0中,别名从属于服务,插件的用法示例如下。

# 更新杭州区域的web-framework-kzbp服务的别名配置,将50%的流量执行刚发布的版本。
- plugin: @serverless-cd/fc-canary
  inputs:
    serviceName: web-framework-kzbp
    aliasName: prod
    regionId: cn-hangzhou
    canaryPercent: 50