写点什么

纯干货|聊一聊大促活动背后的技术:火山引擎边缘云 CDN/DCDN/GA

  • 2024-01-23
    北京
  • 本文字数:4294 字

    阅读完需:约 14 分钟

纯干货|聊一聊大促活动背后的技术:火山引擎边缘云 CDN/DCDN/GA

去年 12 月 12 日,“抖音商城双 12 好物节”正式结束。据了解,双 12 期间,抖音电商推出了超值购、秒杀等多个优价频道和多个类目的主题榜单,让有消费需求的用户更高效地发现高性价比好物。除了货架场景,“抖音商城双 12 好物节”还发力重点达人直播间、好物直播间等内容场域,通过电商优质内容为商家和达人创造生意增量。



“抖音商城双 12 好物节”的背后是大流量、高并发对基础技术提出的挑战,保障大促期间平台的平稳运行、用户流畅的购物体验尤为重要。在经受了双十一海量流量考验的基础上,火山引擎 CDN/DCDN 和 GA 作为抖音静态/动态/长连接业务流量入口,保障了大促期间抖音电商平台的平稳运行。


下图为抖音客户端视频业务/动态接口/长连接业务主要流量架构图,客户请求通过火山引擎内容分发网络(CDN)、全站加速(DCDN)、全球加速(GA)回源到中心网关,转发到对应的业务服务。



技术架构


火山引擎 CDN/DCDN 和 GA 利用丰富的网络资源,依托边缘云全球网络(含到主要地区的合规专线)降低网络抖动、时延和丢包,显著提升传输效率,结合自研的传输优化、智能缓存、动态路由、安全防护等能力,为用户提供安全、稳定的一站式加速服务,提升用户访问体验。


  • 火山引擎内容分发网络产品 CDN (Content Delivery Network)提供稳定、弹性、高性能的全球内容分发服务。

  • 火山引擎全站加速产品 DCDN (Dynamic Content Delivery Network) 是一款在 CDN 静态内容加速服务的基础上,提供纯动态及动静态混合内容加速的服务。

  • 火山引擎全球加速产品 GA(Global Accelerator)是一款实现全球范围网络就近接入和跨地域部署的四层网络加速服务。


火山引擎 CDN/DCDN/GA 资源分布


火山引擎 CDN/DCDN/GA 通过抖音集团业务和规模化 ToB 业务的打磨,已经形成了一套完备且具备规模商业化能力的系统。


  • 资源分布:全球 2500+加速节点,国内实现三大运营商本省覆盖,海外覆盖了主要国家和地区;

  • 丰富协议:支持 HTTP(S)、QUIC、WebSocket、TCP、UDP 协议接入;

  • 智能调度:保证客户就近接入,实现大规模 QPS 的全网调度;

  • 智能路由:自研智能路由系统,保证请求最优路径回源,提升用户体验;

  • 传输优化:通过协议优化、回源预建连、公网路由择优等策略,提升动态 API、上传、下载等各个场景的传输速度;

  • 安全防护:支持大容量的 DDoS 防护、CC 防护、Web 漏洞防护,全链路 HTTPS(支持国密协议),确保数据传输安全;

  • 稳定性:通过大规模 QPS 的验证,稳定性经过充分验证,经历了抖音春晚红包、抖音世界杯直播、抖音电商双十一等大型活动考验。


火山引擎 CDN/DCDN/GA 网络拓扑


解决方案


火山引擎 CDN/DCDN/GA 作为抖音业务动静态流量入口,在双 12 期间,不仅要承载常态流量,还需要应对大促带来的洪峰流量冲击,这对火山引擎 CDN/DCDN/GA 的容量、调度能力、容灾能力都提出了更高的要求。对此,本文从 5 个方面介绍应对双 12 突发流量时火山引擎 CDN/DCDN/GA 提供的解决方案。


动态扩容


为了解决大促高峰时间段的资源不足问题,火山引擎 CDN/DCDN/GA 采用动态扩容技术。双 12 带来的流量是脉冲式流量,持续时间短,峰值高。虽然火山引擎 CDN/DCDN/GA 常态下会保留一定的流量冗余,但依然无法应对大促带来的突发流量。如果想要通过短时间内完成大量边缘节点扩容来解决这一问题,不仅操作难度极大,而且仅为活动进行大规模扩容,也会造成资源浪费。因此,如何动态扩容以应对短时间洪峰流量,是火山引擎 CDN/DCDN/GA 产品在双 12 遇到的主要挑战之一。


火山引擎 CDN/DCDN/GA 使用火山引擎边缘云统一技术底座,主要流量运行在边缘云容器/虚拟机上。因此可以在活动正式开始前,充分利用边缘容器平台的弹性能力,快速创建出一批新资源,完成资源动态扩容,满足活动期间的容量需求。在活动结束后,将扩容资源释放,实现整体容量的快速扩缩。


流量调度


为了应对突发流量,火山引擎 CDN/DCDN/GA 引入“活动”流量模型。常态下,火山引擎 CDN/DCDN/GA 会根据业务实时以及最近几天的 QPS/带宽/连接数进行调度,但面对双 12 带来的突发流量,这种调度模式显然无法适应。


为解决这个问题,火山引擎引入了“活动”流量模型。假设活动期间各个地区的流量分布与常态流量一致,根据业务预估的总 QPS/带宽/连接数,按比例分配到不同地区。在进行调度时,将预估的活动流量一并纳入考虑,因此调度后的节点能够承载活动突发流量。同时会根据前一天的流量值修正下一次活动流量模型。


引入“活动”的流量模型


自保能力


为了应对容量风险,火山引擎 CDN/DCDN/GA 具备熔断能力实现自保。资源和调度已具备应对预估峰值的能力,但业务预估流量跟真实流量很可能存在偏差。如果业务预估比真实流量低,突发流量很有可能超出 CDN/DCDN/GA 服务上限,当出现短时间的可用性降低、请求耗时增加后,会触发客户端不断重试,进一步加剧服务压力,极有可能造成线上整体的雪崩,影响产品请求。


因此,为了应对极端场景的风险,CDN/DCDN/GA 需具备熔断能力,当请求量达到一定阈值后,通过熔断降低系统压力,保证线上主要业务流量的稳定性。


活动期间,主要有以下容量风险:


  • CPU 资源风险:大量客户端冷启,新建连接(CPS)突增,抖音支持全链路 HTTPs,因此冷启客户端会进行大量的 SSL 握手,消耗 DCDN 节点大量 CPU 资源;

  • QPS 突增风险:电商 API 接口请求量(QPS)突增,超过 CDN/DCDN/GA 处理能力上限,造成服务崩溃;

  • 请求堆积风险:随着 QPS 突增,活动业务后端服务压力增加,响应耗时变大,造成大量请求堆积,拖垮 CDN/DCDN/GA 和业务服务。


为了应对上述风险,火山引擎 CDN/DCDN/GA 产品引入多维度熔断能力:


  • CPS 熔断能力:针对最耗费 CPU 的 SSL 握手,支持针对单域名和全局 SSL 握手限流能力,当单个域名的 SSL 流量超出阈值后,将拒绝新 SSL 请求,避免打爆 CPU;

  • QPS 熔断能力:当活动域名的 QPS 超过设定阈值后,拒掉新请求,避免过多请求回源,保护自身和源站服务;

  • 回源熔断能力:当单个域名同时回源的请求达到一定阈值后,新的回源请求会在 CDN/DCDN/GA 直接熔断,响应异常码,避免业务服务响应变慢后,请求堆积拖垮业务后端服务。


上述熔断能力,均支持单域名和全局粒度。


  • 单域名熔断:主要针对活动域名配置,避免活动域名突增影响全局流量。

  • 全局熔断能力:主要是保护 DCDN 服务,当超过 DCDN 服务能力上限后,熔断一部分流量,保证大部分流量可正常服务。


流量压测


具备资源、调度、熔断能力后,还需要在活动之前对上述功能进行验证。对此,火山引擎 CDN/DCDN/GA 与抖音客户端合作,进行全链路压测,利用真实的客户端请求,模拟活动期间洪峰,验证全链路的处理能力。

流量压测曲线


加速性能


性能接入是加速产品最重要的衡量指标之一。如何更好的提升性能,也是火山引擎 CDN/DCDN/GA 产品持续探索的方向,经过多年的打磨,沉淀了经验,以下是火山引擎 CDN/DCDN/GA 产品在性能优化方面的主要策略。


智能调度


移动端用户通过 4G/5G/WIFI 无线网络访问源站应用,信号不稳定,如果直连源站,RTT 较长,按照主流的基于 ACK 反馈或超时来判断丢包的拥塞控制算法,需要很长时间才能感知到丢包,再进行重传,导致时延非常大,如果通过更近的接入点上车,移动端和节点之间 RTT 更短,就可以更快感知到丢包,更快进行重传,降低时延。

火山引擎 CDN/DCDN/GA 自研的智能调度算法会基于用户分布情况,动态实时计算出接入质量更优的节点,例如在某城市,会根据用户分布的集中度,选择离大多数用户更近的接入点上传,相比传统的 DNS 调度能更好的实现就近接入,提升用户体验。


智能路由


广域网网路存在复杂的运营商和地域限制策略,经常出现绕路、限速等情况。针对此问题,火山引擎自研的智能选路系统可在复杂的广域网中实时选择最优路径回源,保障业务的最佳体验。智能路由解决的是多目标路径规划问题,需要兼顾性能、容量等,重点是归一化目标函数设计。火山引擎

CDN/DCDN/GA 综合考虑了链路质量、节点水位、亲缘性等目标,同时根据不同的业务场景(API、上传、下载等)采用不同权重值,保证各种业务场景按照最佳链路回源。



传输优化


  • 协议栈优化:回源链路采用火山引擎自研的 TTCP 协议栈,TTCP 具备内核插件化能力,已在火山引擎 CDN/DCDN/GA 全网部署,支持域名粒度控制,可根据业务场景(API、上传、下载)实现精准化的参数控制和自适应拥塞控制算法,保证最佳的访问体验。同时 TTCP 实现了平台化的管理,利用采集现网数据通过大数据实时分析决策动态的调整系统参数和拥塞控制算法,提升访问体验。


  • 连接优化:火山引擎 CDN/DCDN/GA 产品为提升访问性能、降低中心服务的压力,采取了“预建连”优化手段。节点在没有真实请求时,主动与源站建立一批连接,维护在连接池内,当突发业务请求到达,回源时可直接复用连接,提高访问性能。通过抖音集团内部业务测试显示,采用预连接策略后,首包时间耗时从 115ms 降低到 54ms,降低了 53%以上,效果明显。


图片 9.png


图片 8.png


应用案例


火山引擎 DCDN 承载了双十一期间抖音业务主要 API 流量,在双十一的洪峰挑战中保证了用户最佳购物体验,性能、稳定性得到了充分验证。通过客户端监测数据,火山引擎 DCDN 活动期间服务稳定,且加速性能达到行业领先水平。


1. 抖音短视频:抖音短视频核心 Feed 流 API 请求通过开启 QUIC 协议,采用智能路由、预建连等优化策略,网络耗时均值降低 7%以上,长尾耗时降低 17%以上,人均播放时长等核心业务收益显著正向。



2. 抖音电商:结合边缘高防调度以及边缘 WAF 能力,解决 API 防护、 DDoS 和 CC 攻击、保护内容不被恶意爬取、劫持、篡改等,通过自研的传输优化、智能缓存、动态路由等技术提供了纯动态及动静态混合内容的加速服务,为用户提供更优质的访问体验。



展望未来


火山引擎 CDN/DCDN/GA 自上线以来,通过字节内部大规模 QPS、亿级并发连接数的验证,经历了双十一、春节活动、世界杯等大型活动考验,经过多年的打磨,性能、稳定性达到业内领先水平,沉淀了典型应用场景的加速解决方案。火山引擎 DCDN 和 GA 先后于 2021 年和 2022 年正式 ToB,把服务抖音业务的技术积累提供给更多的外部客户。


下一步,火山引擎 CDN/DCDN/GA 会继续进行深度优化,持续降低访问时延,比如在加速网络内部使用基于 UDP 的私有协议,针对动态 API、上传、下载场景使用更加自助可控的丢包检测和拥塞控制算法,另外结合端上的能力,针对时延敏感性业务,比如游戏场景联动火山引擎游戏加速解决方案 GNA 支持全链路的加速能力,开启 FEC、双通道、网络检测能力等,为用户提供极致性价比的加速服务。


2024-01-23 14:233962

评论

发布
暂无评论
发现更多内容

性能测试的理解误区

老张

性能测试 稳定性保障

悦数图数据库:图技术加速行业大模型智能化应用落地|WAIC 2023 精彩回顾

悦数图数据库

人工智能 图数据库 国产数据库 大模型 AIGC

再获认可!万里数据库参编中国信通院数据库研究报告 GreatSQL入选中国数据库产业图谱

GreatSQL

使用GPT探索学习新东西的乐趣与惊喜 💡|社区征文

Five

学习 安卓 GPT 年中技术盘点

思维导图软件哪个好?试用百款导图软件只留下这15个。

彭宏豪95

思维导图 在线协作文档 mac思维导图 效率软件 笔记工具

人人都是架构师-清晰架构 | 京东物流技术团队

京东科技开发者

架构 架构设计 企业号 7 月 PK 榜 清晰架构

Spring 中的父子容器是咋回事?

江南一点雨

Java spring

TinyNG——开源Angular组件库,助力Web应用快速开发!

OpenTiny社区

CSS typescript angluar 前端ui组件库

openEuler 22.03 LTS登录AWS Marketplace

openEuler

Linux 操作系统 AWS openEuler 资讯

2023IKCEST “一带一路” 国际大数据竞赛重磅启动!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

Kubernetes:快速入门指南

NGINX开源社区

nginx Kubernetes 微服务

壹米滴答助力制造业、商贸业及电商企业提升商业流通效率

联营汇聚

常规LED广告显示屏的运营成本怎么估算

Dylan

广告 项目 运营 成本 LED显示屏

实操:用Flutter构建一个简单的微信天气预报小程序

没有用户名丶

视频交友源码开发搭建平台用户资料功能:小功能有大用处!

山东布谷科技

软件开发 视频 实时音视频 源码搭建 交友

飞腾开发者平台上线龙蜥专区,为开发者提供硬核技术支持

OpenAnolis小助手

开源 开发者 生态 龙蜥社区 飞腾

向量数据库的崛起:从矢量搜索到深度学习 (二)

极限实验室

深度学习 数据库 搜索 极限科技

实时社群技术专题(二):百万级成员实时社群技术实现(消息系统篇)

JackJiang

网络编程 即时通讯 IM

中航机载新技术预研与应用工程师万胜来《IoTDB 在中航机载智能云制造系统》

Apache IoTDB

时序数据库 IoTDB Apache IoTDB 中国航天

和鲸 × 于峻川丨以遥感领域为例,浅谈 AI for Science 带来的数据开放、跨学科协同及产学研一体

ModelWhale

遥感 AI for Science 协同科研 数据开放 产学研一体

手把手教你用 NebulaGraph AI 全家桶跑图算法

NebulaGraph

人工智能 图数据库

DHorse v1.2.1 发布,基于k8s的发布平台

tiandizhiguai

DevOps k8s

QCN9074+QCN9024-wifi card realizes high-speed data transmission and network traffic management.

wifi6-yiyi

wifi6

极客欢聚,燃动夏日!开发者嘉年华等你来

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

【推荐】贵阳市等保测评机构看这里!

行云管家

贵阳 等保 等级保护 等保测评

软件高效自动化部署:华为云部署服务CodeArts Deploy

华为云PaaS服务小智

云计算 开发者 软件开发 华为云 华为开发者大会

HarmonyOS课程尝鲜计划,优享特权大礼包

HarmonyOS开发者

HarmonyOS

多元融合:流媒体传输网络的全盘解法

阿里云CloudImagine

云计算 阿里云 视频云

架构师日记-到底该如何搭建一个新系统 | 京东云技术团队

京东科技开发者

架构 架构设计 工程架构 企业号 7 月 PK 榜

经过半年的努力,我终于成为了谷歌开发者专家(GDE)

拭心

android 面试 谷歌 GDE

云管平台和云服务器一样吗?两者有啥区别?

行云管家

云计算 云服务器

纯干货|聊一聊大促活动背后的技术:火山引擎边缘云 CDN/DCDN/GA_字节跳动_火山引擎_InfoQ精选文章