为什么谷歌appengine部署需要几分钟来更新服务

我正在使用这里logging的nodejs灵活的环境

没有什么奇特的configuration

runtime: nodejs vm: true service: SimpleExpressService health_check: enable_health_check: False automatic_scaling: min_num_instances: 1 max_num_instances: 4 cool_down_period_sec: 120 cpu_utilization: target_utilization: 0.5 

这是我的部署命令

 gcloud app deploy -q --promote --version $VER 

每当我部署一个新版本,几乎所有的东西都非常快。 但是,更新服务[SimpleExpressServer]步骤需要几分钟。

有没有优化这一步?

在这里输入图像描述

从部署您的程序 :

默认情况下,每次使用deploy命令时,deploy命令都会自动生成新的版本ID,并将任何stream量路由到新版本。

要覆盖此行为,可以使用版本标志指定版本ID:

 gcloud app deploy --version myID 

您还可以指定不使用–no-promote标志将所有stream量发送到新版本instanty:

 gcloud app deploy --no-promote 

因此,您的部署包括覆盖指定的应用程序版本,并将stream量切换到新部署的版本。

当您重新部署某个版本时,与该版本的第一次部署相比,还有一堆额外的工作要做,其中至less包括:

  • 将stream量从被覆盖的版本切换掉
  • closures运行以前版本的代码的实例:
    • 确定缩放types
    • 找出哪些是正在运行的实例
    • 任何宽限期来完成正在进行的请求
    • 任何宽限期完成closures挂钩(如适用)
    • 向他们发送/_ah/stop请求
  • 使旧的虚拟机实例失效