首页 > 解决方案 > Cloud Build -> Google Cloud Storage:关于部署时停机时间的问题

问题描述

- name: 'google/cloud-sdk:alpine'
  entrypoint: 'gsutil'
  args: ['-m', 'rsync', '-r', '-d', '-p', 'dist/', 'gs://my-site-frontend']

早上好,上面的代码片段是通过 Google Cloud Build 将我的 VueJS 前端的构建复制到将托管网站的 Google Cloud Storage 存储桶的命令。

我的问题很简单:如果任何用户在此部署时正在浏览(执行上述命令),当 Cloud Build 通过 rsync 复制/同步新文件时,他是否会注意到任何不一致、停机或类似情况? 这项任务是否足够无缝?也许用户在访问某些正在复制的文件时会感到有些不一致?我应该改用 Cloud Run 吗?

标签: google-cloud-platformgoogle-cloud-storagegoogle-cloud-build

解决方案


是的,您可能会在一段时间内出现不一致(文件已过期或未找到)。最好的解决方案是使用以一致方式打包资源的产品。您可以使用 Cloud Run,但也可以为此使用 App Engine 标准。

这两种解决方案的主要优点是每个版本都是单一的,打包在同一个容器中。像这样,您可以轻松地执行回滚、流量拆分、金丝雀发布、A/B 测试……所有这些都是 Cloud Storage 无法实现的。


推荐阅读