如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

揭秘字节跳动内部流量调度与容灾实践【上】

  • 2025-01-22
    北京
  • 本文字数:3425 字

    阅读完需:约 11 分钟

大小:1.81M时长:10:32
揭秘字节跳动内部流量调度与容灾实践【上】

摘要:在字节跳动,平衡超大规模流量的稳定性、性能与成本,是一系列产品共同面临的挑战,其中, Trafficroute GTM 起到了不可忽视的作用。Trafficroute GTM 承载了字节跳动亿级流量、覆盖了大规模场景,是一款基于 DNS 的流量路由服务,我们将通过两期文章,揭秘字节跳动如何通过 Trafficroute GTM 巧妙应对以上挑战,实现高效流量管理!


本文为上期,主要介绍基于 TrafficRoute GTM 的 GEO-基础路由模式进行自定义流量编排,主要内容为:

  • TrafficRoute GTM 介绍

  • TrafficRoute GTM 的 GEO-基础路由模式的能力

  • 通过流量编排实现同城多活、多 CDN 调度、CDN 回源调度等经典架构及业务在稳定性、性能、成本等方面的收益


下期预告:下期我们将介绍 TrafficRoute GTM 的 Perf-智能路由模式,怎么通过它实现流量智能调度,敬请期待。


面临超大规模流量时,平衡好稳定性、性能、成本,能确保用户在访问服务时获得流畅、快速且可靠的体验,这对于提高用户满意度和粘性至关重要。TrafficRoute GTM 为业务提供基于 DNS 的全球流量负载均衡、智能调度、自动容灾服务,可以帮助业务提升连续性、实现资源优化、获取更多竞争优势。


1.火山引擎 Trafficroute GTM 简介


火山引擎 Trafficroute GTM 是基于 DNS 的流量路由服务。它依托全球 1100+分布式探测节点,构建出强大的网络质量感知能力,实现了对“端-边-云”全链路流量的质量感知,从而能根据 APP 应用的实时的访问质量、节点负载和健康状况作出动态的流量调度。


此外,Trafficroute GTM 还提供灵活的调度策略,其中 GEO-基础路由功能丰富,包括负载均衡、会话粘性和故障转移等多种特性。而 Perf-智能路由则在基础路由的基础上,进一步提供性能优先和负载反馈等智能调度能力,以满足更高层次的调度需求。


一图看懂 TrafficRoute GTM


在字节跳动内部业务中,通过对 Trafficroute GTM 能力的合理运用,落地了同城多活、多云混合等经典架构,也落地了边缘下沉,边缘计算 x 中心云等大规模分布式场景的最佳实践。


2.GEO-基础路由,实现流量自定义编排


TrafficRoute GTM 的 GEO-基础路由赋予用户灵活的流量管理能力,用户可根据具体业务需求,如负载均衡、就近接入、多活/灾备等,自定义路由调度策略,通过资源(地址池)编排、健康检查编排、路由(调度)规则编排等能力,打造个性化的流量调度与容灾解决方案。



2.1 地址资源编排:地址按需分类


资源是指流量访问的终点,包括公有云的 EIP 、CDN 的 CNAME 或边缘接入点等。TrafficRoute GTM 支持用户按照业务场景对资源(地址)进行自定义分类、组合和编排,编排形成的地址池可被路由规则引用,进而打造个性化的流量调度与容灾解决方案。



2.2 健康检查编排:全链路监测能力


健康检查是实现自动容灾的必要条件,TrafficRoute GTM 具备覆盖全球范围的 L3/L4/L7 健康检查功能,用户可以配置不同灵敏度的全链路监测能力,以此为自动容灾提供精准的决策支持,最终实现最快分钟级自动容灾。



2.3 路由规则编排:流量调度和容灾


通过精心配置 TrafficRoute GTM 的路由(调度)规则,可以精确控制流量的来源与去向,同时在发生故障时,确保流量能够按照预设的容灾方案进行故障转移。



3.字节跳动流量编排内部实践


在字节跳动内部业务中,通过 TrafficRoute GTM 的自定义流量编排实现了同城多活、异地灾备、全球多 CDN 调度、CDN 回源调度等经典架构,帮助内部业务:

  • 在稳定性上,将 MTTR 降低至分钟级,实现最快 1 分钟故障发现,3-5 分钟 90%+流量收敛(由于流量收敛时长受客户端分布、localDNS 行为、是否使用长连接等多种因素影响,3-5 分钟 90%+为参考值)

  • 在性能上,通过编排,将客户流量调度至各自访问体验最佳节点上,实现访问时延降低 15%+

  • 在成本上,通过编排,将流量优先调度至单位成本更低的资源上,实现带宽成本降低 10%+



3.1 同城多活,异地灾备,确保业务稳定与连续


在字节跳动业务中,同城多活与异地灾备架构是确保超大规模业务全天候稳定运行的核心策略之一。借助 GTM 的 GEO-基础路由模式,我们成功构建了 AZ 间流量负载均衡、 Region 间异地灾备、客户端 GEO&ISP 就近访问、分钟级自动容灾 4 大能力,以这 4 大能力为保障,实现了流量负载均衡、客户端就近接入、分钟级自动容灾等,确保了业务的稳定性和连续性。


同城多活 & 异地灾备


AZ 间流量负载均衡

通过编排路由规则的地址池权重,使得华北移动的客户端按照 60% vs 40%比例在 RegionA 的 AZ 之间实现了负载均衡。



同时,通过打开*会话粘性开关(TOB 版本待发布),使得特定的华北移动客户端始终访问同一个 EIP,实现会话保持功能。



Region 间异地灾备

通过编排路由规则的生效地址池集合 vs 其他地址池集合,实现了当 Region A 整体故障,流量切到 Region B,实现异地容灾能力。




客户端 GEO&ISP 就近访问

通过编排路由规则的线路 & 生效地址池集合,实现了根据客户端地理位置运营商来就近访问服务的能力,从而确保时延最低、性能最优、体验最佳。



分钟级自动容灾

通过编排健康检查规则,实现了最快 1 分钟故障感知 &容灾切换,3-5 分钟 90%+流量收敛的能力;且可感知全链路的故障,覆盖客户端->运营商网络->机房入口->后端服务。




以下是字节跳动内部自动容灾实践案例,某个面向企业级客户的边缘云与中心云混合部署业务,在凌晨 3 点 47 分遭遇了某机房故障,GTM 在 3 点 48 分迅速检测到这一故障,并自动启动了容灾机制。到了 4 点左右,中心机房已成功收敛了 90%的流量。随后,在 4 点 02 分,GTM 系统监测到故障已恢复,随即自动将流量回切至边缘机房。



更多关于 GTM【同城多活】【异地灾备】【两地三中心】等技术架构可参考往期分享:《火山引擎云调度GTM“同城容灾”与“异地多活”实践》


3.2 全球多 CDN 调度,始终选用“最优” 加速厂商


字节跳动的业务,会在全球应用包括火山引擎 CDN 在内的多家 CDN 厂商,来实现资源加速。然而,不同 CDN 厂商的服务能力存在差异,即便是同一厂商,在不同地区或不同时间段的表现也有所不同。因此,确保在全球各个地区始终选用“最优” CDN 厂商,成为了一项重要需求。


借助 TrafficRoute GTM 的流量编排,业务方能够根据不同区域的需求,灵活选择“资源覆盖更广”或“加速性能更好”的 CDN 厂商进行内容加速,同时可在多个厂商之间权衡成本效益(基于 P95 带宽计费)。同时, TrafficRoute GTM 确保了不同区域的流量能够“就近接入”选定的 CDN 厂商,以保障接入性能。在国内,针对不同运营商采用了定制化的路由策略,避免了 ISP 间的“跨网”问题,确保网络流畅。


为了应对流量管理中的潜在故障,每个流量部分都配置了多个地址池(即多个厂商),以实现故障时的自动流量切换。在故障探测方面, TrafficRoute GTM 采用了智能推荐的分布式综合探测方法,确保探测点与流量来源处于同一区域,减少误判风险,并具备分钟级的故障感知和流量迁移能力。


此外,故障转移(Failover)算法遵循“快速迁移,慢速恢复”的原则,结合历史流量质量监测和防抖动算法,以优化策略执行,确保服务的连续性和稳定性。



3.3 CDN 回源调度,保障源站可用性


字节跳动内部业务中,每时每刻都有超大规模的视频、图文、API 等流量经过 CDN/DSA 加速回到源站,因此源站的可用性至关重要。


为确保源站的可用性,我们通过 GTM 将源站接入点(一般是若干 EIP)封装成回源域名,回源域名被加载到 CDN 厂商的回源配置当中。由于回源域名由 GTM 托管,因此其具备了流量负载均衡、全链路健康检查、分钟级自动容灾等能力,保证了 CDN 厂商至源站这一回源链路的高可用性。这一容灾策略与 CDN 厂商回源机制本身包含的容灾策略相融合,可构建更加健壮的回源链路,进一步确保链路的高可用性。



在确保源站的可用性的过程中,通过 GTM 实现了两大能力,一是源站负载均衡,二是源站自动容灾。通过在 GTM 回源域名上配置源站的权重,可以实现将 CDN 回源流量在不同站点之间进行分配,保障了源站负载均衡;GTM 通过周期性 http 健康检查,实时感知源站运行状态,无论是部分节点异常还是源站整体故障,GTM 都能在 1 分钟内感知并完成容灾切换,实现了源站自动容灾。


以下是字节跳动内部 CDN 回源切流实践案例,通过 GTM 在 14 点 08 分将源站的 telecom 线路权重调整为 0,14 点 12 分左右源站 telecom 线路流量切空,14 点 42 分左右通过 GTM 复原源站的 telecom 线路权重,14 点 45 分左右源站 telecom 线路实现流量 100%收敛。



具体配置 GTM 落地 CDN 回源调度的流程,可点击文末【阅读原文】,跳转《通过 GTM 在 CDN 中实现自定义的负载均衡、健康检查和容灾切换》一文。


END


通过搭建同城多活、异地灾备;全球 CDN 调度;CDN 回源调度等经典架构,Trafficroute GTM 帮助字节跳动内部业务经受了超大规模流量考验,确保始终为用户提供稳定的服务。

2025-01-22 16:118373

评论 1 条评论

发布
用户头像
数据库也做了跨region的高可用吗?在跨region容灾切换的场景下,是如何保证数据库的数据实时同步的?RTO和RPO是多少?
2025-03-02 18:32 · 广东
回复
没有更多了

AI绘图:艺术与科技的交融 | 社区征文

IT蜗壳-Tango

年中技术盘点

Python爬虫超详细讲解(零基础入门,老年人都看的懂)

Java随想录

Java Python

模糊测试公布结果,大众漏洞被曝光

云起无垠

网络安全 模糊测试

九章元识大模型加速AI产业创新发展

九章云极DataCanvas

一文讲透 Redis 事务 (事务模式 VS Lua 脚本)

不在线第一只蜗牛

Lua脚本 redis 底层原理 Redis 可视化工具

Nautilus Chain 主网上线,创世 ZBC 质押即将开启

鳄鱼视界

第四届“先导杯”全国挑战赛正式开赛 百万奖金等你来拿

科技热闻

【有奖互动】开发者版本新特性,你期待哪些更新?#HDC.Together2023#

HarmonyOS开发者

HarmonyOS

在 K8S 中只会 CI 不会 CD ?3 种方式,让极狐GitLab 和 K8S 高效协同!

极狐GitLab

DevOps 云原生 k8s CI/CD 集成

开源直播源码平台处理卡顿问题技巧方案_山东布谷科技创作

山东布谷科技

开源 软件开发 直播 源码搭建 直播源码

《APaaS应用实施方法论》电子书正式发布

明道云

火山引擎DataTester:三类AB实验,让企业营销拥有灵敏“网感”

字节跳动数据平台

大数据 A/B测试 对比试验 企业号 7 月 PK 榜

影响云安全的因素有哪些?如何保障云安全?

行云管家

云安全 企业上云 堡垒机 自动化运维 云管

大模型时代下的全新变革

九章云极DataCanvas

AI 改变我们的工作方式 | 社区征文

宇宙之一粟

年中技术盘点

Filter for GO

数由科技

你的极狐GitLab SaaS上开启这些设置了吗?代码安全,安心下班!

极狐GitLab

gitlab CI/CD DevSecOps 代码安全 软件供应链安全

如何用极狐GitLab 为 Android App 创建自动化CI/CD?详细教程来了

极狐GitLab

自动化 CI/CD Android; keystore fastlane

打造数据处理新范式,DataPilot畅游数据向量海

九章云极DataCanvas

《中国民用航空业零代码应用与推广白皮书》正式发布

明道云

阿里商旅账单系统架构设计实践

阿里技术

账单 阿里商旅 账单系统 账单数据

全面构建AI能力,AIFS为AI产业发展按下“加速键”

九章云极DataCanvas

前、后端通用的可视化逻辑编排

悠闲的水

低代码 逻辑编排 低代码平台 可视化编排 可视化开发

英特尔携钉钉及新华三以创新解决方案变革未来远程协作体验

E科讯

英特尔x MAXHUB:以创新解决方案掀起“智能协作”新浪潮

E科讯

如何理解小程序插件?微信及支付宝官方详解

没有用户名丶

揭秘字节跳动内部流量调度与容灾实践【上】_字节跳动_火山引擎_InfoQ精选文章