自动扩缩容

微信云托管会根据服务版本配置文件中设置的扩缩容条件进行弹性扩缩容器实例数。

请求处理

传入云托管服务请求时,后台会把流量均匀的分配到各个容器实例上,以达到实例负载均衡。越多请求到容器实例上,占用容器实例的CPU或内存就越多,从而触发到扩容条件,此时就需要创建出新容器实例来处理更多请求。

扩缩容条件

目前支持2个扩缩容条件为:CPU使用率、内存使用率;配置文件中默认扩缩容条件为:CPU使用率>=60%。可按业务实际使用场景设置扩缩容条件及使用率大小。

自动扩容

以扩缩容条件为CPU使用率>=60%为例,当版本下容器实例在3min内平均CPU使用率持续大于等于60%时,云托管会自动创建1新容器实例并部署完当前版本,耗时约为20s+服务启动时长,然后再检测容器实例是否再次达到扩容条件,如果再次达到扩容条件,云托管会自动创建新容器实例,如此反复检测,如果持续达到缩容条件,则容器实例数继续扩容直至达到实例副本数最大值50个;如扩容后不再满足扩容条件,则停止再次扩容。

自动缩容

以扩缩容条件为CPU使用率>=60%为例,当版本下容器实例在3min内平均CPU使用率持续小于60%时,云托管会在3min内自动缩掉1容器实例,同时将该缩掉的容器实例上的请求再均匀的分配到剩余的容器实例上;然后再检测容器实例是否再次达到缩容条件,如果再次达到缩容条件,云托管会自动缩容容器实例,如此反复检测,如果持续达到缩容条件,则容器实例数继续缩容直至达到实例副本数最小值;如缩容后不再满足缩容条件,则停止再次缩容。

  • 如业务对流量比较敏感,对业务服务高可用要求较高,可将扩缩容条件调低;
  • 如业务对流量不敏感,对服务无高可用要求,可将扩缩容条件调低;
  • 自动扩容到副本个数最大值后若仍不足以承载业务流量,即便再次达到扩缩容条件,也不会继续创建新的实例,可能导致业务受影响,请评估好业务指标后合理设定副本个数最大值;

容器实例副本数

用于指定当前版本在自动扩缩容时可达到的最大实例数及最小实例数。最小值下限为 0,最大值上限为 50,业务可根据服务需要自定义指定。

成本敏感业务

如业务对成本敏感,对冷启动不敏感,可将实例副本数最小值设为0,最大值按实际需要即可;

  • 当没有流量打到版本上时,版本实例副本数将缩容到 0,不保留任何实例,不产生任何费用。
  • 连续半个小时无流量,云托管会将实例个数缩容到 0(避免流量偶然波动带来的误判),再次冷启动时,启动时长为服务启动时长。
  • 默认推荐规格为最小规格 0.25 核 0.5G,单价最低。可按需调整规格。
  • 版本部署过程中会先产生1个实例,部署完成后连续30min内无请求,实例缩容到 0,因此部署过程本身会产生一定的资源消耗。
高可用业务

如业务对成本相对不敏感,对服务常驻有要求或无法接受冷启动,可按需将实例副本数最小值设为1-50间的任意整数。

  • 没有流量打到版本上,版本仍会保持最小个数的实例数,也会持续产生费用
  • 容器规格可以按需调整。
  • 版本部署时就会按最小副本个数和规格产生实例;

自动扩容到副本个数最大值后若仍不足以承载业务流量,即便再次达到扩缩容条件,也不会继续创建新的实例,可能导致业务受到影响,请评估好业务指标后合理设定副本个数最大值。若希望提升实例副本数最大值限额(大于 50),请提交工单联系我们单独处理。

容器规格

每个容器实例的规格大小配置。自动扩容时,新创建的容器实例按照设置的规格进行扩容。同一个版本下所有容器实例规格保持一致。