
Uber 犯下 800 萬美元的帳本設計錯誤,竟然沒人被開除?
這篇文章批評 Uber 決定在 DynamoDB 上構建其帳本系統,由於激勵機制失調和缺乏技術遠見,導致了高達 800 萬美元的成本災難。
背景
這篇文章探討了 Uber 在過去十年間五次重寫其帳本系統(Ledger System)的過程,特別聚焦於 2017 年將系統遷移至 DynamoDB 的決策。作者指出,由於 DynamoDB 按量計費的特性,在 Uber 每日處理千萬級訂單的規模下,導致了高達 800 萬美元的成本失控,最終該設計在三年後被廢棄,並質疑這類「為了升遷而重寫」的開發文化。
社群觀點
針對作者對 Uber 決策的嚴厲批評,Hacker News 的社群討論呈現出相當分歧的觀點。許多資深工程師與管理職網友並不認同「應該有人為此被開除」的說法。最主要的論點在於,對於像 Uber 這樣快速成長的企業,架構隨著規模擴張而調整是常態而非失敗。有留言引用 IBM 前執行長 Thomas Watson 的名言,認為這 800 萬美元與其說是損失,不如說是公司為員工支付的高昂培訓費;如果因此開除工程師,反而是將寶貴的經驗拱手讓給競爭對手。社群傾向於認為,比起懲罰個人,更應該從制度面引入成本預測機制,讓犯過錯的人主導文化變革,反而更有成效。
然而,另一派觀點則對大公司內部「履歷驅動開發」(Resume-Driven Development)的現象深感共鳴。有評論指出,許多社交型開發者或管理層為了升遷,傾向於推行複雜且具話題性的新技術,而非選擇最無趣但正確的方案。這些專案往往在獲得升遷、發表技術部落格或參加研討會後,留下一堆爛攤子給後繼者處理。這種動機不純的重寫確實存在,且現行的企業考核制度往往獎勵「創造新事物」而非「穩定維護舊系統」,這使得長期維護者的貢獻被忽視。
此外,不少網友批評作者有「事後諸葛」之嫌。他們認為在 2017 年的技術背景下,微服務與雲端原生資料庫是當時的主流趨勢,且 Uber 當時的首要任務是支撐爆發性的業務成長與系統可用性,而非單純的成本優化。如果當時為了省錢而導致系統崩潰,對品牌造成的損害可能遠超 800 萬美元。部分留言也質疑作者對帳本系統與支付系統區別的定義過於武斷,認為在極端規模下,任何技術選擇都是權衡取捨的結果,不應將兩年後的架構演進簡化為一場災難。
延伸閱讀
- Thomas John Watson Sr. 的名言出處:關於 IBM 執行長如何看待員工犯錯導致巨額損失的經典管理案例。
- Uber 工程部落格原文:詳細記錄了從 DynamoDB 遷移至 LedgerStore 的技術細節與挑戰。
- ByteByteGo 相關文章:即便在多年後,系統設計社群仍將 Uber 的 DynamoDB 實踐視為經典案例研究。
相關文章