“从某种意义上说,我们正在努力破解云的骨干网,以造福于我们,”TikTok产品管理基础设施经理Vikram Siwach指出,他解释了该公司即将开源的“全球服务加速器”的好处,这是一个可编程的边缘平台,可将应用程序需求与最佳云服务相匹配。
Siwach在本月早些时候于芝加哥举行的KubeCon+CloudNativeCon 2023上透露了TikTok首个主要开源包的细节。
TikTok 的Vikram Siwach
TikTok 运营自己的数据中心——考虑到为数百万用户生成即时推荐的大量计算需求,这样成本更低。云对于该工作负载来说太昂贵了。但 TikTok 发现云提供商的网络骨干是接触全球受众的最快方式。因此,基础设施管理团队开发了 GSA 来“管理我们的用户体验”,Siwach 说。
GSA 最初旨在优化网络性能,但 TikTok 还发现了削减云成本的其他好处。“它允许您根据端点成本或路由成本选择最适合您的合作伙伴,”Siwach 对加速器抱有远大的抱负,尽管云提供商也有自己类似的加速器服务:“一旦我们开源该代码,您就不需要使用它们,”他说。
为什么 TikTok 这么快
不管你对 TikTok 有何看法,但即使是最愤世嫉俗的系统工程师也必须承认, TikTok移动优先的服务速度快如闪电,不仅几乎可以即时提供短视频,而且还能实时提供个性化信息。 TikTok很早就发现,仅依赖公共互联网可能存在风险:它速度不快,也不可靠。
TikTok 在全球运营着三个数据中心,一个位于美洲,一个位于欧洲和非洲,第三个位于亚洲和澳大利亚。Geo DNS 服务将登录的用户连接到该区域最近的数据中心。
在实验中,TikTok发现,与直接使用互联网相比,使用云提供商的主干将巴西的用户连接到美国数据中心,可以降低延迟。用户可以更迅速地获得推荐。
TikTok 如何削减云成本
事实上,这种方法非常有效,并被应用于多个相互竞争的云提供商的其他全球地区。“这是我们与多个云提供商共同投资的首个用例,”Siwach说(未提及任何名字)。
最初,加速器仅用于推荐,但随着时间的推移,其他服务也将得到支持。无论用户身在何处,让代理靠近他们,都会给TikTok带来一定的优势。如果服务受到一波拒绝服务数据包的攻击,它可以更快地丢弃这些数据包,节省网络流量成本。
对于 TikTok 来说,加速器还可以在云提供商之间提供“中立性”,使他们能够选择价格和性能最好的云提供商。加速器基于 nginx,但经过修改以满足更重的性能需求。该服务从用户那里获取三种不同类型的流量:HTTPS、谷歌的QUIC和Websockets,这些流量通过云提供商 Anycast IP 进入并传输到第 4 层负载均衡器。
GSA 在云提供商的 Kubernetes 服务上运行(通常是运行 4-500 个节点的单个集群)。Siwach 表示,云提供商在管理 Kubernetes 方面做得很好,而且借助 K8s,工作负载可以轻松地跨云提供商转移。
云提供商还处理网络资源的自动扩展,考虑到社交媒体服务的高峰使用模式,这一点很重要。GSA 处理流量、全路径加密和证书管理、用户隐私、应用程序防火墙和其他安全措施等方面。
边缘可编程功能
GSA可以提供云提供商网络性能的丰富细节,并提供统一的管理,使用户摆脱对云提供商的依赖。它还提供可编程功能,有助于性能路由、安全管理和成本优化。
Siwach预测,边缘计算“将演变为一种功能即服务,你可以编写简单的脚本和具有逻辑的程序。”在这里,可编程功能可以以多种方式使用,具体取决于用户需求。在细粒度细节中,您将了解云提供商端点的成本是多少,或者负载平衡的成本是多少。您可以从用户端和服务器端获得指标。然后您可以针对结果进行编程。
“在某些应用中,延迟更重要。因此我们为此进行编程。某些应用不关心延迟——上传图像——所以我们为此进行了编程,”他说。GSA设计提供了一种方法来满足内部和外部产生的法规和合规性法律以及其他要求。
事实上,可编程功能(例如在数据包标头中附加更多信息的能力)可能在这方面对 TikTok 起着关键作用。该服务有一个专门的团队来管理用户安全和数据。他们为公司制定政策,并受益于像 GSA 这样的中央接口。“你可以在云提供商的外围部署这个特殊的软件,对策略进行编程,然后将控制权移交给其他你信任的人,”Siwach解释道。
进入开源领域
对于TikTok来说,此次发布也将是其首次进军开源领域。由于该加速器使用开源组件(尽管Siwach只提到了Nginx),TikTok希望回馈社区。
“所以请对我们好一点。我们不熟悉这里的环境,”Siwach告诉观众。
如果您也对边缘计算感兴趣,诚挚邀请您参加12月16日在上海举办的第八届全球边缘计算大会,本次主题为:AI时代的边缘计算,邀请国内边缘计算头部玩家相聚黄浦,共谋边缘AI未来!