为什么谷歌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
请求
- 使旧的虚拟机实例失效