看世界杯直播?海外运维实践了解一下
发布日期:2021-10-26 23:04:12 浏览次数:1 分类:技术文章

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由 发表于

2018世界杯鏖战正酣,在国内看直播的小伙伴想必也看得很过瘾,那么国内的小伙伴是如何收看到流畅、清晰的直播呢?腾讯视频云直播平台作为助力本次世界杯国内直播的重要PaaS平台,期待给大家带来优质的体验。下面我将从全球节点分布建设、智能路由、动态加速、混合云管理以及质量监控上报等方面来详细介绍我们是如何保障将数据在全球网络上高效稳定的传输。

修路(全球节点覆盖)

有句话说得好,“要想富,先修路”,其实对于我们的直播平台同样适用,要想提供优质的服务质量,把‘车’开得又稳又快,首先要有高速的‘路’, 但是要想修好路也不是一件容易的事。

首先需要考虑如下问题:

• 海外国家+城市成千上万,节点该建在哪里

• 如何做到花更少的钱,做更好的事,平衡质量和成本

从这些方面来应对:

• 基于公有云厂商以及客户需求分布

• 综合考虑政策成本质量等因素来调整调度分布策略,eg:

中东地区:

首先迪拜被选覆盖点,但是接入质量不是特别理想,因为迪拜是一个有GFW防火墙的国家,目前只是将迪拜覆盖本地,接下来我们会在卡塔尔或者伊朗选点覆盖中东。

印度和印尼地区:

不仅国际出口不稳定,带宽成本更是其他地区的好几倍,所以目前只选择覆盖本地。

澳大利亚地区:

各大云厂商主流在悉尼和墨尔本等。

目前我们已经建成了了包括香港,新加坡,韩国,泰国,印度,德国,俄罗斯,美西/美东,加拿大等10大海外独立中心节点, 以及全球5大洲40多个上行加速节点:

选路(全网动态调度)

有了全球节点覆盖, 我们还应该意识到就近不一定最优, 所以还需要选路,实施全网动态调度,保障用户能够通过最短路径传输到源站,原理如图:

1

如何选取最优接入点?

海外不像国内,运营商和地区要复杂得多,首先解析要准确,美国需要解析到美国,最好能具体识别到洲,越细粒度越好,美东不能接入到美西去。我们采用腾讯GSLB全球IP地址库,可以精确到地区解析,质量较直接按国家级别来调度有很大提升,以美国地区为例:

同时,通过大数据分析拨测各个边缘节点的质量,以便分配最优的点给到用户。

2

如何选取最优传输路径?

在智能路由,全网调度方面又应该如何考量?大家都知道公网的网络经常波动,节点的容量和故障也都会影响传输质量, 所以一套能够帮助大家实时分析当前路由、链路质量、以及节点负载容量情况的路由质量评测系统就非常有必要了:

然后根据分析结果实时干预,实现全网智能调度:

修车(协议优化)

有了高速公路,以及最优路线图,我们还需要有一俩性能优秀的‘车’,可以从如下几个方面来改装优化,帮助其加速:

• 基于TCP RFC的用户态协议栈(保留公平性、友好性)

• 全链路加密,保证数据安全

• 多路复用(无Head-of-line blocking)

• RTT握手+秘钥协商

• 平滑发送(Pacing mechanism)

• 精准RTT测量。基于NACK的丢包发现

• TCP优化

• 连接无缝迁移

使用基于UDP的QUIC协议比使用标准的RTMP协议推流卡顿率更小,尤其是在网络丢包较大时, 卡顿率依然保持不变:

织云混合云管理

前面说到“修路”,“修车”的问题,作为一个多面手的运维Sir,我们还需要保障这些不同国家和地区运营商的“路”能够统一升级、维护、有统一的运营标准。这里就是接下来我们要说到的混合云管理,那么当前混合云有哪些场景和各自的优缺点呢?

同时,这么多的云场景,给运维人员也带来了很多挑战,比如:

机器环境不统一问题

1 操作系统不一样

2 网卡命名不统一

3 内网IP冲突

数据无法上报问题

1 单机属性上报

2 多维属性上报分析

3 一致性上报

业务部署发布问题

1 程序装包和更新

2 配置下发

3 文件下发

安全风险问题

1 外网ssh开放

2 登录、shell审计

3 入侵检测

网络质量问题

1 跨网丢包延时大

2 网络抖动

3 监控告警

运维其他操作问题

1 防火墙修改

2 主机名修改

3 命令执行

4 文件传输

为了解决这些问题, 腾讯织云混合云解决方案是这样设计的:

1、功能设计:

2、整体架构:

腾讯视频云直播海外节点由多个云环境组成,包括腾讯云,腾讯自研环境、其他合作伙伴云厂商等,通过使用织云混合云管理方案,已实现混合云环境的自动化运维。比如包发布功能,全球节点一键发布:

在接到本次俄罗斯世界杯的紧急需求时,也能游刃有余的提供优质的服务。

织云海外节点监控上报方案

解决了上面的问题, 还需要解决各个节点的数据上报、网络链路监控告警等问题,如下:

1、如何及时发现和跟踪海外各个节点的数据是否异常:

2、基于链路的网络质量监控系统:

• 使用基于链路调度的监控方式来上报质量

• 将网络丢包、延时等监控数据入库大数据分析网络情况,给到调度系统决策最优路径

小结

通过前面的分析,我们可以看出,为了帮助用户实现告诉稳定的传输,首先在用户到边缘节点这里要全球部署,精准调度;其次,在加速节点之间要能智能选路,全网动态调度,协议优化;最后,在加速节点到原站这里,还要同城同运营商部署、智能选取最优出口。做到以上三段加速,基本上大家的海外运维之路已经迈开脚步了。

问答

相关阅读

此文已由作者授权腾讯云+社区发布,原文链接:https://cloud.tencent.com/developer/article/1153388?fromSource=waitui

欢迎大家前往腾讯云+社区或关注云加社区微信公众号(QcloudCommunity),第一时间获取更多海量技术实践干货哦~

海量技术实践经验,尽在!

上一篇:聚焦小游戏技术生态,腾讯游戏云GAME-TECH落地厦门
下一篇:滴滴客服系统,是“打车夺命”事件的帮凶!

关于作者

    白红宇是个全栈工程师,前端vue,小程序,app开发到后端框架设计,数据库设计,环境部署上线运维。

最新文章

java vagrant_使用vagrant搭建统一开发环境 2021-10-26
java redis 管道_Redis管道之Java与Go代码示例 2021-10-26
java security pdf_Java 加密PDF文档 2021-10-26
java file 获取文件_Java获取File文件属性 2021-10-26
nginx 异步访问mysql_Nginx实现异步访问mysql的配置方法 2021-10-26
mysql安装exfat_使Linux支持exFAT和NTFS格式的磁盘 2021-10-26
keil添加hal库_Stm32CubeMX生成的hal库工程加入标准库的库函数的方法 2021-10-26
战神开发者gm工具MYSQL配置_第十五讲 战神引擎GM号增加和命令使用 2021-10-26
工控行业学什么编程语言比较好_机器人学中最流行的10种编程语言 2021-10-26
python课程表代码_leetcode 课程表 python 2021-10-26
mysql 备份不了了_mysql不能备份问题 2021-10-26
mysql数据上传的使用规则_必看的数据库使用规范 2021-10-26
matlab的坐标是日期的显示范围_MATLAB图像处理:30:移动显示图像的X和Y坐标范围... 2021-10-26
python递归查找单个目录中最大文件_python – 在目录中查找最旧的文件(递归) 2021-10-26
python变量类型是集合_Python基础变量类型——List浅析 2021-10-26
实战模拟监控mysql服务shell脚本小结_实战模拟监控MySQL服务shell脚本小结 2021-10-26
mysql like 时间_mysql的日期和时间函数 2021-10-26
mysql case break_MySQL全面瓦解20:可编程性之流程控制语句 2021-10-26
Com.mysql.exceptions_CentOS服务器中的com.mysql.jdbc.exceptions.MySQLSyntaxErrorException异常 2021-10-26
基于DNS的mysql高可用_【MySQL】DNS与MHA/ZABBIX构建的高可用MySQL 2021-10-26