写点什么

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

  • 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:118

评论

发布
暂无评论

Wallys/QCN9074 /11ax/ 4x4 /5G M.2

wallys-wifi6

QCN9074 11 ax

打开人工智能“黑盒”,发展可解释、可扩展、可信赖、安全可靠的人工智能

博文视点Broadview

剧透!2022开发者关注的开源技术全解析

华为云开发者联盟

开源 mindspore kubeedge OpenHarmony open Euler

单机GPU云服务器的深度学习训练和预测模型分析

Finovy Cloud

云服务器 GPU服务器

Spring Cloud OpenFeign 的 5 个优化小技巧!

王磊

SpringCloud

主管发话:一周搞不定用友U8 ERP跨业务数据分析,明天就可以“毕业”了

葡萄城技术团队

数据分析 BI 用友

EAM系统解决方案

低代码小观

资产管理 企业管理系统 企业设备管理 设备巡检管理系统 企业管理软件

TDengine 社区问题双周精选 | 第一期

TDengine

数据库 tdengine

数据治理项目调研环节思考

agileai

项目管理 数据中台 数据仓库 数据治理 主数据

静亦求精,罗技MX高性能键鼠组合上市!

Geek_2d6073

ShardingSphere 在金融支付场景下的实践与调优

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

全场景式全流程监控,博睿数据为券商IT运维难题提供范例

博睿数据

数字化转型 博睿数据 数据链DNA 证券行业

青藤《关键信息基础设施增强保护安全实践》论文入选中国科技核心期刊

青藤云安全

信息安全 关键信息 安全保护

国内私有云厂商有哪些?排名怎么样?

行云管家

网络安全 私有云 私有云厂商

错过了太后悔,九大绝招大公开,详解华为低时延技术

华为云开发者联盟

云计算 音视频 华为云

leetcode 69. Sqrt(x) x 的平方根(简单)

okokabcd

LeetCode 查找

洞见科技数据科学家王湾湾:隐私计算助推金融业数字化转型

洞见科技

数据挖掘 金融科技 隐私计算

发现一个开源项目优化点,点进来就是你的了

捉虫大师

开源 性能优化 sentinel 5月月更

离线数仓建设,企业大数据的业务驱动与技术实现

袋鼠云数栈

企业网站该怎样选择网站域名?

源字节1号

软件开发

易安联参编《SASE技术与应用场景白皮书》正式发布

权说安全

网络安全 sase

乏善可陈的Neuralink

图灵教育

Wallys/QCN9074 /11ax 4x4 6G M.2

wallys-wifi6

wifi6 m.2

墨天轮高分技术文档分享——Oracle升级迁移篇(共96个)

墨天轮

MySQL 数据库 oracle postgresql 国产替代

DCM:一个能够改善所有应用数据交互场景的中间件新秀

华为云开发者联盟

数据处理 数据交互 多样性数据源 DCM

有没有支持vmware/openstack/zstack私有云的堡垒机?

行云管家

私有云 云服务器 堡垒机 行云管家

极客星球 | 机器学习赋能商业地产决策进阶

MobTech袤博科技

直播预告 | 服务网格规模化应用下的 Istio Sidecar 灵活配置实践

阿里巴巴云原生

阿里云 云原生 直播 服务网格 Istio Sidecar

使用 Amazon DevOps Guru for Serverless 自动检测 Lambda 函数中的运行问题

亚马逊云科技 (Amazon Web Services)

DevOps Lambda severless

GPU不可不知的指标项

AIWeker

人工智能 gpu 5月月更

如何实现客户自助服务?打造产品知识库

小炮

知识库

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