体系结构

下图说明了以 DNS 作为流量分发器的自动缩放功能的体系结构。

AWS-autoscale-architecture-NLB

下图说明了以 NLB 作为流量分配器的自动缩放功能的体系结构。

AWS-autoscale-architecture-NLB

Citrix Application Delivery Management (ADM)

Citrix Application Delivery Management 是一种基于 Web 的解决方案,用于管理部署在本地或云上的所有 Citrix ADC 部署。您可以使用此云解决方案通过单个、统一的、集中的基于云的控制台来管理、监视整个全球应用程序交付基础设施并对其进行故障排除。Citrix Application Delivery Management (ADM) 提供了在 Citrix ADC 部署中快速设置、部署和管理应用程序交付所需的所有功能,并提供应用程序运行状况、性能和安全性的丰富分析。

在 Citrix ADM 中创建自动缩放组,并从 Citrix ADM 配置 Citrix ADC VPX 实例。然后通过 Citrix ADM 中的样本部署应用程序。

流量分销商(NLB 或 DNS/Route53)

NLB 或 DNS/Route53 用于跨自动缩放组中的所有节点分配流量。有关详细信息,请参阅自动缩放流量分布模式。

Citrix ADM 与流量分配器通信,以更新前端应用程序的负载平衡虚拟服务器的应用程序域和 IP 地址。

Citrix ADM 自动缩放组

自动缩放组是一组 Citrix ADC 实例,它们将应用程序作为单个实体进行负载平衡,并根据配置的阈值参数值触发自动缩放。

Citrix ADC 群集

Citrix ADC 群集是一组 Citrix ADC VPX 实例,每个实例称为节点。客户端流量分布在节点之间,以提供高可用性、高吞吐量和可扩展性。

注意

  • 自动缩放决策是在群集级别而不是在节点级别进行的。
  • 独立群集托管在不同的可用区中,因此对某些共享状态功能的支持受到限制。

持久性会话(例如源 IP 持久性)和除基于 Cookie 的持久性之外的其他会话不能在群集之间共享。但是,负载平衡方法等所有无状态功能在多个可用区域中按预期工作。

AWS 自动扩展组

AWS 自动扩展组是 EC2 实例的集合,这些实例具有相似特征,并且为了实例扩展和管理的目的被视为逻辑分组。

AWS 可用区

AWS 可用区是区域内的一个孤立位置。每个区域由多个可用区组成。每个可用区域属于一个区域。

流量分布模式

当您将应用程序部署移动到云时,自动缩放将成为基础架构的一部分。当应用程序使用自动缩放向外扩展或扩展时,必须将这些更改传播到客户端。使用基于 DNS 或基于 NLB 的自动缩放来实现此传播。

基于 NLB 的自动缩放

在基于 NLB 的部署模式下,群集节点的分发层是 AWS 网络负载平衡器。

在基于 NLB 的自动缩放中,每个可用区仅提供一个静态 IP 地址。这是添加到 route53 的公有 IP 地址,后端 IP 地址可以是私有的。对于此公有 IP 地址,在自动扩展过程中预配置的任何新 Citrix ADC 实例都使用私有 IP 地址运行,不需要其他公有 IP 地址。

NLB 仅支持基于 TCP 的负载平衡。如果要支持 UDP 流量,可以选择基于 DNS 的自动缩放。

基于 DNS 的自动缩放

在基于 DNS 的自动缩放中,DNS 充当 Citrix ADC 群集节点的分发层。扩展更改将通过更新与应用程序对应的域名传播到客户端。目前,DNS 提供商是 AWS Route53。

注意

在基于 DNS 的自动缩放中,每个 Citrix ADC 实例都需要一个公有 IP 地址。

自动缩放的工作原理

以下流程图说明了自动缩放工作流程。

自动缩放工作流程

Citrix ADM 以一分钟的时间间隔从自动缩放预配置的群集收集统计信息(CPU 使用率、内存使用率、吞吐量)。

根据配置阈值评估统计数据。根据统计数据是超过最大阈值还是低于最小阈值,会分别触发向外扩展或扩展。

  • 如果触发了向外扩展:

    • 已预配置新节点。
    • 节点附加到群集,并且配置将从群集同步到新节点。
    • 节点已注册到 Citrix ADM。
    • 在 DNS/NLB 中更新新节点 IP 地址。

部署应用程序时,会在每个可用区中的群集上创建 IPSet,域和实例 IP 地址注册到 DNS/NLB。

  • 如果触发了扩展:
    • 将删除标识为删除的节点的 IP 地址。
    • 节点与群集分离,取消置备,然后从 Citrix ADM 取消注册。

删除应用程序后,域和实例 IP 地址将从 DNS/NLB 中取消注册,并删除 IPSet。

示例

考虑使用以下配置在单个可用区域中创建了名为 asg_arn 的自动缩放组。

  • 阈值参数 — 内存使用情况
  • 最低限额:40
  • 最大限制:85
  • 观看时间 — 3 分钟
  • 冷却时间 — 10 分钟
  • 漏连接超时 — 10 分钟
  • TTL 超时 — 60 秒

创建自动缩放组后,将从自动缩放组收集统计信息。自动缩放策略还会评估是否有任何自动缩放事件正在进行中,如果正在进行自动缩放,则在收集统计信息之前等待该事件完成。

自动缩放示例

事件顺序:

  • T1 和 T2:内存使用超过最大阈值限制。
  • T3-内存使用率低于最大阈值限制。
  • T6、T5、T4:内存使用量连续超过了三个手表时间的最大阈值限制。

    • 触发向外扩展。
    • 节点的预配置发生。
    • 冷却时间有效。
  • T7 — T16:由于冷却周期有效,从 T7 到 T16 跳过此可用区的自动缩放评估。

  • T18、T19、T20-内存使用量连续超过了三个手表时间的最小阈值限制。
    • 缩放被触发。
    • 漏极连接超时生效。
    • IP 地址从 DNS/NLB 中解除。
  • T21 — T30:由于漏极连接超时生效,从 T21 到 T30 跳过此可用区的自动缩放评估。

  • T31
    • 对于基于 DNS 的自动缩放,TTL 有效。
    • 对于基于 NLB 的自动缩放,会发生实例的撤销。
  • T32
    • 对于基于 NLB 的自动缩放,开始评估统计信息。
    • 对于基于 DNS 的自动缩放,会发生实例的撤销。
  • T33:对于基于 DNS 的自动缩放,开始评估统计信息。