为什么google appengine部署需要几分钟才能更新服务 [英] why does google appengine deployment take several minutes to update service

查看:102
本文介绍了为什么google appengine部署需要几分钟才能更新服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用了nodejs灵活的环境记录

解决方案



lockquote

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

为了覆盖这种行为,您可以使用
版本标志指定版本ID:

  gcloud app deploy --version myID 

您也可以指定不使用--no-promote立即将所有流量发送到新版本
flag:

  gcloud app deploy --no-pro mote 


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



重新部署特定版本时,与第一次部署相比,有一堆额外的该版本至少包括:


  • 将流量从被覆盖的版本切换到

  • 关闭运行以前版本代码的实例:


    • 确定缩放类型
    • 找出哪些是运行实例

    • 任何宽限期以完成正在进行的请求

    • 任何宽限期以完成关闭挂钩(如果适用)
    • 向他们发送 / _ ah / stop 请求


  • 旧的虚拟机实例


I'm using nodejs flexible environment documented here

Nothing fancy in the config

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

Here is my deployment command

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

Whenever I deploy a new version, almost everything goes really fast. However, the step 'Updating service [SimpleExpressServer]' takes several minutes.

Is there anyway to optimize this step?

解决方案

From Deploying your program:

By default the deploy command automatically generates a new version ID each time that you use it and will route any traffic to the new version.

To override this behavior, you can specify the version ID with the version flag:

gcloud app deploy --version myID

You can also specify not to send all traffic to the new version immediately with the --no-promote flag:

gcloud app deploy --no-promote

So your deployment includes overwriting the specified app version and switching traffic to the newly deployed version.

When you re-deploy a certain version there's a pile of additional stuff to be done compared to the 1st deployment of that version, which includes at least:

  • switching traffic away from the version being overwritten
  • shutting down the instances running the previous version of the code:
    • determining the scaling type
    • finding out which are the running instances
    • any grace period to complete requests in progress
    • any grace period to complete shutdown hooks (if applicable)
    • sending them the /_ah/stop request
  • decomissioning the old vm instances

这篇关于为什么google appengine部署需要几分钟才能更新服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆