HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

唯一维护 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:5911039

评论 1 条评论

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

信道的定义和分类

timerring

信息论

云安全技术管理

阿泽🧸

云安全 三周年连更

2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位上的数字。 1 <= n <=

福大大架构师每日一题

golang 算法 rust 福大大

Mac 电脑解决无法使用uiautomator viewer的问题

IT蜗壳-Tango

三周年连更

一文读懂Stable Diffusion教程,搭载高性能PC集群,实现生成式AI应用

GPU算力

Java HashMap 的常用方法,Java工程师必知!

Java架构历程

Java hashmap 三周年连更

2023-04-30:用go语言重写ffmpeg的resampling_audio.c示例,它实现了音频重采样的功能。

福大大架构师每日一题

Go 音视频 ffmpeg 流媒体 福大大

【愚公系列】用友系列之YonBuilder低代码平台概论和基本使用

愚公搬代码

光粒科技亮相AWE 2023展会,Holoswim2智能泳镜沉浸式领航

科技热闻

模块1-学生管理系统架构设计

冲虚

区块链技术是什么?比特币又是什么?硕士是区块链研究方向,就业怎么办?

千与编程

区块链+ 研读版

在 Python 中如何使用 format 函数?

海拥(haiyong.site)

三周年连更

ssh 连接Linux确实很安全,这6种身份验证方法很强!

wljslmz

Linux SSH 三周年连更

挑战 30 天学完 Python:Day16 时间datetime

MegaQi

挑战30天学完Python 三周年连更

OpenGL入门三:变换原理简介

轻口味

opengl 三周年连更

Intelligent Enterprise 和 企业数字化转型的关联关系

汪子熙

人工智能 数字化管理 三周年连更

Go语言开发小技巧&易错点100例(六)

闫同学

三周年连更

通过ChatGPT来写论文

石云升

AIGC ChatGPT 三周年连更

《人生第一次》有感

后台技术汇

三周年连更

微信业务架构图

冲虚

Linux 文件与目录管理

鸿蒙之旅

Linux 三周年连更

Mac M1 8G丐版尝试本地部署Stable Diffusion

IT蜗壳-Tango

三周年连更

【Python实战】Python采集情感音频

BROKEN

三周年连更

通过ChatGPT快速学习英语

石云升

AI ChatGPT 三周年连更

《写好README很重要》

后台技术汇

三周年连更

算法题每日一练:矩阵置零

知心宝贝

数据结构 算法 前端 后端 三周年连更

Matlab凸优化算法

袁袁袁袁满

三周年连更

Go 为什么不支持可重入锁?

乌龟哥哥

三周年连更

平凡而不凡,那些用键盘改变世界的“新型劳动者”

开放原子开源基金会

开放原子全球开源峰会

如何用 python 设计一个兑奖程序?

海拥(haiyong.site)

三周年连更

文心一言 VS chatgpt (13)-- 算法导论3.1 8题 3.2 1题

福大大架构师每日一题

福大大 ChatGPT 文心一言

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