《DNS稳定保障系列2--全局流量管理保障异地容灾》

简介: 背景 随着互联网的快速发展,为保证业务的持续高可用,同城多活、异地多活已成为各企业的不二之选。服务设置多中心,中心内部多地址负载,是多数企业采用的常规做法。这种情况下,如何对流量进行有效控制以达到最佳的用户访问效率变得尤为重要。

背景

随着互联网的快速发展,为保证业务的持续高可用,同城多活、异地多活已成为各企业的不二之选。服务设置多中心,中心内部多地址负载,是多数企业采用的常规做法。这种情况下,如何对流量进行有效控制以达到最佳的用户访问效率变得尤为重要。我们简单设想一下:
(1) 何以实现用户就近访问服务中心,减少网络耗时?
(2) 服务中心多个IP地址如何实现负载均摊或者权重轮询,保证整体负载的稳定性?
(3) 服务中心某IP地址故障后,如何快速发现并实现隔离?地址恢复后自动添加至解析列表,完全无需人为干预。
(4) 当某中心故障发生时,如何快速切流到其他中心,减少中断时间?
综合上述考虑,阿里云DNS基于DNS入口调度和分布式云监控,推出了全局流量管理(Global Traffic Manager,下文均简称为GTM),旨在帮助企业实现用户访问应用服务的就近接入、高并发负载均摊、应用服务的健康检查,并能够根据健康检查结果实现故障隔离或流量切换,方便企业灵活快速的构建同城多活和异地容灾服务。接下来我们将介绍如何通过GTM为异地容灾保驾护航。

原理

与传统DNS解析相比,GTM主要具备如下特点:
地址池:
传统DNS解析到单个地址,而GTM则引入地址池概念。如图1中的PoolA/B/C所示,一个地址池代表一组提供相同应用服务,即具备相同运营商或地区属性的IP地址或域名地址。通过地址池可对应用服务的IP地址进行统一管理。实现将终端用户访问解析到应用服务地址池,既可实现高负载情况下的流量均摊,又可实现自定义流量分配。同时当地址池整体不可用时,可以做备份切换。
健康检查:
依托于云监控强大的分布式监控功能,GTM新增了HealthCheck模块,如下图所示,从多个地区对地址池内的多个应用服务IP地址发起健康探测,目前已支持http/https、tcp、ping三种方式。当地址池中地址发生故障时HealthCheck模块会准确的检测到异常情况并与DNS交互,摘除故障地址。并当故障地址恢复时,自动恢复至解析返回列表。


图1: GTM原理图


访问策略:
访问策略旨在解决根据请求来源和地址池健康情况进行地址池切换的问题。既能做到地址池纬度智能解析,又可实现故障自动切换功能。当地址池整体出现故障时,GTM会根据用户自定义策略进行地址池分钟级切换,并当地址池恢复时切回。

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


_2

图2: 异地容灾示意图

五步快速接入GTM,实现异地容灾:
(1)全局配置:
基础配置,主要配置负载均衡策略、全局TTL、报警通知组等相关信息。
(2)地址池配置:
新建地址池Singapore和CN-Hangzhou。每个地址池中均配置该区域下多个服务IP,以及最小可用地址数量。当地址池存活地址数小于该地址池数量时,则地址池视为不可用。此外,根据全局配置中负载均衡策略自动实现流量分配。
(3)开启健康检查
即对地址池中的IP地址配置健康检查,开启后可实现实时监测地址的可用性状态。根据地址的可用性进行故障自动隔离,并通知相应报警组。当地址恢复后,自动添加至解析列表。此外,当地址池整体出现问题时,触发默认地址池与备用地址池之间自动切换。能达到5分钟内,90%流量的切换速度。
(4)访问策略配置
根据用户的请求来源设置最终用户访问哪一个地址池。如图所示,海外用户希望访问Singapore地址池,则需设置相应访问策略,请求来源设置海外地区,默认地址池为Singapore,备用地址池设置CN-Hangzhou。则正常请求下,则海外用户访问Singapore中心,发生故障后会快速切换至CN-Hangzhou中心。
(5)CNAME接入配置
需要将用户访问的主域名CNAME至全局流量管理的实例域名,才能最终实现对应用服务进行容灾、智能接入。即将图中的www.cloud-example.com CNAME到我们提供的接入域名。

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


图3: 故障切换流程图

容灾预案

此外,全局流量管理新增的容灾预案功能可以帮助用户日常做容灾演练,或在应用服务出现故障时实现快速切换流量。容灾预案支持批量地址池故障模拟及回滚,帮用户验证切换策略是否符合预期。

相关文章
|
存储 网络协议 安全
DNS科普系列: DNS防火墙(DNS Firewall)
DNS防火墙是一种网络安全解决方案,可以防止网络用户和系统链接到已知的恶意网络位置,可以有效的预防威胁发生, 阻止访问受感染的站点,进而防止进一步的威胁。能够主动检测到已被感染的系统,并通过安全报告的形式将此类威胁通知用户。还能够保护用户的网络环境,提高网络安全性。
DNS科普系列: DNS防火墙(DNS Firewall)
|
Java 中间件 Serverless
CSE:阿里在线应用如何演进成Serverless架构
**Cloud Service Engine**,简称**CSE**,是中间件部门研发的面向通用Serverless计算的中间件产品,目标是具备AWS Lambda的各种优势,同时可以解决AWS Lambda的关键技术缺陷。 AWS Lambda如果用于核心业务,可能会有以下缺陷:(仅代表个人观点) * 要求用户以Function为单位开发,全新的开发框架,云厂商强绑定。社区主
4042 0
|
8月前
|
安全 Linux 定位技术
解决CentOS中挂载/dev/mapper/centos-root到sysroot失败的问题
记住,在攀爬这座挂载的高峰时,细心和耐心是你最好的朋友。不要走捷径,不要惧怕其中的复杂性,一步一个脚印地检查每个环节,最后达到山顶的那一刻,系统平稳地响应你的每条指令,你会发现这一切努力都是值得的。
459 2
|
8月前
|
存储 算法 数据可视化
用Python开发猜数字游戏:从零开始的手把手教程
猜数字游戏是编程入门经典项目,涵盖变量、循环、条件判断等核心概念。玩家通过输入猜测电脑生成的随机数,程序给出提示直至猜中。项目从基础实现到功能扩展,逐步提升难度,适合各阶段Python学习者。
627 0
|
安全 Linux
Linux Centos通过mail向QQ邮箱发邮件
【8月更文挑战第20天】在 CentOS 上配置使用 `mail` 命令向 QQ 邮箱发送邮件涉及几个步骤。首先确保已安装 `mailx`;接着编辑 `/etc/mail.rc` 文件来配置发件信息,包括设置发件邮箱、SMTP 服务器及授权码。最后,通过 `echo` 命令结合 `mail` 发送邮件。需登录 QQ 邮箱开启 SMTP 服务并获取授权码用于安全验证。
787 3
|
SQL 安全 测试技术
Burpsuite Scanner主动扫描生成安全评估报告
Burpsuite Scanner主动扫描生成安全评估报告
|
前端开发 开发者
antd mobile 作者教你写 React 受控组件和非受控组件(一 )
曾经,我每次面试时几乎都会问一个问题:antd 中的 Input 组件是受控组件还是非受控组件?
468 0
antd mobile 作者教你写 React 受控组件和非受控组件(一 )
|
网络协议 安全 调度
阿里云公共DNS发布支持鸿蒙系统版的SDK
阿里云公共DNS发布支持鸿蒙系统版SDK,赋能鸿蒙开发者快速接入阿里云公共DNS服务。公共DNS将帮助接入的鸿蒙应用免除LocalDNS劫持困扰、解析加速、精准调度。
|
Kubernetes Linux 开发者
CentOS 停止支持后 OS 应该如何选择?
CentOS 停止支持后 OS 应该如何选择?

相关产品

  • 云解析DNS