看世界杯直播?海外运维实践了解一下

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、基于链路的网络质量监控系统:

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

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

小结

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

原文发布于微信公众号 - 腾讯织云(TencentCOC)

原文发表时间:2018-06-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

商城项目整理(三)JDBC增删改查

商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: 1 create table TEST.GOODS_TABL...

5435
来自专栏我和未来有约会

silverlight向服务器post数据类

using System; using System.Net; using System.Windows; using System.Windows.Co...

1955
来自专栏码匠的流水账

聊聊spring cloud的AbstractLoadBalancingClient

本文主要研究一下spring cloud的AbstractLoadBalancingClient

832
来自专栏跟着阿笨一起玩NET

GB2312转换成UTF-8与utf_8转换成GB2312

1831
来自专栏互联网开发者交流社区

WinForm之窗体应用程序

1843
来自专栏听雨堂

想修改CSS

      下载了一个“通用”的CSS文件,本来想偷懒的,结果发现有问题,就是它用的颜色是变量定义的,无法识别。我又找不到在哪里可以定义。 BODY{     ...

20410
来自专栏菩提树下的杨过

SqlTransaction事务使用示例

using System; using System.Data; using System.Data.SqlClient; using System.Co...

1848
来自专栏积累沉淀

Hive2.0.0操作HBase 1.2.1报错解决

首先看错  org.apache.hive.service.cli.HiveSQLException: Failed to open new session: ...

2329
来自专栏c#开发者

C# : row-clickable GridView and get and set gridview rows using JavaScript

Complete C# code: ---------------- using System; using System.ComponentModel; ...

2996
来自专栏菩提树下的杨过

MSDN官方的ASP.Net异步页面的经典示例代码

示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using S...

1985

扫码关注云+社区