当基础设施故障后,声网 SD-RTN™ 如何保障 RTE 服务的高可用性
云计算的出现为企业的管理、业务开展、资源整合等带来了极大的便利性,也是数字化建设的核心基建之一,然而局部宕机或者大面积宕机事件对于云厂商来说却也无法避免,全球领先的计算平台也不例外。例如,美国东部时间12月7日上午10点45分,亚马逊 AWS 遭遇宕机,导致了迪斯尼+、奈飞等一些网站的在线服务受到影响,此次故障也在业内引发了较大的关注。
之所以说云厂商的宕机故障无法 100% 避免,核心在于造成的原因有很多种,例如人为失误、网络中断或者区域性网络拥塞、停电、自然灾害等,作为云厂商,能做的就是不断优化技术与服务来应对这些问题,将宕机发生的概率降到最低。
声网作为全球领先的实时互动云服务商,在海外的部分业务也使用了 AWS 的基础设施资源,在 AWS 宕机事件中,声网的实时音视频服务并没有受到波及,背后的核心原因在于声网 SD-RTN 大网的独特架构设计保障了 RTE(实时互动) 服务的高可用性,做到机房、硬件、网络等基础设施出现故障的情况下,仍然可以给用户提供高可用的 RTE 服务。
首先我们要了解什么是高可用性。一般来讲,一个靠谱的云服务一定是可用性非常高的,可用性的评判标准 SLA:服务等级协议(Service Level Agreement)对于云厂商来说就是服务可用性的一个保证,国内很多云厂商在售卖云服务时都会承诺 99.9% 的可用性,9 越多代表全年服务可用时间越长服务更可靠,反之亦然。例如以全年 365 天做计算,99.9% 的可用性,每年只有 8.76 小时的服务是不可用的,可用性的每一次提升都是一次技术的挑战,当遇上环境灾害、公网基础设施不可靠等问题时,怎么样快速地面对这些问题,多长时间恢复,是否有成熟的备案这是任何一个云厂商都要诚实面对的问题。
想要提升服务的可用性,需要从多个层面进行布局,例如机房布置、服务基础架构、运维自动化等,那么声网具体是如何在实践中保障RTE服务的高可用性,我们可以从四个层面展开来讲:
01 SD-RTN架构设计:故障实时感知与智能调度、异地多活
业务架构:众所周知,基础设施会因为突发的网络拥塞、硬件故障、不可抗力等因素导致或大或小的一段时间的不可用。在这样的前提下,声网 SD-RTN 大网的架构师团队从设计之初就充分考虑到了基础设施的不稳定因素。如果要用几个关键词来描述 SD-RTN,那就是全球覆盖、故障实时感知与智能调度、超低延时、弹性能力、异地多活、超高并发,而一旦基础设施出现故障,SD-RTN 的故障实时感知与智能调度能力以及异地多活的构建方式将发挥重要作用,保障服务的高可用。
故障实时感知与智能调度:从全球来看,公网网络的波动是较为频繁的,SD-RTN 的网络嗅探服务能够实时的感知网络的质量,结合 AI Ops(智能运维)的分析能力,能够实现分钟级的用户迁移,保障用户的音视频体验。
异地多活:SD-RTN 大网将全球资源划分为多个 Region(区域),在 Region 内依然能够做到最低 N+3(即:在最大的 3 个资源集群不可用的情况下,剩余的资源依然能够承接当前 Region 的负载)资源冗余的要求,不仅如此,Region 之间依然能够形成互补的态势,某个 Region 故障时,可以通过互补 Region 进行承接。
灵活的扩弹性缩容能力:SD-RTN 大网的每个 Region 至少具备 200% 的实时弹性扩缩容能力,具备应对突发事件的能力,配合智能调度能够充分合理的进行资源使用。
SDK:同时,在音视频 SDK 侧声网也进行了大量的优化工作,包括抗弱网优化,音视频体验优化等,形成和业务层进行"里应外合"的局面,提升服务的可用性。

02 基础设施层面:机房全球分布、五地三中心资源覆盖
基础资源选点:SD-RTN 在全球部署了 250 + 数据中心,覆盖全球 200 多个国家与地区,对于主要区域的最低要求是五地三中心的资源覆盖,每个区域采用核心节点 + POP 点的方式。这样一旦某区域其中一个或两个机房发生故障,依靠技术可以将故障城市的流量全部切换到运行正常的机房。
供应链管理:不依赖单家供应商的基础资源(包括:机房、硬件、网络等),当一家供应商出现问题,可以快速切换到其他服务正常的供应商。

03 智能运维,快速阻断故障
如今行业都有一个共识,即运维复杂度在迅速增加,然而传统运维已经捉襟见肘,为此, 声网投入了巨大的资源和人力,克服了 AI 工程化落地的难点,将智能运维全面应用于 SD-RTN 的日常运维中,解决了传统运维的痛点:7*24H 不间断保障;高一致性和高质量的执行结果;统一高效的运维效率。
声网的 AI Ops(智能运维)能在 1 min之内(包含了数据聚合、上报、判断、执行、恢复等整体端到端时间)识别机房异常并且自动运维,快速阻断故障影响蔓延, 保障边缘服务高可用。例如,边缘节点的网络拥塞是无法避免的, 在出现拥塞之后, 用户的音视频体验会打折(卡顿, 延时增大),这种情况下经验丰富的运维人员在 daytime 时期从故障发现到处理平均要花费20分钟, 如果故障发生在深夜或者处理不及时, 时间会更长, 这对用户的体验影响很大. 这时候 AI OPS的价值就体现出来了, 它能在 1 min之内识别并处理异常, 并且7*24不间断高一致性地执行, 以保障用户高质量的 RTC 体验。
04 RTE 行业首个体验质量标准-XLA
前面我们提到,SLA 是很多云厂商与电信行业对服务可用性的评判标准,但在声网看来,SLA 对设备和网络接入标准进行规范,关注的是服务的可用性。但是在 RTE 行业,仅仅达到“可用”标准远远不够,用户渴望的是清晰流畅、没有卡顿的音视频互动,那么在实时互动体验质量上就必须达到“好用”的标准。对此,声网在 2020 年 7 月设计定义并推出了实时互动行业首个体验质量标准-XLA(Experience Level Agreement),这也是为 RTE 服务的可用性与体验质量推出的首个可量化、可查证、可赔付的体验质量标准。
与 SLA 不同的是,XLA 不仅关心实时互动的可用性和服务质量,还关注用户的体验质量,同时这也是第一个将质量保证焦点由设备转移到人的标准。XLA 主要包含四项体验指标,即 5s 登陆成功率、600ms 视频卡顿率、200ms 音频卡顿率和 400ms 网络延时达标率,四个指标的月度达标率(1-不达标切片总时长/月度总时长)均需超过 99.5%。5s 登录成功率是指登录成功耗时需小于 5s 才算合格,这项指标主要考验实时互动的可用性与等待体验;600ms 视频卡顿率与 200ms 音频卡顿率主要考验实时互动过程中流畅性体验;400ms 的网络延时指标面向音视频互动的实时性,延时需低于 400ms。

通过 XLA,客户可以获得声网对登陆成功率、端到端延时、音视频卡顿率等多个维度的实时互动体验质量承诺和保证,不需要再去担心终端用户的体验质量问题,真正做到用的放心,用的称心!
定义实时互动体验质量标准看似只是几个指标,但实际背后承载了声网团队长期的付出。XLA 质量标准的推出,是经过上百名技术专家针对全链路数据反复打磨、改进、验证,经历了 10 个版本的反复迭代,适配了 50+ 网络模型、200+ 国家与地区的优化、6000+ 不同类型终端体验的优化以及全链路 1万亿 分钟的数据打磨。这背后代表的也是声网在实时互动云行业的长期深耕与积累。
当基础设施故障后,声网 SD-RTN™ 如何保障 RTE 服务的高可用性的更多相关文章
- 【征文活动】为自己发“声” —— 声网RTC征文大赛在园子里征稿
2020年8月20日,声网Agora入驻园子的新楼盘--博客园品牌专区.9月,我们与声网Agora再度合作,「为自己发"声"- RTC 征文大赛」在园子里征稿. RTC(Real- ...
- 映射内网ftp服务器到公网后内网访问出错问题
上文说道映射后外网无法访问解决:https://www.cnblogs.com/Dev0ps/p/9073048.html 添加了ftp的pasv_address的地址 ,内网客户端要设置主动模式(a ...
- ftp搭建后外网无法连接和访问阿里云服务器(非软件)
阿里云服务器由于性价比高,是不少企业建站朋友们的首选.而在购买阿里云服务器后,不少客户反映其在搭建FTP后出现外网无法访问的问题,这里特意搜集整理了关于ftp搭建后外网无法连接和访问的问题,提供以下解 ...
- Pandorabox固件路由器上申请Let's Encrypt证书,为内网里的多个web服务提供SSL支持
对于家中宽带有公网IP的用户,有时我们需要将路由器内部网络的某些web服务通过端口转发暴露到外网(例如NAS远程访问),但HTTP是明文传输,有被监听的风险:如果在NAS上使用自签名证书,再端口转发, ...
- 免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动。
免安装的tomcat双击startup.bat后,启动窗口一闪而过,而且tomcat服务未启动. 原因是:在启动tomcat是,需要读取环境变量和配置信息,缺少了这些信息,就不能登记环境变量,导致了t ...
- mdadm设定RAID磁盘阵列,且当分区故障后如何重建
首先,fdisk建立不同分区,且设为fd格式 其次, mdadm -C md0 -a yes -l -n /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sd ...
- DotNet Core 2.0部署后外网IP访问
将DotNet Core2.0项目部署在Ubuntu上并且运行后,可以用localhost:5000来访问. 但是如果这时候用外网来访问就不行了. 这时候就有两种解决方案,第一种是用Nginx做代理实 ...
- Kibana启动后外网访问不了
问题 Kibana启动后,使用外网访问 http://ip地址:5601 访问不了日志中最后显示 "statusCode":302 ,在控制台 curl http://localh ...
- Consul的一个更新:服务端节点故障后重连
研究了一段时间Consul,想写个攻略来着,但太赖了而且表达能力非正常人...今天发现HashiCorp果然接纳大众意见改了点东西.. 场景是: 假如Consul集群内有三个Server Node 时 ...
- RabbitMQ集群出现过机器故障,网络异常等故障后,重启无法重新建立集群的终极解决方案
由于机器掉电,网络故障等原因,RabbitMQ整个集群出现问题.重启RabbitMQ时,发现某些机器始终无法重新加入到集群中,而且还可能出现网络分区. 针对不同情况,可能选择 rabbitmqctl ...
随机推荐
- Mysql语句练习
某宾馆其关系模式如下:Room(房间编号,房间类型,价格)Customer(顾客编号,顾客姓名,年龄,电话)RC(房间号,顾客编号,入住日期,入住天数) 1 create database Hotel ...
- 关于webdriver和谷歌浏览器的那些事
早上看了一个视频,讲述爬虫的,首先一开始就写了一行这样代码(如下): from selenium import webdriver # 创建浏览器对象 ,这会在电脑中打开浏览器窗口browser = ...
- CIC滤波器
CIC滤波器是滑动平均滤波器的非常高效的迭代实现,只需要一个减法和一个加法,而滑动平均需要N-1个加法. cic滤波器相当于一个梳状滤波器y(n)=x(n)-x(n-D),H(z)=1-z-D,和一个 ...
- UNIT THREE
基础 (1) 内存以字节为单位,划分为若干个单元.(2) 计算机内数据存-取单位: ① 字节 (8bit) ② 字 (16bit) ③ 双字 (32bit) ④ 四字 (64bit) ds寄存器 DS ...
- formidable处理文件上传的细节
koa在请求体的处理方面依赖于通用插件koa-bodyparser或者koa-body,前者比较小巧,内部使用了co-body库,可以处理一般的x-www-form-urlencoded格式的请求,但 ...
- ICMP-ping报错类型
ICMP数据包的包头,两个重要字段Type和Code,如图所示 ICMP消息类型和编码类型 回显请求包,正常为80 回显回复包,正常为00 其余均为报错类型. 超时:对方主机不在线.屏蔽等 传输失败: ...
- java初学者-手动输入一个整数,打印这个数是几位数
import.java.until.Scanner; //手动输入一个整数,打印这个数是几位数 public static void main(String[]args){ //键盘录入 Scanne ...
- 记录搜索的例子 浙大c
#include <stdio.h> struct{ int amount; char *name; } coins[] = { {1, "penny"}, {5, & ...
- ffmpeg安装教程
1 下载所需要的软件 mkdir /usr/local/soft cd /usr/local/soft wget https://www.ffmpeg.org/releases/ffmpeg-snap ...
- 复杂数据类型(signal)的解读-C语言基础
这一篇文章要探讨的是C语言中复杂数据类型的解读.涉及到signal()函数数据类型的解读(并不解释signal()的作用)以及对于数据类型的理解,属于C语言基础篇. 在开始解读signal()这种复杂 ...