阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

唯一维护 API 的普通工程师轻松搞垮 Twitter,马斯克:我们重写代码吧

  • 2023-03-07
    北京
  • 本文字数:2663 字

    阅读完需:约 9 分钟

唯一维护 API 的普通工程师轻松搞垮 Twitter,马斯克:我们重写代码吧

当地时间周一上午,Twitter 网站又出了新故障。

 

有 Twitter 用户在登录之后发现了一大堆相互关联的问题。首先是单击链接无法跳转,反而弹出了一条神秘的错误消息,称“您当前的 API 计划不包括对此端点的访问权限”。

 

“我猜这意味着 Twitter 非常需要现金,它开始收取 Twitter API 访问权限费用,但 Twitter 自己无法支付这笔费用。”普林斯顿计算机科学教授Arvind Narayanan发布推文略带调侃地评论道。

 


 Narayanan 还写道:“雪上加霜地是,每个人都在发布错误消息的屏幕截图,但图像也被破坏了。”是的,Twitter 上的图片之后也无法正常加载了。此外,还有用户报告称无法访问 Twitter 推出的专业用户客户端 TweetDeck。

 

“Twitter 破烂到可以拿来开玩笑,但功能足够强大,我们可以*在 twitter 上*拿它开玩笑,这是硬核软件的柏拉图式理想,”技术分析师 Benedict Evans在这个不稳定的社交媒体网站上打趣道。

 

随着图片加载功能的失灵,Twitter 开始陷入一片混乱,无数用户奔走相告关于这次故障的消息。有网友指出是“对 Twitter API 的传入和传出访问被破坏了”,推文底下有网友抱着“看热闹不嫌事大”的心态称:“这个应用程序坏了会更有趣”。

 

在一条推文中,该公司做了一番相当模糊的解释:Twitter 的某些部分现在可能无法按预期工作。我们开展了内部调整,但产生了一些意想不到的后果。问题随后得到确认,引发故障的原因是变更 Twitter API 免费访问关闭计划导致的。

 

2 月 1 日,该公司宣布将不再支持免费访问其 API,这实际上终结了第三方客户端的存在基础,也极大限制了外部研究人员研究 Twitter 网络的能力。该公司一直在构建新的付费 API 以供外部开发者使用。

 

值得注意的是,Twitter 于 2014 年针对第三方应用开发商封杀了有关用户数据的开发接口,之后严格限制用于登录的令牌,开发人员必须向 Twitter 付费才能使用其 API。后来,Twitter 创始人Jack 表示,这是“我们做过的最糟糕的事情”,并辩解说他“当时没有在经营公司”,还表示“公司一直在努力将其重新完全开放。”

 

一人维护,关闭了自己的内部访问

 

据悉,马斯克的大幅裁员计划令 Twitter 的工程师数量锐减,最终导致只有一人参与到涉及平台 API 的重大项目当中。

 

据一位现任员工称,周一这个唯一的现场可靠性工程师执行了一次“错误的配置变更,基本上破坏了 Twitter API 的正常运作。”此变更还在公司内部引发了连锁反应,导致 Twitter 多款内部工具和面向公众 API 全部瘫痪。工程师们一边手忙脚乱地解决问题,一边在 Slack 上呼喊着“完了”、“Twitter 整个宕机了”。

 

据说马斯克在得知情况后非常愤怒。

 

当天晚些时候,马斯克发推文说,“API 的一个小改动会产生巨大的影响。代码堆栈已经极度脆弱,最终需要完全重写。”在此之前,Twitter 投资人 Marc Andreessen 也曾发布了一张截图,显示该公司的 API 故障正在网站上蔓延。

 


 “马斯克的解释似乎偏离了真正的原因。看起来马斯克只是不了解他的技术堆栈中的依赖关系,并且在试图切断对免费外部用户的访问时,无意中下令关闭了 Twitter 对它们自己的 API 内部访问。”专栏作者 Ahmed Bab 评论道。

 

马斯克接管 Twitter 时,曾承诺会大幅提高网站运行速度和稳定性。他的同事对员工的技术水平进行了筛选,最终裁掉了几千名“能力”不足以在马斯克治下取得成功的员工。

 

内部员工已见怪不怪

 

但不间断裁员,导致 Twitter 公司现在只剩不足 550 名全职工程师,有媒体统计马斯克已经裁掉了约 80%的员工。如今事态也符合前员工们当初的预想,人员流失导致 Twitter 越来越频繁地曝出灾难性宕机事件。

 

本周一的错误配置变更,已经是 Twitter 今年以来第六次造成广泛影响的服务宕机:

 

  • 1 月 23 日,Androiod 用户暂时无法加载或发布新推文。

  • 2 月 8 日,一条错误消息提醒用户“您已超过每日推文发送上限”,导致其无法正常发帖。

  • 2 月 15 日,推文无法加载。

  • 2 月 18 日,推文时间线中断,回复消失。

  • 3 月 1 日,时间线无法正常工作。

 

以上提到的还只是服务宕机。此外,马斯克的推文在时间线上比其他用户更显眼等问题,也扰乱了用户的正常体验。

 

一名现任员工称,“这类中断事故已经越来越频繁,我甚至感觉大家开始变得麻木了。”据悉 Twitter 总部内的气氛很是“轻松融洽”。有一位员工表示,“从始至终,我们一直都笑呵呵的。”

 

由于 Twitter 已经没有多少经验丰富的员工能够恢复服务,Twitter 花了一上午才解决掉这个问题。“把员工裁掉 90%,就必然是这样的结果。”

 

从种种方面来看,本周一的宕机事故代表着马斯克对 Twitter 公司的影响已经达到顶峰。为了一心一意赚回 440 亿美元的收购成本,马斯克一直在裁员并缩减 Twitter 提供的免费服务。

 

一名工程师被迫需要独力负责一个重大项目,最终导致这个同时为用户和员工服务、与多个关键系统相互关联的项目突然“爆雷”。

 

技术债也要背锅?

 

不过也有部分现任员工认为,Twitter 目前的很多技术隐患早在马斯克接手之前就已经存在。当初的 Twitter 之所以被戏称作“失败的鲸鱼”,并不无道理。

 

有位现任员工提到,“Twitter 1.0 带来了太多的技术债务。如果现在做出变更,那么一切都会崩溃。”

 

比如,Twitter 在早期开发时,MVP 选用了 Rails。快速的开发能力带来了快速的产品验证,然而 Rails 的低效使得 Twitter 很快在技术上触及了天花板:2007 年左右,Twitter 动不动就挂,甚至一度挂了三天。后来,新的技术主管上任后大刀阔斧地做了债务重组,摒弃 Rails,拥抱 Java 生态圈,用 scala 重写很多核心服务,终于把服务稳定下来。

 

2011 年时,Twitter 还遇到了站点稳定性问题,当时使用 HTTP 协议的 Twitter API 时,如果调用 statuses 或者 home_timeline 的 OAuth 方法将会产生一些问题。

 

不过,如今掌舵推特的马斯克是否真正关心 Twitter 的技术债还不得而知。

 

此前,马斯克在推特上表示,“对于 Twitter 在许多国家/地区的超慢速度,我深表歉意。应用正在执行超过 1000 个批处理不当的 RPC,只是为了渲染一个主页时间轴!”

 

随后,当时还在 Twitter 的工程师 Eric Fronhoefer 公开指出马斯克的错误,给出的原因中也包括多年的技术债让 Twitter 用速度和功能换取性能,但他第二天就被解雇了。

 

不过有趣的是,Fronhoefer 当时还指出,“我们可能应该优先考虑一些重大的重写,以对抗 10 多年的技术债务,并呼吁积极删除功能。”

 

而如今,马斯克也在推文中表示要完全重写。

 

虽然这次 Twitter 设法在几小时后就顺利恢复了过来,但故障背后的故事似乎昭示着,后头还有更多的麻烦在等着马斯克。

 

参考链接:

 

https://www.theverge.com/2023/3/6/23627875/twitter-outage-how-it-happened-engineer-api-shut-down

2023-03-07 13:5910918

评论 1 条评论

发布
用户头像
领导层换了,重构可能是了解当前系统最快的方式?
2023-03-07 21:27 · 北京
回复
没有更多了
发现更多内容

喜报|HarmonyOS开发者社区连获业内奖项,持续深耕开发者生态

HarmonyOS开发者

HarmonyOS

一图回顾博睿数据的2022

博睿数据

年度报告 博睿数据

tomcat8和tomcat7性能比较

五毛

tomcat 压测分析

如何通过Java代码在PDF中插入、替换或删除图像?

在下毛毛雨

Java PDF 图像

Transformer 再添一员,比 Swin 更强的 DiNAT

Zilliz

告警与恢复告警原理及实现

KaiwuDB

告警 多模数据库 恢复告警 数字能源

2022最新MySQL高频面试题汇总

程序员大彬

MySQL 数据库 计算机

“祝福海报”小程序走红,AIGC走进“千家万户”

科技热闻

正式起航!用友23大行业客户与解决方案事业部全面亮相

用友BIP

用友BIP

【最佳实践】TiDB 同步&迁移实战 (从 MySQL/Oracle/PostgreSQL/MongoDB 到 TiDB )

TiDB 社区干货传送门

Electron打包错误的踩坑小记

茶无味的一天

前端 Electron Node electron实战

全球化商家平台技术探索与演进

阿里技术

全球化 架构演进

TiDB PPT玩家快速点评 V6.5 新特性

TiDB 社区干货传送门

版本测评

设计文档概述

五毛

设计原则

视觉模型 ConvNeXt V2,结合纯卷积与MAE

Zilliz

计算机视觉

TiDB CDC v6.5.0 新特性实践

TiDB 社区干货传送门

实践案例 新版本/特性发布 6.x 实践

深入浅出学习透析Nginx服务器的架构分析及原理分析「底层技术原理+运作架构机制」

洛神灬殇

nginx 负载均衡 反向代理 优化架构

TiCDC 源码解读(4)-- TiCDC Scheduler 工作原理解析

TiDB 社区干货传送门

TiCDC 源码解读

KaiwuDB 数据服务平台 1.0 产品详解

KaiwuDB

时序数据库 多模数据库 数据服务平台

从管事到管人

石云升

极客时间 1月月更 技术领导力实战笔记

我理解的卓越工程

agnostic

卓越工程

QEMU与KVM架构介绍

Linux内核拾遗

Linux 虚拟化 qemu kvm

有什么方法从 PostgreSQL 数据迁移到 TiDB ?

TiDB 社区干货传送门

迁移 实践案例 管理与运维

KaiwuDB CTO 魏可伟:1.0 时序数据库技术解读

KaiwuDB

时序数据库 多模数据库 技术优势

赛意信息张成康:在行业场景驱动下为企业创造数字化价值

科技热闻

湖仓一体电商项目(十七):业务实现之编写写入DIM层业务代码

Lansonli

湖仓一体电商项目

京东探索研究院 | 2023年十大科技趋势

京东科技开发者

京东 技术分享 京东云 技术预测 企业号 1 月 PK 榜

企业数字化转型,工具先行

SoFlu软件机器人

模块二作业 (架构实战训练营)

Justin

架构实战营

开源SPL强化MangoDB计算

石臻臻的杂货铺

开源 SPL

Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】Task2 数据分析

一颗小树

唯一维护 API 的普通工程师轻松搞垮 Twitter,马斯克:我们重写代码吧_语言 & 开发_褚杏娟_InfoQ精选文章