容灾切换必备--全局流量管理介绍

如今人们对互联网服务的依赖越来越重,提供低延时高可用的服务成为越来越多互联网服务厂商的迫切需求。您是否也遇到过以下问题:
1、需要降低网络耗时,却不知道怎么实现用户服务的就近访问?
2、需要对服务进行灰度验证,却不知道如何控制各个节点的流量比重,不知道如何资源分配?
3、知道保障服务的可用性非常重要,却在遇到故障时,不知道如何快速将流量引流到其他可用节点?
您需要全局流量管理产品来帮助您排忧解难。

什么是全局流量管理

全局流量管理(Global Traffic Manager,以下简称 GTM),是阿里云在19年推出的一款产品。DNS 是当今互联网领域最常见的流量调度方式, 随着分布式服务技术的发展,主备部署、异地多活等多节点架构逐步成为主流。对业务流量进行有效的调度管理,以达到服务低延时高可用的目的就显得尤为重要。根据对阿里经济体多年的流量调度管理经验,以及在众多业务场景(容灾切换,大规模迁站,经济体上云等)中的实践,全局流量管理应运而生,能够帮助用户高效地管理业务流量。

GTM 原理

GTM 本质上是通过 DNS 实现流量调度,底层服务使用的是“云解析DNS”和“云监控”两款产品,集成了DNS的智能解析功能、云监控的应用服务监控功能,为客户输出不同网络或地区用户访问实现就近接入、应用服务运行状态的健康检查、故障自动切换等能力。

容灾切换必备--全局流量管理介绍


图1: GTM原理图


GTM 会为用户提供一个 CNAME 接入域名(类似 CDN 的接入域名,用户需要将自己的业务域名 CNAME 到该接入域名上来使用 GTM 的功能)并需要用户配置 地址池(Pool)。
  • 一个地址池,代表一组提供相同应用服务,一般是具备相同运营商或地区(region)属性的IP地址或域名地址。
  • 然后通过 访问策略 配置,将接入域名和地址池进行关联,GTM 支持按照运营商或地域维度解析到某个地址池,地址池中的地址支持 负载均摊 和 加权轮询 的策略。
  • 最后通过开启 健康检查(HealthCheck) 来对地址池中的地址进行可用性监控。当某个地址不可用时,会自动隔离该地址;当 GTM 认为整个地址池不可用时会自动切换到 备用地址池。

从概念和原理上,GTM 容易和负载均衡(SLB)以及云解析全局负载均衡(GSLB) 混淆。

全局流量管理(GTM)和负载均衡(SLB)的区别:

  • GTM 是通过DNS将域名解析到多个IP地址,不同用户访问不同的IP地址,来实现应用服务流量的分配。同时通过健康检查动态更新DNS解析IP列表,实现故障隔离以及故障切换。最终用户的访问直接连接服务的IP地址,并不通过GTM。
  • 而 SLB 是通过代理用户访问请求的形式将用户访问请求实时分发到不同的服务器,最终用户的访问流量必须要经过SLB。一般来说,相同Region使用SLB进行负载均衡,不同region的多个SLB地址时,则可以使用GTM进行负载均衡 。
    两者的对比如下表所示:
对比项 网络层 后端地址 加权轮询 跨Region难度 故障间隔时间 会话保持
GTM 3 层 域名、IP 支持 简单 分钟级 不支持
SLB 4层、7层 IP 支持 困难 秒级 支持

表1:GTM 与 SLB 对比

  • 全局流量管理(GTM)和全局负载均衡(GSLB)的区别:
    GTM 是现有云解析DNS中全局负载均衡(GSLB)的升级和替代产品,GTM比GSLB支持更多的监控方式、更高级的IP地址管理功能、更稳定快速的监控反馈体验。

两者的对比如下表所示:

对比项 服务接入 健康检查 故障切换时间 多线路接入 链路互备
GTM CNAME 接入 ping,tcp,http(s) 分钟级,不受子域名 TTL 限制 电信、联通、移动、鹏博士 故障自动切换,可控
GSLB 子域名开启 不支持 受子域名TTL 限制 不支持 随机选择正常链路,不可控

表2:GTM 与 GSLB 对比

GTM 功能特性

地址池:

传统DNS解析到单个地址,而GTM则引入地址池概念。通过地址池可对应用服务的IP地址进行统一管理。实现将终端用户访问解析到应用服务地址池,既可实现高负载情况下的流量均摊,又可实现自定义流量分配。同时当地址池整体不可用时,可以做备份切换。

访问策略:

访问策略旨在解决根据请求来源和地址池健康情况进行地址池切换的问题。既能做到地址池纬度智能解析,又可实现故障自动切换功能。
GTM对中国的4大运营商、7大区域、海外6大洲进行智能DNS解析,可以实现来源于不同网络或区域的用户访问者实现就近接入,提高访问速度。
当地址池整体出现故障时,GTM会根据用户自定义策略进行地址池分钟级切换,并当地址池恢复时切回。

健康检查:

依托于云监控强大的分布式监控功能,GTM新增了HealthCheck模块,从多个地区对地址池内的多个应用服务IP地址发起健康探测,目前已支持http/https、tcp、ping三种方式。当地址池中地址发生故障时HealthCheck模块会准确的检测到异常情况并与DNS交互,摘除故障地址。并当故障地址恢复时,自动恢复至解析返回列表。
经过测试团队对GTM多次测试验证,当应用服务发生故障时,GTM能在 5分钟内 将应用服务的90%左右的流量切换成功。GTM的故障切换生效时间 = 故障发现时间 + DNS切换同步时间 。
故障发现时间:目前默认的健康检查配置可以在故障的3分钟左右准确发现故障;
DNS切换同步时间:目前 GTM 的cname接入域名TTL设置为60秒,理论上域名切换后60秒内可以生效,但实际情况取决于全国各地运营商的缓存设置时间。

应用场景

接下来以异地双活为例介绍如何借助GTM实现快速容灾切换。如下图所示,某服务的用户主要分为海外用户和国内用户,后端服务采用一套部署方案。通过GTM对不同地区用户请求进行智能调度,将用户访请求流量路由至不同的接入服务点,即海外用户访问新加坡中心(Singapore),国内用户访问杭州中心(CN-Hangzhou)。当某站点发生故障灾难时,各接入站点自建互相备份,最终实现业务的高可用。

容灾切换必备--全局流量管理介绍


图2: GTM 在异地多活中的应用

五步快速接入GTM,实现异地容灾:

(1)全局配置:
基础配置,主要配置负载均衡策略、全局TTL、报警通知组等相关信息。

(2)地址池配置:
新建地址池Singapore和CN-Hangzhou。每个地址池中均配置该区域下多个服务IP,以及最小可用地址数量。当地址池存活地址数小于该地址池数量时,则地址池视为不可用。此外,根据全局配置中负载均衡策略自动实现流量分配。

(3)开启健康检查
即对地址池中的IP地址配置健康检查,开启后可实现实时监测地址的可用性状态。根据地址的可用性进行故障自动隔离,并通知相应报警组。当地址恢复后,自动添加至解析列表。此外,当地址池整体出现问题时,触发默认地址池与备用地址池之间自动切换。

(4)访问策略配置
根据用户的请求来源设置最终用户访问哪一个地址池。如图2所示,海外用户希望访问Singapore地址池,则需设置相应访问策略,请求来源设置海外地区,默认地址池为Singapore,备用地址池设置CN-Hangzhou。则正常请求下,则海外用户访问Singapore中心,发生故障后会快速切换至CN-Hangzhou中心。

(5)CNAME接入配置
需要将用户访问的主域名CNAME至全局流量管理的实例域名,才能最终实现对应用服务进行容灾、智能接入。即将图中的www.cloud-example.com CNAME到我们提供的接入域名。

配置完成后, GTM将根据健康配置实时探测地址池中地址,当地址发生报警时,则根据图3的流程进行判断,实现容灾切换,以图2中IP地址A报警为例。由此可见,当默认地址池(Singapore)地址池可用时,则解析列表摘除地址A,当默认地址池整体不可用时则切换备用地址池(CN-Hangzhou),切换过程自动完成,并缩小时间至分钟级。从而有效保证异地容灾的切换效率。

容灾切换必备--全局流量管理介绍


图3: 故障流程切换

另外 GTM 在地域/运营商维度智能调度、CDN 回源容灾、流量加权调配、声明式业务容灾预案 等场景下都有推荐的实践方案,更多内容请参考 阿里云全局流量管理使用文档
看了这么多,想不想试用以下GTM服务呢?我们拿出了慢慢诚意,对所有GTM都新用户,都提供免费1个月的产品试用。试用结束前续费还能够有8折的优惠哦。赶紧猛戳申请试用吧

上一篇:idea和Webstorm上使用git和github,码云


下一篇:Hbuilder之开发Python