回滚 Google App Engine 托管虚拟机
Rollback Google App Engine Managed VM
我更新了托管 VM 代码并将其部署到当前部署中。然后我删除了旧的部署。
我的新部署有一个bug,但是因为我删除了旧部署,所以我无法回到旧版本!
如何在不重做所有内容的情况下恢复旧部署?我想尽量减少停机时间。
我强烈建议始终至少使用一个以前的版本 运行,这样您就可以在出现问题时立即切换回来。
但是,由于保存了 Container 镜像,您可以使用此技巧回滚:
假设您的第一个部署版本为 'v1',第二个部署版本为 'v2'
gcloud preview app deploy app.yaml --promote --version v1
- 进行一些代码更改
gcloud preview app deploy app.yaml --promote --version v2
- 出于某种原因在控制台中删除 v1
- 哦不! v2有一个错误!用户很生气!
- 哦不!我删除了 v1,但无法在零停机时间的情况下立即切换回它!
gcloud preview app deploy app.yaml --promote --version v1 --image-url appengine.gcr.io/vm-containers.<your-project-id>.appspot.com/<your-project-id>.default.v1
- 2-4 分钟的停机时间
- 应用程序在版本 v1 中再次开始工作
我更新了托管 VM 代码并将其部署到当前部署中。然后我删除了旧的部署。
我的新部署有一个bug,但是因为我删除了旧部署,所以我无法回到旧版本!
如何在不重做所有内容的情况下恢复旧部署?我想尽量减少停机时间。
我强烈建议始终至少使用一个以前的版本 运行,这样您就可以在出现问题时立即切换回来。
但是,由于保存了 Container 镜像,您可以使用此技巧回滚:
假设您的第一个部署版本为 'v1',第二个部署版本为 'v2'
gcloud preview app deploy app.yaml --promote --version v1
- 进行一些代码更改
gcloud preview app deploy app.yaml --promote --version v2
- 出于某种原因在控制台中删除 v1
- 哦不! v2有一个错误!用户很生气!
- 哦不!我删除了 v1,但无法在零停机时间的情况下立即切换回它!
gcloud preview app deploy app.yaml --promote --version v1 --image-url appengine.gcr.io/vm-containers.<your-project-id>.appspot.com/<your-project-id>.default.v1
- 2-4 分钟的停机时间
- 应用程序在版本 v1 中再次开始工作