文档中心 弹性伸缩 最佳实践 搭建可伸缩的微信小程序

搭建可伸缩的微信小程序

最近更新时间:2018-10-08 18:07:59

部署架构

我们可以按以下架构创建微信小程序,其中,业务服务器集群和会话管理服务器集群需要具备弹性伸缩能力。

为什么配置弹性伸缩?

以下两个场景下弹性伸缩能降低成本和提高业务连续性:

  1. 小程序访问有明显的高峰低谷:根据测算,如果业务服务器集群和会话服务器集群需要不止一台机器,且高峰短于8个小时,采用 按闲时保留固定服务器 + 高峰时期增加临时服务器 的方式,能节约30%左右成本。您可以通过 AS 设置定时扩缩容任务,让腾讯云在忙时扩容临时服务器,闲时回收终止未充分利用的服务器。

  2. 小程序访问量稳定的预期下,配置基于监控告警的伸缩策略可应对意外高负载,保障服务的持续可用,给问题解决争取时间。异常高负载包括 CC攻击 以及意外流量(例如,“脸萌”刚上线的远超预期的传播速度,或特定事件带来的突发访问)。可参看公益网站 宝贝回家 的案例。

注:弹性伸缩能力免费,扩容的 CVM 按秒正常计费。

弹性伸缩会做哪些事情?

弹性伸缩可以帮助您:

  1. 定时给集群增加机器或减少机器;
  2. 根据集群服务器的负载情况自适应地增加机器或减少机器;
  3. 加的机器会自动注册到负载均衡中,实现全自动扩容。

配置前提

将微信小程序的能力搭建起来,可参考详细步骤

为会话服务器配置弹性伸缩策略

1. 创建启动配置

扩容时以 启动配置 为模板创建机器,因此我们事先通过启动配置指定地域、机型、镜像。

  1. 登录弹性伸缩控制台,单击导航条中的【启动配置】。

  2. 选择项目和地域,这里要注意必须选择小程序所在的项目和地域。

  3. 接下来的操作与购买机器类似,您可跟着指引完成启动配置创建。

注:
此前您需要制作好镜像,这里需确保镜像里的应用能随操作系统启动,这样扩容出来的机器就能直接工作,无需人工介入。

2. 创建伸缩组

在弹性伸缩的 控制台,单击【新建】,按如下填写集群的管理信息:

  • 名称:按需起一个名字,这里填“会话服务器集群”。
  • 最小伸缩数:集群服务器数量的下限,这里填 0 即可。
  • 起始实例数:伸缩组刚创建时,自动创建的机器数量。这里填 0 即可。
  • 最大伸缩数:集群服务器数量的上限,这里按需填写。
  • 启动配置:选择刚才您创建的启动配置。
  • 支持网络:会话服务器的网络环境,一般选“基础网络”即可。
  • 支持可用区:即选择机扩容器落在哪个可用区里,此处按会话服务器所在的可用区勾选即可。
  • 移出策略:选择默认即可。
  • 负载均衡:选择会话服务器的负载均衡。

最后单击【确定】,完成创建。

3. 添加现有机器进伸缩组

  1. 控制台 单击伸缩组名字,进入管理页,在页面下方单击“添加云主机”。

  2. 在弹出的对话框中选择已有的会话服务器加入伸缩组。

  3. 加入后对服务器设置“免于缩容”,这样在缩容活动中,伸缩组不会选择这台服务器缩容。

4. 设置扩容策略

您可以选择定时扩容、或者基于告警动态扩容(通常扩容任务和缩容任务成对出现)。

a. 定时扩缩容

比如一个点餐小程序,可预期午饭时间的负载比其他时间高,您可以设置每天11:00-13:00扩容两台额外服务器支撑负载。

  • 先设置一个定时扩容任务:

  • 再设置一个定时缩容任务:

b. 基于告警扩容

预期不明确的扩容,但需要防范出现意料之外的流量/攻击:

  • 先设置一个告警扩容策略,用于应对异常流量:

  • 再设置一个告警缩容策略,用于清退未充分利用的服务器:

为业务服务器配置弹性伸缩策略

这个过程与会话服务器类似:

  • 为业务服务器创建一个启动配置;
  • 为业务服务器创建一个伸缩组“业务服务器集群”,指向业务服务器的负载均衡;
  • 为业务服务器设置伸缩策略。

验证伸缩性和查看伸缩活动

单击【编辑】,将伸缩组的期望实例数+1,伸缩组会自动扩容一台服务器到集群中。如果新扩的机器能正常处理请求,说明伸缩组已正常工作。

伸缩组还支持查询历史伸缩活动,确保您完全掌控伸缩活动情况。

至此,您的小程序已经具备了智能扩容的能力。您无需再为扩容缩容的问题操心,只需留意伸缩组通知或者不定期查看历史伸缩活动即可。