TikTok 将开源“云中和”边缘加速器

“从某种意义上说,我们正在努力破解云的骨干网,以造福于我们,”TikTok产品管理基础设施经理Vikram Siwach指出,他解释了该公司即将开源的“全球服务加速器”的好处,这是一个可编程的边缘平台,可将应用程序需求与最佳云服务相匹配。

Siwach在本月早些时候于芝加哥举行的KubeCon+CloudNativeCon 2023上透露了TikTok首个主要开源包的细节。

056e61fc0782128ae06b5a37b2ee6ca2.jpeg

TikTok 的Vikram Siwach

TikTok 运营自己的数据中心——考虑到为数百万用户生成即时推荐的大量计算需求,这样成本更低。云对于该工作负载来说太昂贵了。但 TikTok 发现云提供商的网络骨干是接触全球受众的最快方式。因此,基础设施管理团队开发了 GSA 来“管理我们的用户体验”,Siwach 说。

GSA 最初旨在优化网络性能,但 TikTok 还发现了削减云成本的其他好处。“它允许您根据端点成本或路由成本选择最适合您的合作伙伴,”Siwach 对加速器抱有远大的抱负,尽管云提供商也有自己类似的加速器服务:“一旦我们开源该代码,您就不需要使用它们,”他说。

c08cce8d4b6cb839e4fd6d4f375a4fcc.jpeg

为什么 TikTok 这么快

不管你对 TikTok 有何看法,但即使是最愤世嫉俗的系统工程师也必须承认, TikTok移动优先的服务速度快如闪电,不仅几乎可以即时提供短视频,而且还能实时提供个性化信息。 TikTok很早就发现,仅依赖公共互联网可能存在风险:它速度不快,也不可靠。

TikTok 在全球运营着三个数据中心,一个位于美洲,一个位于欧洲和非洲,第三个位于亚洲和澳大利亚。Geo DNS 服务将登录的用户连接到该区域最近的数据中心。

在实验中,TikTok发现,与直接使用互联网相比,使用云提供商的主干将巴西的用户连接到美国数据中心,可以降低延迟。用户可以更迅速地获得推荐。

9e3a64c2750555b57af65b089d270484.jpeg

TikTok 如何削减云成本

事实上,这种方法非常有效,并被应用于多个相互竞争的云提供商的其他全球地区。“这是我们与多个云提供商共同投资的首个用例,”Siwach说(未提及任何名字)。

最初,加速器仅用于推荐,但随着时间的推移,其他服务也将得到支持。无论用户身在何处,让代理靠近他们,都会给TikTok带来一定的优势。如果服务受到一波拒绝服务数据包的攻击,它可以更快地丢弃这些数据包,节省网络流量成本。

对于 TikTok 来说,加速器还可以在云提供商之间提供“中立性”,使他们能够选择价格和性能最好的云提供商。加速器基于 nginx,但经过修改以满足更重的性能需求。该服务从用户那里获取三种不同类型的流量:HTTPS、谷歌的QUIC和Websockets,这些流量通过云提供商 Anycast IP 进入并传输到第 4 层负载均衡器。

GSA 在云提供商的 Kubernetes 服务上运行(通常是运行 4-500 个节点的单个集群)。Siwach 表示,云提供商在管理 Kubernetes 方面做得很好,而且借助 K8s,工作负载可以轻松地跨云提供商转移。

云提供商还处理网络资源的自动扩展,考虑到社交媒体服务的高峰使用模式,这一点很重要。GSA 处理流量、全路径加密和证书管理、用户隐私、应用程序防火墙和其他安全措施等方面。

e144cee80fa145c85f1ecc13bb446b59.jpeg

边缘可编程功能

GSA可以提供云提供商网络性能的丰富细节,并提供统一的管理,使用户摆脱对云提供商的依赖。它还提供可编程功能,有助于性能路由、安全管理和成本优化。

Siwach预测,边缘计算“将演变为一种功能即服务,你可以编写简单的脚本和具有逻辑的程序。”在这里,可编程功能可以以多种方式使用,具体取决于用户需求。在细粒度细节中,您将了解云提供商端点的成本是多少,或者负载平衡的成本是多少。您可以从用户端和服务器端获得指标。然后您可以针对结果进行编程。

“在某些应用中,延迟更重要。因此我们为此进行编程。某些应用不关心延迟——上传图像——所以我们为此进行了编程,”他说。GSA设计提供了一种方法来满足内部和外部产生的法规和合规性法律以及其他要求。

事实上,可编程功能(例如在数据包标头中附加更多信息的能力)可能在这方面对 TikTok 起着关键作用。该服务有一个专门的团队来管理用户安全和数据。他们为公司制定政策,并受益于像 GSA 这样的中央接口。“你可以在云提供商的外围部署这个特殊的软件,对策略进行编程,然后将控制权移交给其他你信任的人,”Siwach解释道。

1586c2f01dd15e6a84f777e65068ce87.jpeg

进入开源领域

对于TikTok来说,此次发布也将是其首次进军开源领域。由于该加速器使用开源组件(尽管Siwach只提到了Nginx),TikTok希望回馈社区。

“所以请对我们好一点。我们不熟悉这里的环境,”Siwach告诉观众。

e712522383a2d4ed9aad8c7c83f962b2.gif

如果您也对边缘计算感兴趣,诚挚邀请您参加12月16日在上海举办的第八届全球边缘计算大会,本次主题为:AI时代的边缘计算,邀请国内边缘计算头部玩家相聚黄浦,共谋边缘AI未来!

e6af4451e654ff486a98eb4ab328cc3a.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/188737.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

最详细手把手教你安装 Git + TortoiseGit 及使用

软件下载 从 Git 官网 下载 Git 安装程序,点击 Download for Windows: 点击下载 64-bit Git for Windows Setup: Git for Windows Setup 为安装版本,建议选择此版本Git for Windows Portable 为绿色免安装版本 从 TortoiseGit 官网 下载 T…

万字解析设计模式之责任链模式、状态模式

目录 一、责任链模式 1.1概述 1.2结构 1.3实现 1.4 优缺点 1.5应用场景 1.6源码解析 二、状态模式 2.1概述 2.2结构 2.3实现 2.4优缺点 2.5应用场景 三、责任链模式实验 任务描述 实现方式 编程要求 测试说明 四、状态模式实验 任务描述 实现方式 编程要…

什么是无监督学习

1 概况 1.1 定义 无监督学习(Unsupervised Learning)是机器学习的一种类型,它涉及从未标记的数据中发现隐藏的模式。与监督学习不同,无监督学习的数据没有显式的标签或已知的结果变量。其核心目的是探索数据的内在结构和关系。无…

使用Kibana让es集群形象起来

部署Elasticsearch集群详细步骤参考本人: https://blog.csdn.net/m0_59933574/article/details/134605073?spm1001.2014.3001.5502https://blog.csdn.net/m0_59933574/article/details/134605073?spm1001.2014.3001.5502 kibana部署 es集群设备 安装软件主机名…

76. 最小覆盖子串 (滑动窗口)

Problem: 76. 最小覆盖子串 文章目录 思路相似滑动窗口题目 :Code 题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 注意: 对于 t 中重复字符,我…

宝塔面板安装搭建DiscuzQ论坛教程与小程序上架发布后的展示效果

DiscuzQ论坛小程序上架发布后的展示效果: 1、需要用到的环境: php7.2 mysql5.7或者MariaDB 10.2(我安装用的mysql8.0) php除了必要的一些扩展外,还需要启用readlink、symlink函数等,具体看官方说明,安装的时候也会提醒…

IDEA中JDK21控制台打印的中文乱码

IDEA中,使用的JDK21,控制台打印中文乱码,解决办法是重装了一下JDK。 我之前安装的版本是“jdk-21_windows-x64_bin.exe”,我配置了多个JDK环境,所以使用的是安装文件进行安装的。这次解决乱码问题,我重新安…

力软vue前端开发:使用params跳转传参404问题解决

问题描述 this.$router.push({ name: page, query: { id: 001 } }) // 根据路由名称 query 的方式跳转传参 使用query传参时,参数会拼接在链接后,点击搜索条件链接参数也还在。用户需要重新进入搜索页面。 所以,使用nameparams进行传参。参…

【Linux】vim-多模式的文本编辑器

本篇文章内容和干货较多,希望对大家有所帮助👍 目录 一、vim的介绍 1.1 vi 与 vim的概念1.2 Vim 和 Vi 的一些对比 二、vim 模式之间的切换 2.1 进入vim2.2 [正常模式]切换到[插入模式]2.3 [插入模式]切换至[正常模式]2.4 [正常模式]切换至[底行模式…

nodejs+vue+python+PHP+微信小程序-书吧租阅管理系统的设计与实现-安卓-计算机毕业设计

在当今高度发达的信息中,信息管理改革已成为一种更加广泛和全面的趋势。为确保中国经济的持续发展,信息时代日益更新,书吧租阅管理系统仍在蓬勃发展。同时,随着信息社会的快速发展,各种管理系统面临着越来越多的数据需…

spring-framework-5.2.25.RELEASE源码环境搭建

环境准备 spring-framework-5.2.25.RELEASEIntelliJ IDEA 2022.3.1java version “11.0.20” 2023-07-18 LTSGradle 5.6.4java version “1.8.0_301” 下载spring-framework-5.2.25.RELEASE源码 git clone https://gitee.com/QQ952051088/spring.git cd spring gradlew buil…

30系列显卡在ubuntu下不能满血运行的问题

之前发现在ubuntu下,我的3080只能跑115w最高,而这在win下是可以跑165w的。于是乎google了所有结果,无解… 现已经过去一年,显卡价格飞涨,无奈只能使用笔记本跑自己的代码了。结果发现nvidia推了Linux下的动态加速&…

jQuery_05 事件的绑定

jQuery可以给dom对象添加事件 在程序执行期间动态的处理事件 jQuery如何绑定事件呢? 1. $("选择器").事件名称(事件处理函数) $("选择器") : 选择0或者多个dom对象 给他们添加事件 事件名称:就是js中事件名称去掉on的部…

Linux 命令vim(编辑器)

(一)vim编辑器的介绍 vim是文件编辑器,是vi的升级版本,兼容vi的所有指令,同时做了优化和延伸。vim有多种模式,其中常用的模式有命令模式、插入模式、末行模式:。 (二)vim编辑器基本操作 1 进入vim编辑文件 1 vim …

河南省第五届“金盾信安杯”网络与数据安全大赛实操技能赛 部分wp(自己的一些思路和解析 )(主misc crypto )

芜湖 不评价 以下仅是自己的一些思路和解析 有什么问题或者建议随时都可以联系我 目录 题目一 来都来了 操作内容: flag值: 题目二 Honor 操作内容: flag值: 题目三 我看看谁还不会RSA 操作内容: flag值&a…

3. 内存单元

1位的内存单元 对于一个内存单元需要有:1个锁存器,数据输入,可写控制,是否读取(也是是否输出), 行和列(内存地址), 数据输出这几部分组成写入: 当行和列, 数据输入,可写全为1时则写入,(行 & 列 & 输入 & 可写)读出(输出): 当 行,列, 是否读取(也是是否输出) ( 行 …

c语言练习12周(6~10)

以下程序调用递归函数fun实现求n!,请补充代码。 题干以下程序调用递归函数fun实现求n!,请补充代码。 int fun(int n) { int c; /****************/ /****************/ else cn*fun(n-1); …

【云备份】文件操作实用工具类设计

文章目录 为什么要单独设计文件工具类?整体实现Filesize ——文件大小stat接口 LastMTime ——最后一次修改时间LastATime —— 最后一次访问时间FileName —— 文件名称GetPostLen ——获取文件指定位置 指定长度的数据GetContnet —— 读取文件数据SetContent ——…

在 Linux 中重命名文件和目录

目录 前言 使用 mv 命令重命名文件和目录 通过组合 mv、find 和 exec 命令重命名与某个模式匹配的多个文件 使用 rename 命令轻松重命名多个文件 总结 前言 在这篇基本命令行教程中,你将学习在 Linux 终端重命名文件和目录的各种方法。 如何在 Linux 终端中重命…

Sublime Text 3 安装离线插件 anaconda

1 下载 Sublime Text 3 免安装版 Download - Sublime Text 2 下载 Package Control,放到 Sublime Text Build 3211\Data\Installed Packages 目录下。 Installation - Package Control 3 页面搜索 anaconda anaconda - Search - Package Control Anaconda - Pac…