疯狂马斯克的“极限”计划居然成功了?!“下云”后成本降低 60%,部分功能代码精简 90%,30 天急速迁移服务器

2023-11-01 19:11:27 浏览数 (2)

整理 | 凌敏、核子可乐

2022 年 10 月 27 日,经历了长达半年的拉锯战之后,马斯克终于将 Twitter(现已更名 X)收归囊中,这笔 440 亿美元的收购案也终于迎来了大结局。入主 Twitter 后,马斯克进行了大刀阔斧的改革,如今一年过去了,Twitter 发生了哪些变化?

2023 年 10 月 27 日,X 工程技术发布帖子称,过去一年是 X(Twitter)平台全面推进工程技术探索的一年。除了大家在 X 应用端看到的直观调整之外,团队还在幕后完成了以下一系列重要改进。其中包括:

  • 关闭萨克拉门托数据中心,并重新配置了 5200 台机架和 14.8 万台服务器,每年节约超 1 亿美元。共释放出 48 兆瓦的功率配额、拆除重达 6 万磅的网络梯架,必要设备后续将被重新配置至其他数据中心。
  • 优化了 X 的云服务使用方式,着手将更多工作负载迁往本地基础设施。这一转变使 X 每月的云成本降低了 60%。所有媒体 /blob 工作均已下云,这让 X 的整体云数据存储量缩减了 60%,还成功将云数据处理成本降低了 75%。

此外,X 还发生了以下变化:

  • 围绕单一产品框架整合了 For you(为您推荐)、Following(关注)、Search(搜索)、Profiles(个人资料)、Lists(列表)、Communities(社区)和 Explore(探索)等技术栈。
  • 从头开始全面重建了 For you 服务与排名系统,代码行数从 700K 缩减至 70K,精简比例高达 90%,计算占用量降低 50%,根据请求得分计算的帖子吞吐量增长了 80%。
  • 统一了 For you 和视频个性化及排名模型,显著提高了视频推荐的质量。
  • 重构了技术栈内的 API 中间件层,通过删除超 10 万行代码和数千个未实际使用的内部端点、清理未采用的客户端服务等方式完成了架构简化。
  • 精简后的元数据获取延迟降低了 50%,全局 API 超时错误减少了 90%。
  • 阻断 bot 和内容抓取的速度较 2022 年提高了 37%。平均而言,X 每天阻断超 100 万次 bot 注册攻击,并将直接垃圾邮件减少了 95%。
  • 构建本地 GPU 超级计算集群,并设计、开发和交付了 43.2 Tbps 的新网络体系架构以支持这些集群。
  • 扩展网络主干容量与冗余,每年节约 1390 万美元。
  • 开始进行自动峰值流量故障转移测试,用以持续验证整个平台的可扩展性与可用性。

自接手 X 以来,马斯克为了缩减成本挖空心思,其中包括裁员、推行“极端硬核”企业文化、拖欠办公室租金……在公司的运营开支方面,马斯克去年刚接手 X 时便指示团队通过削减云服务和额外的服务器空间,力争每天在基础设施上节省 300 万美元。

1 省钱大法一:云服务太贵了,马斯克要“下云”

2020 年 12 月,Twitter 宣布将使用亚马逊云科技为其主时间线提供支持。当时的消息称这将是一份“多年期”协议,但没有透露任何具体数字。彼时 Twittr 公司 CTO Parwal Agrawal 在一份声明中表示,Twitter 和亚马逊云科技将合作扩展该社交媒体的基础设施、加快功能发布速度,并扩大其功能组合。

据 The Information 2023 年 3 月报道,这笔交易为期五年半,合同总值 5.1 亿美元。根据报道,无论是否使用相应容量,Twitter 都同意向亚马逊云科技付费。而且亚马逊云科技不愿就具体条款进行重新谈判。根据交易细则,Twitter 的月度亚马逊云科技支出大约在 773 万美元

如今,Twitter 已经不再使用亚马逊云科技的实时时间线功能,转而选择了 AWS for Spaces 等其他服务。Twitter 后续可能使用 Google Cloud Platform(GCP)运行其时间线业务。根据 Twitter 与亚马逊云科技之间签订的合同细节,马斯克执掌的社交媒体巨头还计划使用:

  • 亚马逊云科技云基础设施,用于补充 Twitter 的本地功能,帮助该公司在全球范围内扩展其实时服务。
  • 采用 Amazon Elastic Compute Cloud (Amazon EC2) 服务中基于 Arm 架构的亚马逊云科技 Graviton 2 实例,以运行其云工作负载。
  • 借助亚马逊云科技容器服务,Twitter 将在其混合基础设施当中统一构建并交付新的功能和服务。
  • Amazon CloudFront,即亚马逊云科技的超高速内容交付网络(CDN)服务,能够以低延迟、高速率向全球客户分发数据、应用程序、视频和 API。
  • Amazon DynamoDB,即亚马逊云科技的键值数据库,可大规模提供个位数毫秒级性能。

目前,Twitter 已经与谷歌签订了一份价值 10 亿美元的合同,且相关承诺早在与亚马逊云科技合作之前就已敲定。另据报道,Twitter 将在 2023 年向谷歌支付总计 3 亿美元,这也是总价值约 10 亿美元的多年期合作协议的一部分。

随着马斯克入主 Twitter 并开启削减成本计划,Twitter 的基础设施支出大幅减少。根据题为“深度削减成本”的 Slack 内部消息,Twitter 计划从云服务和服务器容量方面入手,省下 150 万到 300 万美元。此外,Twitter 还试图与亚马逊云科技、Google Cloud 以及甲骨文就合同内容展开重新谈判,但供应商们纷纷表示拒绝。

根据最新公告,马斯克通过将工作从云端转移到 Twitter 自己的服务器上,每月的云成本降低了 60%,整体云数据存储量缩减了 60%,还成功将云数据处理成本降低了 75%。

下云就能解决问题?

近年来,为了节省成本,不少公司开始下云。不过,并非所有公司都适合下云,需要结合自身实际业务情况来做判断。比如,GitLab 在 2016 年底时候就表示计划要“下云”,不过团队“在收到数百条充满建议和警告的评论和邮件后,最后还是决定将 GitLab.com 保留在云端。

此外,37signals 旗下一款流行的基于云服务的项目管理软件 Basecamp 也曾想“下云”。Basecamp 的上云历程已经超过十年,而且其前两年发布的产品 HEY 也一直在云端运行。但 Basecamp & HEY 联合创始人 David Heinemeier Hansson 发文表示将要“下云”。

“我们用过亚马逊云科技、也用过谷歌云,试过裸虚拟机、也体验了 Kubernetes 容器编排。我们知道云能提供哪些功能,其中大部分都有实际应用。现在我们终于得出结论:对于像我们这样一家增长稳定的中型企业来说,租赁基础设施资源总体上看是笔糟糕的买卖。云服务商做出的降低复杂性、控制运营成本等承诺从来就没能实现,所以我们正在筹划脱离云端、重归本地。”

不过,在 David Heinemeier Hansson 撰写的关于离开云计算的思考中,他特别提到了两个情况是不能离开云计算的。一种是流量极低,一种是复杂不均衡:

  • 第一个极端是当您的应用程序非常简单且流量很低,通过使用完全托管的服务来降低复杂性确实能够节省成本。这是 Heroku 铺就的道路,也是 Render 等其他服务商所追随的道路。当您没有客户时,这是一个绝佳的起点,即使在您开始拥有一些客户后,它仍能推动您的业务发展。(然后,一旦使用量激增,账单飙升到天际线上时,您可能会面临一个好问题,但这是一个合理的权衡。)
  • 第二个极端是当您的负载非常不规则时。当您的使用量出现剧烈波动或巨大峰值时。当基线只是您最大需求的一小部分时。或者当您不知道您需要十台服务器还是一百台时。在这种情况下,没有什么比云端更好了,就像我们在推出 HEY 时学到的那样,突然有 30 万用户在三周内注册尝试我们的服务,而我们的预测是六个月内有 3 万用户。

2 省钱大法二:数据中心大迁移

为了节省成本,去年 12 月,马斯克还关闭 Twitter 加州数据中心。

据悉,在平安夜前夕,纳斯克飞往加利福尼亚州的萨克拉门托——Twitter 三大主要计算存储设施之一的所在地——切断了维持该社交网络平稳运行的服务器。有知情人士表示,虽然有员工担心关闭这些服务器可能导致各种问题,但节省资金是首要任务。

随后,世界各地的用户报告 Twitter 服务中断。一些用户反馈 Twitter 出现很多奇怪的错误消息,比如看到空白页面、无法回复推文或关注热门话题,还有人被迫退出登陆。有熟悉 Twitter 基础设施的人士表示,如果萨克拉门托的设施仍在运行,它就可以在其他数据中心出现故障时提供备份计算能力,从而帮助缓解问题。

此外有消息称,当时马斯克为了省钱,计划将萨克拉门托的服务器搬到波特兰,基础设施团队称这项工作至少要九个月才能完成,马斯克一怒之下直接搭乘私人飞机跑去机房,拔了网路线与电源就搬上大卡车开始转移,最后整个工作一个月就完成了。

在今年 9 月出版的《埃隆·马斯克传》中,详细讲述了马斯克亲自迁移服务器的故事(节选,经编辑):

2022 年 12 月 22 日深夜,位于 X 公司 10 楼的会议室,马斯克正在与两名基础设施经理进行紧张的交谈。 位于萨克拉门托的一家数据服务公司允许 X 公司延长其服务器租约,以便在 2023 年有序迁出。一名显得有些紧张的基础设施经理告诉马斯克:“今天早上,他们回来告诉我们说这个计划不再适用,因为他们认为我们在财务上不再稳健。” 这个设施每年花费 X 公司超过 1 亿美元。马斯克想通过将服务器迁移到 X 公司在俄勒冈州波特兰的其他设施来节省这笔费用。另一位经理表示这项工作不能立即进行。她平静地说:“我们至少需要六到九个月的时间,因为萨克拉门托仍然需要服务流量。” 马斯克沉默了几秒钟,然后宣布:“你们有 90 天时间来完成这项任务。如果你们做不到,你们可以辞职。”这名经理开始详细解释迁移服务器到波特兰的障碍。“机架密度不同,电力密度也不同,”她说。“所以机房需要进行升级。”她开始详细介绍更多原因,但被马斯克打断。“这让我的大脑感到压抑,”马斯克说道,“你知道头爆炸的表情符号吗我的脑袋现在就是这个感觉。真是一堆屁话。波特兰明显有大量的空间,从一个地方迁移到另一个地方简直小菜一碟。” “你们需要做的就是将服务器迁移到波特兰,”马斯克说道,“如果超过 30 天,我会很震惊。”他停顿了一下,重新计算。“找一家搬家公司,运输电脑需要一个星期,然后再花一个星期来连接它们。两周。就应该这样。” 所有人都默不作声。但马斯克仍在发火。“如果你们租了一个 U-Haul (一家租车公司),你们可能自己就能完成。”两位 X 公司的经理看着他,试图判断他是否是认真的。马斯克的两位亲密助手 Steve Davis 和 Omead Afshar 也在场。他们多次看到过他这样,知道他可能真的这么认为。 12 月 23 日星期五晚上,James 和他的弟弟 Andrew(马斯克的表弟)与马斯克一起从旧金山飞往奥斯汀,当飞机飞过拉斯维加斯时,James 提出了一个建议,他们现在就可以移动服务器。一个名为 Alex 的来自乌兹别克斯坦的 X 员工帮助他们进入了 X 公司的数据中心,内部共有大约 5200 个冰箱大小的机架,每个机架有 30 台电脑。每个机架重约 2500 磅,高 8 英尺。但马斯克认为“这些东西看起来并不难移动”,他向保安借了一把小刀,抬起地板上的一个通风口,这让他可以撬开地板面板。然后他爬到服务器下面,用小刀撬开了一个电箱,拔掉了服务器插头,等着看会发生什么。没什么异常发生。服务器已经准备好迁移。 第二天——圣诞前夜,马斯克召集了增援。Ross Nordeen,与他的朋友 James 在 Tesla 工作,从旧金山驱车而来。他在联合广场的 Apple Store 花了 2000 美元,买下了所有的 AirTags,这样服务器在迁移过程中就可以被跟踪。然后他去了家得宝,花了 2500 美元买了扳手、断线钳、头灯和拧下地震螺栓所需的工具。 Steve Davis,马斯克的忠诚副手,找人租了一辆半挂车,并安排了搬家车。其他来自 SpaceX 的援助队员也已到达。这些服务器机架都有轮子,所以团队能够断开其中四个并将它们推到待命的卡车上。这表明,这五千两百多个服务器可能在几天内全部移动。“伙计们干得好!”马斯克兴高采烈地说。 到这周结束时,他们已经使用了萨克拉门托所有可用的卡车。尽管该地区受到了雨的袭击,他们在三天内移动了 700 多个机架。该设施之前的记录是一个月移动 30 台。这仍然留下了大量的服务器在设施中,但这群人已经证明了它们可以被快速移动。其余的部分在 1 月份由 X 公司的基础设施团队处理。

马斯克的疯狂举动引发了不少争议。网友海狗油 90 认为,“几乎没有人明白数据中心搬迁要搬的是服务、数据,而不是服务器本身,也不明白 X 这样的公司,服务连续性、数据一致性值多少钱。”

网友酷憋哥评论称:“除了证明马斯克胆子大,这个案例没有什么正面的意义,试想一下,哪个普通打工人可以做出这么鲁莽的决定?他或她是否能承担由这种行为导致的严重后果?所以最终只有老板能做这种事情,只要他愿意。”

参考链接:

https://twitter.com/XEng/status/1717754398410240018

https://www.cloudzero.com/blog/twitter-aws

https://twitter.com/thecat/status/1705860673149059115

https://weibo.com/1727858283/NkRTyymTQ

0 人点赞