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


日前 , 云栖大会新一代CDN的技术突破与应用实践专场中 , bilibili资深运维工程师李宁进行了《DCDN在游戏应用加速中的实践》主题分享 , 从bilibili游戏应用CDN的效果和成本入手 , 深入浅出地分享DCDN全站加速在游戏加速场景中的应用 。
bilibili的业务部署架构及CDN的应用
bilibili一直以来是作为中国Z世代高度聚集的文化社区而被大家熟知 , 已经成为了国内二次元游戏的主要分发渠道和发行方 。 在公司不断发展过程中 , CDN扮演着不可或缺的角色 。
简单的七层应用游戏的部署架构如下图所示 , 业务的后端以中心化部署的方式完全隐藏在公共云的网络内 , 出向网络经过NAT转发 , 业务的入口只通过公网负载均衡进行暴露 , 静态资源存放在对象存储上 , 然后从用户动静态的请求全部经过CDN进行转发 , 这样的方式不仅能进行常规静态资源的缓存加速 , 也能帮助隐藏源站 , 并进行相应的DDoS防护 。

|Bilibili资深运维工程师:DCDN在游戏应用加速中实践
本文插图
李宁介绍到:bilibili对CDN的使用大概分三个阶段 , 初期业务规模比较小 , 主要通过基于云内专线自建代理的方式实现区域加速;随着业务规模增加 , 运维管理问题和安全问题暴露 ,bilibili基于不同的缓存策略 , 在商业静态CDN上去实现动静态请求的分发 , 虽然解决了自建带来的管理和安全问题 , 但是也带来了新问题 , 比如静态CDN中间源大量回源过载、静态CDN链路过长 , 多级代理导致响应耗时增加等等;直到近两年 , 市场上出现了专门针对动态请求加速的产品 , 在原有CDN功能丰富度提升的基础上 , 通过智能路由带来了更好的加速质量提升 。
游戏应用运维工作对CDN的核心诉求
在游戏运维的日常工作里经常会遇到以下场景:静态突发流量报备不及时 , 单一厂商无法全部承接 , 导致业务进退两难 , 业务和运维背着炸药包上线;游戏热更中大量的刷新预热需求 , 带给运维带来繁重的工作;热点游戏海外用户访问质量如何保障;国内小运营商环境中各种劫持与弱网传输;游戏业务突发式增长对弹性伸缩、快速交付的挑战等等 。
简单总结 , 业务对运维的需求就是:
a) 热点资源、导致流量突发运维需要做好保障b) 保障业务发展过程中快速交付、并且保障易用性c) 业务的基础网络链路实现跨境优化d) 要能覆盖国内的小运营商e) 需要有政企关系 , 具备推进运营商快速处理问题的能力
基于上述需求综合考虑 , bilibili选择使用公共云CDN , 而非自建的形式 。 其业务对云CDN的使用运维有以下诉求:
【|Bilibili资深运维工程师:DCDN在游戏应用加速中实践】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) 最终结合少量的人工辅助决策 , 去实现智能调度
本文为阿里云原创内容 , 未经允许不得转载 。