通过蓝绿部署降低部署风险

本页面介绍了如何部署应用的新版本并将流量从旧版本迁移到新版本。

推送初始应用

使用 Kf CLI 推送包含路由的应用的初始版本:

$ kf push app-v1 --route my-app.my-space.example.com

推送更新后的应用

使用 Kf CLI 推送没有任何路由的新版应用:

$ kf push app-v2 --no-route

将路由添加到更新后的应用

使用 Kf CLI 将所有现有路由绑定到权重为 0 的已更新应用,以确保这些路由不会获取任何请求:

$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 0

迁移流量

通过更新路由的权重,开始将流量从旧应用迁移到更新后的应用:

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 80
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 20

如果部署进展顺利,您可以通过再次更新权重来迁移更多流量:

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 50
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 50

完成流量迁移

当您确信新服务尚未引入回归后,请通过将流量移至新实例完成发布:

$ kf map-route app-v1 my-space.example.com --hostname my-app --weight 0
$ kf map-route app-v2 my-space.example.com --hostname my-app --weight 100

关闭原始应用

确认不需要快速回滚后,移除原始路由并停止应用:

$ kf unmap-route app-v1 myspace.example.com --hostname my-app
$ kf stop app-v1

或者删除应用以及所有关联的路由映射:

$ kf delete app-v1