摘要: 在刚刚落幕的重庆云栖上,阿里云高级技术专家仔晟为现场观众带来议题《百T级CDN智能流量调度系统的实战分享》,重点介绍了在世界杯直播业务场景之下,阿里云CDN的产品架构、技术方案与客户实践。算法
在刚刚落幕的重庆云栖上,阿里云高级技术专家曾福华为现场观众带来议题《百T级CDN智能流量调度系统的实战分享》,重点介绍了在世界杯直播业务场景之下,阿里云CDN的产品架构、技术方案与客户实践。缓存
曾福华老师的分享从CDN系统相关介绍、智能调度产品、世界杯场景优化三个方面展开。网络
CDN系统相关介绍
在最开始,曾福华老师讲到,阿里云CDN正式商业化是在2014年3月份,到了2015年2月份,CDN智能调度正式上线。通过这么多年的商业化,支持数次阿里集团双11,外部的春晚洪峰流量,以及今年的世界杯,阿里云CDN现在已经具有规模化、自动化、智能化、PaaS化这几大特色。“阿里云CDN带宽储备120T+,在全球拥有1500多个节点,服务30多万客户。如此庞大的资源与业务体系,其实内部只有2名运维,所有依赖着智能化、自动化的调度系统来完成。”架构
下图为CDN系统架构,与大部分提供CDN服务的厂商大体相同,分为缓存系统,调度系统和支撑系统。可是阿里云CDN与其余厂商主要区别在于全部的软件基本都是自研的和阿里深度参与的开源项目,好比LVS和Tengine。负载均衡
智能调度产品
CDN智能调度主要有三个核心组件:
第一个是资源规划,这是给每一个业务分配节点的环节,在传统厂商更可能是人工去解决的,在阿里云只有2个运维在作调度相关工做,具体各个业务跑在哪里节点上是由智能调度系统解决。今天咱们已经作到,15%业务弹性自动化兼容,节点水位可以平稳跑到80%。运维
第二个是精准控流,阿里云基于全球LDNS进行画像和基于分钟级别日志精准分析基础上的流量预测,流控系统的策略带宽和实际带宽能够控制误差在5%之内。优化
第三个是调度执行器,首先是调度策略是秒级生效,另一个特色全部调度执行器都是双异构并行方案,如同飞机引擎同样,即便一个引擎坏了,另外一个引擎也能够立刻启动,保障业务稳定性。阿里云
资源规划
智能化资源规划是云CDN和传统CDN最大的差异所在,资源规划是一个多目标的运筹优化问题,第一是如何解决资源合理分配的问题;第二是自动化确保业务快速接入,资源规划天天进行对应的调整保障大客户接入作到天级别;第三是要赋予业务必要的弹性,应对客户业务的流量上涨;第四点是流控自由度,资源规划是一个离线程序,要给实时调度提供的调度自由度;第五点是全网1500个节点里作负载均衡,全部节点的流量和负载趋势趋同,水位齐涨,智能化资源规划保障有限资源承接更多的业务。spa
第六点是追求规模优点下的成本最优;除了这些点以外,资源规划还须要考虑业务特色作CPU,存储等倾向性选择, 同时须要保障运维资源管理的易用性。线程
曾福华老师现场用一张图来详细进行阐述,这个格子是CDN的节点,一个格子里面有四个小格子,他有不一样的分组,还有几条黑线几个节点链接起来了,哪些业务应该在哪些节点、分组上去跑。而实际线上是30万以上的业务和1500以上的节点之间的组合,复杂程度很是高,为了简化示意图的左边是两个直播、点播的调度域,中间是四个节点,这四个节点里面,分别都有一些机器分组。而后左边的调度域在各个区域的业务流量须要分配到中间各个节点、分组上,咱们指望全部的节点水位均衡,尽可能处于大体同一个水位上。
精准控流
如何实时的进行精准控流,任何CDN厂商都要面临这个问题,是CDN最基础的核心能力。下图左边是节点的列表,右边是业务的列表,这个节点列表和业务列表的对应关系是通过资源规划系统大体离线算出来,哪些业务当前时刻跑在哪些节点上,这是实时精准流控来决定的,从图看上去像网络流同样,但实际上用网络流的办法解决精准问题有一些局限性。
曾福华老师现场也与观众一同从新认识了运营商的LDNS, 剖析了经过LDNS调度没法作到按任意比例的流量分摊到多个节点的具体缘由。
谈到调度,曾福华老师现场作了一个比喻,一个装了不少冰块和水的杯子,若是咱们要把杯子里面的狭小空间所有用上,咱们先要把冰块放进去,再倒液态水。前文刚刚讲到的DNS的协议限制,相似冰块。其余别的调度形式,好比IP调度,能够作好请求级别的调度,也就是支持任意比例的负载均衡,就像液态水同样。
因此,在智能调度的场景里,也须要把“固体”和“液体”结合起来考虑,才能作到全部的节点、水位的精准控制。
另外经过实践,阿里云CDN的智能调度能够精准预测流量,在10分钟内的预测的精准度到98%,一小时的精准度95%以上。 综上几个方面的特性,CDN流控的精准度大体能控制在5%左右。
世界杯场景下的调度优化
接下来分享世界杯场景下CDN调度的优化,今年俄罗斯世界杯应该是有史以来最大规模在线观看的体育赛事了,而阿里云CDN今年承载国内世界杯网络直播70%+流量。整个护航过程当中,咱们面临了几大挑战:
第一个挑战是优酷拿到的转播权是5月底到6月初,6月中旬就要开赛直播,前期筹备时间很是短,而新资源在陆续交付,对咱们的挑战仍是挺大的。
面对这个挑战,咱们有如下几点优点:
1、规模化共享资源池,最充分使用空闲资源
与传统CDN厂商不一样的是,阿里云全部的资源池是在一块儿共享的,离线资源规划程序天天运算,用来保证空闲资源的充分使用,在资源紧张时尽可能把全部空闲资源都使用上,若是像传统CDN厂商把硬件资源隔离开分到不一样业务上,当这么巨大业务短时间内要上来的时候是没有办法完成空闲资源的集中使用的。
2、天级离线资源规划,确保业务能快速接入
离线规划能够按天级别,这样业务接起来会比较快,天天能够预估次日的峰值量,这样只要咱们预测误差不大的状况下,能够确保次日平稳的跑下来。
3、时级资源局部调整,资源层动态水位均衡
若是对于流量的预测误差致使流控没法合理分配的问题,采用小时级别的局部的资源调整,来保证总体资源的动态平衡。
4、高效流量仿真平台,资源规划结果可验证
不论是天级别的资源规划,仍是小时级别的资源规划,均可以经过仿真系统,确认每一次调整的效果,也能够针对仿真系统的结果不断迭代到咱们须要的结果。
第二个挑战,在码率瞬间变大比较大的状况下,常规的流量预测算法失算了,进而会干扰流控程序, 这个问题咱们是怎么解的?阿里云使用了一个黑科技——AI预测+智能锁定,大体思路是预测的不是10分钟后的业务量,而是预测这场比赛的峰值业务量是多少。
上图画了不少格子,最左边的格子开赛前的时间,世界杯还没开始的时候,咱们会根据峰值预测量锁定必定比例的带宽空间,这样这部分带宽空间不会被别的业务量抢占致使世界杯的卡顿。当每场次的比赛开播后一段时间,流量上涨很是快,这个锁定量基本上保证了前面流量攀升比较剧烈的20分钟的节点带宽是充足的,能够给世界杯提供流畅的带宽保障。等到比胜过了20分钟之后,就是整个流量流量上涨变平缓了许多,接下来咱们始终保证世界杯当时的业务量,或者说这场比赛达到的最高峰值和整个锁定量之间保留必定的差距,如上图中黄色区域表明的锁定量,经过这种方式咱们解决了世界杯赛事的一个流畅保障问题。
第三个挑战就是阿里云有1500多个节点,面对世界杯业务几个域名特大业务流量,如何作到节点不跑超跑低两极分化,总体水位比较一直状态?
解法是HTTPDNS跟DNS调度要组合起来作调度,在世界杯的业务场景中就是很好应用了这个组合。在下图咱们能够看到,好比经过优酷各端兼容HTTPDNS,那么流控就像控制水流,和不兼容HTTPDNS的WEB端DNS调度组合,咱们就作到了比较好的节点水位精准控流。
以上就是2018俄罗斯世界杯期间,百T级别CDN智能流量调度系统的一些实战经验分享。
本文为云栖社区原创内容,未经容许不得转载。