Bilibili资深运维工程师:DCDN在游戏应用加速中的实践

日前,云栖大会新一代CDN的技术突破与应用实践专场中,bilibili资深运维工程师李宁进行了《DCDN在游戏应用加速中的实践》主题分享,从bilibili游戏应用CDN的效果和成本入手,深刻浅出地分享DCDN全站加速在游戏加速场景中的应用。git

bilibili的业务部署架构及CDN的应用

bilibili一直以来是做为中国Z世代高度汇集的文化社区而被你们熟知,已经成为了国内二次元游戏的主要分发渠道和发行方。在公司不断发展过程当中,CDN扮演着不可或缺的角色。编程

简单的七层应用游戏的部署架构以下图所示,业务的后端以中心化部署的方式彻底隐藏在公共云的网络内,出向网络通过NAT转发,业务的入口只经过公网负载均衡进行暴露,静态资源存放在对象存储上,而后从用户动静态的请求所有通过CDN进行转发,这样的方式不只能进行常规静态资源的缓存加速,也能帮助隐藏源站,并进行相应的DDoS防御。后端

Bilibili资深运维工程师:DCDN在游戏应用加速中的实践

李宁介绍到:bilibili对CDN的使用大概分三个阶段,初期业务规模比较小,主要经过基于云内专线自建代理的方式实现区域加速;随着业务规模增长,运维管理问题和安全问题暴露, bilibili基于不一样的缓存策略,在商业静态CDN上去实现动静态请求的分发,虽然解决了自建带来的管理和安全问题,可是也带来了新问题,好比静态CDN中间源大量回源过载、静态CDN链路过长,多级代理致使响应耗时增长等等;直到近两年,市场上出现了专门针对动态请求加速的产品,在原有CDN功能丰富度提高的基础上,经过智能路由带来了更好的加速质量提高。api

游戏应用运维工做对CDN的核心诉求

在游戏运维的平常工做里常常会遇到如下场景:静态突发流量报备不及时,单一厂商没法所有承接,致使业务进退两难,业务和运维背着炸药包上线;游戏热更中大量的刷新预热需求,带给运维带来繁重的工做;热点游戏海外用户访问质量如何保障;国内小运营商环境中各类劫持与弱网传输;游戏业务突发式增加对弹性伸缩、快速交付的挑战等等。缓存

简单总结,业务对运维的需求就是:
a) 热点资源、致使流量突发运维须要作好保障
b) 保障业务发展过程当中快速交付、而且保障易用性
c) 业务的基础网络链路实现跨境优化
d) 要能覆盖国内的小运营商
e) 须要有政企关系,具有推动运营商快速处理问题的能力




安全

基于上述需求综合考虑,bilibili选择使用公共云CDN,而非自建的形式。其业务对云CDN的使用运维有如下诉求:
a) 业务接入的时候控制台要快、简单,接口要完善、可编程,功能丰富、不支持的功能也要支持定制化
b) 产品须要支持自动调度、方便的配置和内容管理,底层要对跨境网络进行优化
c) 针对海量的CDN数据有简化分析的方案,以便数据管理运营
d) 要有丰富的报警指标、在业务报障的时候辅助运维进行决策



服务器

Bilibili资深运维工程师:DCDN在游戏应用加速中的实践

bilibili选择使用阿里云全站加速进行业务分发

为了解决以上问题,bilibili使用阿里云全站加速产品支持游戏应用内容的分发加速。在接入以后,质量有明显的提高,平响耗时下降了32%,首包的耗时下降了18.6%。同时,当异常发生的时候,CDN告警的收敛聚合,能够与源站监控报警进行比对,用于快速的排除故障。网络

Bilibili资深运维工程师:DCDN在游戏应用加速中的实践

全站加速是阿里云自主研发的融合了动态加速和静态加速技术的CDN产品,解决了页面动静态资源混杂、跨运营商、网络不稳定、单线源站、突发流量、网络拥塞等诸多因素致使的响应慢、丢包、服务不稳定的问题,提高全站性能和用户体验。对于源站的适配,全站加速产品无需对服务器资源进行调整,会智能的区分动态和静态内容并分别加速,这也是目前比较适合游戏应用的加速方案。架构

全站加速能够提供传输加速、稳定均衡、HTTPS、基础防御和管控灵活五大价值。并发

传输加速:一站式静态、动态资源分离,静态资源能够基于遍及全球的边缘节点缓存进行加速,动态资源利用智能路由、传输协议优化、压缩传输、链路复用等技术实现回源加速;
稳定均衡:经过全网节点的负载均衡,以及主备源站、有序回源、源站健康检查等多重策略,肯定高并发状况下的业务稳定运行以及加速效果平稳。
HTTPS:国内运营商环境复杂,网站被劫持,站点内容遭篡改,仅使用HTTP协议传输可能会有用户动态内容泄露风险,须要寻求更安全高效的网络链路和内容分发途径,那么阿里云支持全链路HTTPS安全加速,提供多种证书格式,支持keyless方案,知足客户对于安全访问的不一样场景需求。
基础防御:在DCDN之上逐渐集成云安全能力,打造边缘安全能力。在更接近***源产生的位置,经过覆盖全球各地的DCDN边缘节点进行防劫持、防篡改、防DDoS***,减轻源站压力。
管控灵活:基于缓存多源优化,能够控制每一个回源量,从而可以对节省源站的带宽,以此保护源站,有序回源这一块,当活动突发的时候,DCDN能够经过有序回源的策略来明确哪些请求优先返还源站,哪些能够经过队列的方式来控制源站的回源量,从而能达到稳定均衡的一个效果。



bilibili实践经验

针对使用CDN的效率以及成本几大问题,bilibili具有如下实践经验:
第一,在交付效率上,bilibili经过gitops加基础设施及代码实现了一套资源编排,CDN也包含其中,研发经过选择CDN的配置模板(好比CDN多线策略,缓存配置模板)生成资源堆栈,再结合流程审批实现分钟级别的资源交付,在交付过程当中咱们力求让使用者只作选择题,少作问答题,减小反复沟通的成本;固然平台也集成了不少的小工具,好比最高频的刷新预热操做,咱们将不一样云平台的需求收敛到统一的界面,提供给研发自助进行操做;还有ip归属查询这类小工具,尽可能实现研发自助,以减小沟通提高人效。
第二,针对成本的问题,强调可计价,可度量;在CDN成本优化方面,首先要先知道钱花到了哪里,经过云计费api拿到实时数据,进行简单地同比环比,对成本突发进行预警,而后人工干预及时止损;第二是花同样的钱作更多的事,经过业务数据压缩以及开启云厂商的智能压缩功能进行技术优化,同时,提高静态缓存命中率,下降对象存储回源;第三是作同样的事情花更少的钱,就须要更优的计费策略和更优的核算策略。

对将来游戏CDN的思考

李宁表示:我理解的运维工做的主要目标之一就是可控,CDN可控就是实现智能调度,将来会围绕着数据治理进行一些尝试:

a) 经过第三方拨测、客户端数据上报、业务全链路监测,收集到完善的业务数据b) 在此基础上进行多维度的分析,好比异常状况下,进行多维度的数据关联聚合,减小多个运维监控组件之间切换排查c) 最终结合少许的人工辅助决策,去实现智能调度

相关文章
相关标签/搜索