标签 软件工程 下的文章

对话 Uber 前 CTO:我如何用 5000 个微服务驯服这头失控的巨兽

本文永久链接 – https://tonybai.com/2026/05/10/scaling-uber-with-thuan-pham

大家好,我是Tony Bai。

在硅谷的黄金时代,曾有一家公司以一种近乎“暴力”的美学,重新定义了增长的速度。它的名字叫 Uber。

在最癫狂的岁月里,它以“周”为单位攻占新的城市,用海量的资本和补贴点燃市场,其业务增长曲线陡峭得如同悬崖峭壁。

但在这场增长的狂欢之下,是一套摇摇欲坠、濒临崩溃的技术系统。

2013 年,当 Tuan Pham(后来被称为 Uber 的“救火队长”)加入时,这家拥有 40 名工程师的公司,系统每周都会崩溃数次。而他面临的第一个挑战,就是公司的核心派单系统,只剩下 5 个月的寿命。

近日,这位传奇 CTO 接受了一次深度访谈。他不仅首次揭秘了当年与创始人 Travis Kalanick (以下称TK) 长达 30 小时的“魔鬼面试”,更详细复盘了 Uber 是如何在失控的边缘,被迫走上那条被全网群嘲、却又别无选择的 “5000 微服务” 之路。

今天,就让我们跟随 Tuan 的视角,重返那个硝烟弥漫的战场。

从船民到 MIT:一段关于生存的开端

Tuan Pham 的人生开局,堪称地狱模式。

他出生于越南,是战争的亲历者。1975 年后,由于家庭背景,他和家人被迫成为“越南船民”,挤在破旧的渔船上,冒着不足 50% 的生还率,在深夜逃离故土。

在海上漂泊了四天三夜,躲过风暴和海盗,他们最终在马来西亚登陆,却又被拖回大海,最终被印尼的一个荒岛收留。

一年后,他们以难民身份来到美国。身无分文,不懂英语,第一套衣服来自教堂的捐赠衣橱。

“生存”,是刻在他骨子里的第一性原理。

和很多技术天才一样,Tuan 在数学上展现了过人的天赋。高中时,他靠着一台有两个软盘的 IBM PC 自学了编程,甚至用脚本语言帮政府机构把需要 3 周才能完成的财务对账工作,压缩到了 3 小时。

凭借着优异的成绩和推荐信,他被 MIT 录取,正式开启了他的计算机科学之旅。

血泪的教训:两场失败,塑造了 Uber 的基因

在加入 Uber 之前,Tuan 的职业生涯并非一帆风顺。但正是这些宝贵的“失败”,让他积累了足以驾驭 Uber 这头巨兽的认知。

第一场失败,在 SGI(硅谷图形公司)

上世纪 90 年代,他参与了一个极其超前的项目——交互式电视。在那个连手机和互联网都还没普及的年代,他们已经实现了“视频点播、在线购物”。斯皮尔伯格、迈克尔·杰克逊都来参观过。但这个项目最终惨败,因为机顶盒的成本高达 4.5 万美元。这让他得到一条教训:光有伟大的技术没用,你必须在正确的时间、以正确的价格,出现在正确的市场。

第二场失败,在 NetGravity(一家互联网广告公司)

他们发明了动态广告系统,并成功上市。但另一家比他们晚成立的公司,靠着更轻量的“广告服务(Ad Service)”模式,野蛮生长,最终被 Google 收购。而他们,因为董事会要求“优先盈利”,错失了市场。这让他得到了另外一条教训:当市场窗口期出现时,增长速度压倒一切,哪怕是以亏损为代价。

这两条从真金白银和血泪中总结出的铁律,仿佛就是为日后的 Uber 量身定制的。

30小时的“魔鬼面试”:与 TK 的灵魂拷问

离开 VMware 后,Tuan 并未主动寻找工作。是 Benchmark 的传奇投资人 Bill Gurley(也是 Uber 的早期投资人)找到了他。Bill Gurley 认识 Tuan,源于十几年前那家失败的广告公司。

Tuan 在访谈中反复强调一个观点:

“我从不刻意经营人脉。你只需要把你手头的每一份工作做到极致,真诚地对待你身边的每一个人。随着时间推移,你的声誉会为你打开所有的大门。”

当他见到 Uber 的创始人 Travis Kalanick (TK) 时,一场长达 30 小时、横跨两周的马拉松式面试开始了。

TK 在白板上写下了密密麻麻的清单:从招聘开除、到代码质量、再到团队文化……他们每天 Skype 两小时,一个一个地辩论。

Tuan 回忆道,那根本不像面试,更像是两个合伙人在激烈地碰撞思想。有一次,聊到一半 TK 要赶飞机,他直接拿起电话让助理改签,然后继续辩论。

T.K. 对技术细节的痴迷,和近乎偏执的激情,让 Tuan 意识到,这是一个将技术视为公司命脉的创始人。

面试的最后,Tuan 发现,这 30 小时其实是一场“模拟工作”。TK 在用最高成本的方式,去观察当他们意见相左时,是否还能有效地沟通、并最终达成共识。

微服务之殇:我们根本不想搞 5000 个微服务!

Tuan 加入 Uber 时,公司只有 40 个工程师,但系统每周都会宕机数次。整个后端是一个巨大的单体应用,派单系统是用单线程的 Node.js 写的。为了扩容,工程师们只能不断地把程序挪到 CPU 更快的机器上(垂直扩容)。

Tuan 问团队:“如果最快的 CPU 也扛不住了怎么办?”

工程师说:“那就换一个有多颗 CPU 的机器。”

Tuan 再问:“那这些进程之间怎么共享状态?”

团队沉默了。

Tuan 迅速算出,当时最大的城市纽约,将在 5 个月后彻底冲垮派单系统的物理上限。

重写,是唯一的活路。

他只提了两个要求:1. 一个城市必须能被多台机器支撑;2. 一台机器必须能支撑多个城市。 没有新功能,只要活下去。

最终,团队在 8 月份惊险上线了新系统,暂时续上了命。

但真正的噩梦,来自那个名为 API 的巨型单体应用。随着业务的爆炸式增长(UberX 上线、新城市扩张),这个单体应用成了所有团队的瓶颈。任何一个新功能,都可能要排队等好几个团队的开发资源。

为了活下去,Tuan 和 TK 做出了那个后来被全行业“群嘲”的决定:

“任何新功能,一律不许再往单体里加!必须作为独立的服务(Microservice)去开发。”

同时,成立一个专门的团队,去把旧的单体应用一块块“拆骨”。

这个拆骨项目,代号“达尔文(Darwin)”。Tuan 苦笑道,如果时间静止,这个项目 3-6 个月就能搞定。但他们花了整整两年。

因为在他们拆解的同时,业务的增长速度比他们拆解的速度还要快!新功能被疯狂地加回到那个正在被拆的单体里。

“当你把一块代码剥离出去后,剩下的部分因为业务增长,变得比你剥离出去的还要大。我们就像在追着自己的尾巴跑。”

5000 个微服务,不是一个被精心设计出来的架构蓝图。它是在极端增长压力下,为了让几百个工程师能够并行开发、不互相阻塞,而被迫做出的“最不坏”的选择。

这是 Uber 用每年几亿美元的服务器成本,换来的开发速度。

中国速度:两个月,拿下中国市场

在 Uber 的历史上,最能体现这种“速度压倒一切”文化的,莫过于 2014 年底的“中国闪击战”。

圣诞节前,TK 宣布:新年过后,Uber 要全面进军中国。他给了 Tuan 两个月的时间,在中国本土,从零开始搭建一套完整的、物理隔离的数据中心。

Tuan 的工程团队评估后,给出的最快时间是 6 个月。他在湾区的朋友们听说后,都嘲笑他疯了:“没有 18 个月根本不可能。”

TK 不接受,最终两人“折中”到了 4 个月。

4 个月后,项目延期了。TK 很不爽。

5 个月后,项目再次延期。TK 暴怒。

Tuan 对 TK 承诺,再给一个月,但必须允许他们“分阶段上线”,而不是一次性点亮所有城市。

TK 同意了,但提了一个极其苛刻的条件:第一个上线的,必须是当时业务量最大的城市——成都。

Tuan 在访谈中回忆道,这在当时看来简直是自杀,但事后回想,这是 TK 做出的最天才的决定。

“当你把最硬的骨头啃下来之后,剩下的就全是下坡路了。整个团队的士气和信心都被拉满了。”

最终,他们真的做到了。IT 团队在两周内完成了服务器的跨国部署,软件团队在无数个通宵后,让代码在中美两地同时跑了起来。

没有人认为这能成功,但它就是成功了。 这就是 Uber 当时的魔力。

小结:AI 时代的生存法则

在访谈的最后,Tuan 聊到了如今最火热的 AI 编程。

他所在的新公司 FAIR,已经开始使用 Agent Swarm(智能体集群) 来辅助开发。他发现,顶级的工程师在使用 AI 后,产出能翻倍。

当被问及“AI 时代,如何区分优秀与平庸的工程师”时,Tuan 的回答,与他在 Uber 血战时总结出的经验如出一辙:

“好奇心、无畏、愿意尝试新事物、敢于打破常规。这些特质,在过去能让你脱颖而出,在今天,同样能让你成为驾驭 AI 的顶级玩家。平庸的人把 AI 当拐杖,而优秀的人把 AI 当作火箭推进器。”

从越南船民到硅谷之巅,Tuan Pham 的一生,就是一部关于“在混乱中寻找秩序,在极限压力下野蛮生长”的史诗。

Uber 的故事或许不可复制,但它留给我们的思考,远未结束。

在技术的世界里,从来没有完美的架构,只有与业务增长阶段相匹配的、充满妥协与权衡的草台班子。

而我们作为工程师的终极使命,就是在这个草台班子上,用最快的速度,把它搭成别人眼中坚不可摧的罗马。


今日互动探讨:

看完 Uber 的故事,你觉得在你的公司里,是应该优先选择“技术正确”的完美架构,还是“能快速上线”的野路子?你对微服务和单体架构有什么切身体会?

欢迎在评论区分享你的看法!


还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 从0 开始构建 Agent Harness 将>带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

“AI 让每个人都成了开发者”,就像“相机让每个人都成了摄影师”

本文永久链接 – https://tonybai.com/2026/05/05/ai-makes-everyone-a-developer-like-cameras-for-photographers

大家好,我是Tony Bai。

最近,在技术圈里流传着一个“非主流观点(Unpopular Opinion)”:

“‘AI 让每个人都成了开发者’,这句话是真的。就像当年‘相机的发明,让每个人都成了摄影师’一样。”

这句充满“内涵”的类比,在 Reddit、X 等社区引来了开发者的热议。它精准地戳中了所有专业开发者心中最深的隐忧:当 AI 将编程的门槛夷为平地,我们这些苦练了十几年“内功”的“老师傅”,还有存在的价值吗?

就在前几天,r/webdev 论坛上,一篇名为《我刚围观了一个非开发者用 AI Vibe-Coding 的全过程……兄弟们,我们稳了》的帖子,用一个极其生动、甚至有些滑稽的真实案例,为这个“灵魂拷问”给出了一个参考答案。

今天,我们就来复盘这场关于“技术平权”与“专业主义”的大讨论,看看在 AI 掀起的这场“全民编程”狂欢之下,到底藏着怎样的泡沫、陷阱与机遇。

一个非开发者的“玄学 Debug”之旅

故事的开端,来自一位名叫 eowenith 的开发者。他讲述了自己围观一位非技术背景的朋友,如何使用 Claude Code 构建一个应用的“奇葩”经历。

这位朋友对编程一窍不通,她的操作方式,被社区戏称为 “Vibe-Coding(氛围编码)”

  1. 脑子里有一个模糊的想法。
  2. 用大白话告诉 AI:“给我做一个XX网站。”
  3. AI 生成了一堆代码,她看不懂,直接运行。
  4. 网站崩溃了。
  5. 她把整个屏幕的截图发给 AI,然后配上一句:“这看起来不对劲。”
  6. AI 开始猜测问题,生成新的代码,然后再次崩溃……

eowenith 在帖子中写道:

“我眼睁睁地看着 Anthropic 的账单邮件一封封地发过来,她花了几个小时和几十次 Prompt,最终搞出来的东西,我可能用一两个 Prompt 就能做得更好。”

“最后,她甚至还嘲笑我,说我的 Claude Code 总结页面上的‘已用点数’和‘消息数’太少了,像个业余爱好者。”

这个案例,让评论区彻底炸了锅。

一位开发者一针见血地指出:

“那个‘嘲笑你点数用得少’的部分,真的把我逗笑了。低效地烧钱,居然成了一种炫耀资本。

另一位开发者则用更专业的视角剖析了这种“Vibe-Coding”的致命缺陷:

“一个没有底层知识的人,只会不停地 Prompt。AI 为了解决表层问题,会不断地创造‘权宜之计’,绕过那些真正核心的架构缺陷。最终,这些‘权宜之计’会互相叠加,让系统变得比一开始还要烂。

这种靠“直觉”和“感觉”驱动的开发模式,正在批量制造着新时代的“高科技屎山”。

“Token 猪”与“认知卸载”

在这场大讨论中,几个极其精辟的新概念应运而生,完美地概括了 AI 时代的行业乱象。

概念一:Token 猪(Token Pig)

这个词用来形容那些低效、懒惰、疯狂消耗 Token 的 AI 使用者

他们把 AI 当作一个无限的“许愿池”,拒绝进行任何有价值的思考,把最简单的任务,也用最昂贵的方式外包给大模型。

概念二:认知卸载(Cognitive Offloading)

一位开发者表达了一种更深层次的担忧:

“AI 确实很有用,但我对‘认知卸载’的长期影响感到担忧。我努力确保自己能理解 AI 做的每一件事,并花时间去搞懂那些看起来不太对劲的地方。”

当我们习惯于让 AI 为我们思考,我们的大脑就失去了构建深度知识模型(Mental Models)的机会。我们从“司机”变成了“乘客”。长此以往,我们不仅会失去对代码的掌控力,更会失去独立解决复杂问题的能力。

就像评论区里那个极其扎心的比喻:

“当手机出现后,一种新的脑损伤出现了——我们记不住电话号码了。”

当工具抹平了门槛

回到最初的那个“摄影师”比喻。

一位用户分享了她丈夫的真实经历:

“我的丈夫曾经是一名职业摄影师。当数码相机的浪潮到来,‘让每个人都成了摄影师’时,他被迫离开了这个行业。因为客户们开始觉得,他们不应该再为一个‘按一下快门’的动作,支付高昂的费用。”

这几乎是所有专业开发者内心最深的恐惧。

但另一位用户也提出了一个类似的观点:

“我用我的 iPhone,就能拍出比 30 年前职业摄影师更好的照片。99.9999% 的照片都是由我和其他非专业人士拍摄的。所以,这个比喻或许恰恰证明了:我们真的不再需要那么多的‘职业开发者’了。

这场争论,最终指向了一个更本质的问题:当工具的门槛被无限降低,我们作为“专业人士”的价值,到底还剩下什么?

从“手艺”到“品味”的跃迁

在这场看似无解的“生存危机”大讨论中,我们依然能找到一条属于高级架构师的、清晰的破局之路。

第一条:AI 抹平了“技法”,却放大了“品味”

一位开发者的评论获得了大量高赞:

“工具降低了门槛,但品味(Taste)和基本功(Fundamentals),依然是区分‘能跑的代码’和‘好的代码’的唯一标准。就像相机让拍照变容易了,但没让拍出好照片变容易。”

AI 可以帮你写出符合语法规范的代码,但它无法替你做出架构决策。

  • 它不知道你的业务在未来半年会如何演进。
  • 它不理解高并发场景下,一次锁竞争的代价有多大。
  • 它更无法在“开发效率”与“长期可维护性”之间,做出最符合当下团队资源的权衡。

这些,就是“品味”。

第二条:从“执行者”到“定义者”

另外一位开发者的观点同样深刻:

“相机没有让每个人都成为摄影师,它只是降低了门槛。AI 也一样,它不会让每个人都成为开发者。但它会将价值,从‘编写代码’,转移到‘知道该构建什么,以及如何塑造产出’上。

当 AI 能够完美地执行指令时,“下达正确的指令”就成了最稀缺的能力。

我们作为资深开发者的核心价值,正在从一个“手艺精湛的工匠”,转变为一个“拥有上帝视角的系统设计师”。

第三条:别在工具层内卷,向上走,到“思想层”去

整场讨论中,最让我感到共鸣的,是下面的一段话:

“我真的超爱写优雅、干净、极简的代码(这正在迅速成为一项无用的技能)。但归根结底,我一直都是一个‘想法的建造者(Builder of Ideas)’。”

“我们的超能力,不是写代码的能力,而是把一个模糊的想法,变成一个真实的产品、系统、服务的能力。社会需要我们,是因为这个。代码,只是我们用来交付这个概念的工具。

小结:别担心,你的价值远超你写的代码

回到最初的那个比喻:“AI 让每个人都成了开发者”,就像“相机让每个人都成了摄影师”。

是的,相机让记录生活变得轻而易举,但它并没有消灭那些能够捕捉光影、构图、和决定性瞬间的艺术大师。

同样,AI 让实现功能变得前所未有的简单,但它也永远无法取代那些能够洞察需求、设计架构、并对系统最终质量负责的软件架构师

AI 拿走的,只是我们手中的“体力活”。

而留给我们,并被无限放大的,是我们作为工程师最宝贵的东西:经验、品味、判断力,以及将混乱的世界,构建成优雅系统的能力。

不要再为“写代码”这件事本身感到焦虑了。

向上看,去思考,去设计。

因为在那片 AI 无法触及的高地上,才是你真正的价值所在。

资料链接:

  • https://x.com/Samaytwt/status/2047315095773216780
  • https://www.reddit.com/r/webdev/comments/1stjfo4/i_just_watched_a_nondev_vibecode_something_were/

今日互动探讨:

在 AI 编程的浪潮中,你是否也曾有过“被外行指导内行”的憋屈经历?你认为一个专业开发者,在 AI 时代最不可被替代的核心竞争力是什么?

欢迎在评论区分享你的看法!


还在为写 Agent 框架频频死循环、上下文爆炸而束手无策?我的新专栏 从0 开始构建 Agent Harness 将带你:

  • 抛弃臃肿框架,回归“驾驭工程 (Harness Engineering)”的第一性原理
  • 用 Go 语言手写 ReAct 循环、并发拦截与上下文压缩引擎等,复刻极简OpenClaw
  • 构建坚不可摧的 Safety Middleware 与飞书人工审批防线
  • 在底层实现 Token 成本审计、链路追踪与自动化跑分评估
  • 从“调包侠”进化为掌控大模型边界的“AI 操作系统架构师”

扫描下方二维码,开启从 0 开始构建Agent Harness 的实战之旅。


原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!

我们致力于打造一个高品质的 Go 语言深度学习AI 应用探索 平台。在这里,你将获得:

  • 体系化 Go 核心进阶内容: 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏,夯实你的 Go 内功。
  • 前沿 Go+AI 实战赋能: 紧跟时代步伐,学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等,掌握 AI 时代新技能。
  • 星主 Tony Bai 亲自答疑: 遇到难题?星主第一时间为你深度解析,扫清学习障碍。
  • 高活跃 Gopher 交流圈: 与众多优秀 Gopher 分享心得、讨论技术,碰撞思想火花。
  • 独家资源与内容首发: 技术文章、课程更新、精选资源,第一时间触达。

衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

img{512x368}


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 从 0 开始构建 Agent Harness Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats