一個SDK引發的“血案”

人不能兩次踏進同一條河流。Facebook:但我們能時隔兩月栽在同一個坑裏。

Facebook iOS SDK 再引故障

5 月 7 日,Facebook iOS SDK 故障引發北美主流 App 大規模崩潰,從海外風頭強勁的 TikTok 到 Google、Netflix、Spotify 等知名 App 再到遊戲 GTA5、使命召喚無一倖免。

圖源見水印

Facebook iOS SDK 的 GitHub issue 顯示,SDK 6.5.0、SDK 5.6.0、SDK CoreKit 6.0.0 等等都會導致應用崩潰。

僅僅兩個月時間,上週五 Facebook iOS SDK 再次導致大量應用崩潰,Spotify,TikTok,Tinder 和 Waze 等應用無法使用持續數小時。此次崩潰的罪魁禍首是 Facebook SDK 5.0.2 等版本。Facebook 在一份聲明中說:

“……代碼變更觸發了某些 iOS 應用程序的崩潰。我們迅速發現並解決了該問題。對於由此帶來的不便,我們深表歉意。”

一家獨大的隱憂

Facebook 的 SDK,就像開發者託管在雲上的服務一樣,一旦出現故障,引發的很可能是多米諾骨牌級的連鎖崩潰反應。

這兩起由 Facebook SDK 故障引發的大規模應用程序崩潰事件凸顯了一個隱憂:當 Facebook 擁有一個“核彈”級別的開關,只要摁下去就造成大規模的殺傷,開發者如何保護自己不受無差別攻擊?

答案很可能是:無法保護。

因爲此次事件明確地給了外界一個信號:不管有意還是無意,Facebook 都有這個能力,他們確實可以控制包含其代碼的其他應用程序。

Facebook 以工程師文化聞名於世,其工程團隊認爲,他們的開發工作永遠沒有到頭的那一天,代碼庫的增長永不停止,2013 年時就有超過 1000 萬行代碼(850 萬 PHP 代碼),而到 2019 年時,其代碼庫已經突破一億行。

不斷開發新的功能,迅速上線,滿足用戶需求,這是 Facebook 的持續部署的開發模式。Move fast,break things 是他們的一貫信條,更爲激進的是,長久以來 Facebook 甚至沒有專門的測試工程師:所有的測試工作都交由自動測試工具和開發團隊自己。

兩次栽在同一個坑裏,開發者笑言 Facebook 的信條是 Move fast and break the whole mobile iOS App ecosystem。還有人在 issue 區留言道:Facebook,等等你的人民吧(Please move slower and break fewer things)。

當然,沒有一家企業是完美的,在持續更新的軟件開發領域,要做到不出錯、少出錯更是難上加難,每一個開發團隊、開源項目維護者乃至個人開發者,都應該敬畏每一行代碼,每一份託付。

回到 Facebook SDK 這個故障本身來看,官方團隊給出的原因是“代碼變更”,不知道這變更的代碼是 black/white list 嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章