操作场景
在业务进行版本更新及切换时,为了保证线上业务稳定,建议采取灰度发布的方式。 本文以已部署的 express 项目为例,为您介绍两种灰度发布的操作步骤。
前提条件
已完成 开发项目。
操作步骤
- 设置生产环境中的 .env:
TENCENT_SECRET_ID=xxxxxxxxxx TENCENT_SECRET_KEY=xxxxxxxx STAGE=prod
- 部署到线上环境 $latest,并切换10%的流量在 $latest 版本(90%的流量在最后一次发布的云函数版本N上):
sls deploy --inputs traffic=0.1
- 对 $latest 版本进行监控与观察,等版本稳定之后把流量100%切到该版本上:
sls deploy --inputs traffic=1.0
- 流量全部切换成功后,对于一个稳定版本,我们需要对它进行标记,以免后续发布新功能时,如果遇到线上问题,方便快速回退版本。部署并发布函数版本 N+1,切换所有流量到版本 N+1:
sls deploy --inputs publish=true traffic=0
说明:云函数组件支持了自定义别名的灰度发布,可以在任意两个函数版本间进行流量规则配置,详细说明请参考Serverless 灰度发布。