新聞 > 國際財經 > 正文

Facebook 大宕機:遠程工作的一曲悲歌

「微博崩了」「知乎崩了」「小紅書崩了」我們都經歷過。你能想像「微信崩了」是什麼場景嗎?

2021年1月18日下午,曾有諸多網友反映微信群聊、私信等收不到消息。「微信 bug」一度衝上熱搜。騰訊微信團隊回應:

「由於系統抖動原因,今天14點左右,部分微信用戶遇到了消息收取延遲情況,現在已經修復完成。」

這次「系統抖動」影響的人數確實相對較少,而歷史上,微信也只有朋友圈、紅包等部分功能模塊偶爾出現「崩了」的情況,相對來說算是「穩如泰山」。

但是,在剛剛過去的10月4日,除中國大陸以外的全球網友是切切實實體會到了一次什麼叫他們的「微信」崩了。有着35億活躍用戶的 Facebook全線業務,一度在全球範圍無法訪問長達6小時。

這些服務包含 Facebook及其相關服務 Instagram、WhatsApp、Messenger、Oculus等;以及其企業級產品,甚至 Facebook的公司內網。其中,WhatsApp和 Facebook Messenger是公司旗下兩款「微信」類即時通信產品,分別在全球範圍擁有20億用戶和13億用戶(有重迭),都高於微信(含海外 WeChat)的12.4億用戶和 QQ的6.06億用戶。

這次史無前例的故障,其起因本身就是 Facebook在疫情後不得不開展大量遠程工作,導致檢修員工不在現場,讓事故持續拖延下去。而其結果,是讓全球不計其數的中小企業乃至政府部門的遠程工作受到嚴重影響,造成一波又一波的次生災害。

世紀新冠疫情讓人們不得不留在家中,依賴互聯網完成大部分工作和人際交往,原本臨時的遠程辦公措施逐漸常態化和永久化,也讓人們憧憬新生活方式的可能。但只需要一次簡單的服務中斷,這一切就都有可能被打回原點。長達6小時的 Facebook大宕機,正是讓我們重新反思這一切的絕佳時機。

發生了什麼?

根據目前能掌握的信息,這次 Facebook的大規模故障應該是從一次例行維護開始的。

Facebook主管基礎設施的副總裁賈納丹(Santosh Janardhan)說,他們在維護過程中發出的一條命令,無意中關閉了通往世界上所有 Facebook數據中心的骨幹網連接。

圍繞此事,主要有兩個不同的陰謀論。

一是此事正好趕在有位「吹哨人」就 Facebook及 Instagram「無視兒童安全」上美國國會聽證會的前夕,6個小時也許夠用來「毀屍滅跡」;

另一說是有15億份近期的 Facebook用戶個人資料流出,有人說黑市每100萬個用戶資料開價5000美元。6個小時同樣也許可以用來補救或者掩蓋什麼。

目前來看,因為「吹哨人」而自導自演宕機的可能性小到幾乎為0。官方一再解釋,此次宕機並不是黑客攻擊導致,也沒有證據顯示有用戶數據是因此事而泄露。

不過,「如無必要,勿增實體」。這起事件是一次單純的誤操作所致,也許是一種更簡單也更靠譜的解釋。

除 Facebook官方之外,負責第三方公共 DNS解析和 CDN服務的 CloudFlare也在官方博客分析,從外部觀察,就是 Facebook的 BGP(邊界網關協議)出的問題。

通俗的說,DNS是互聯網的「地圖」,用來告訴你「x在什麼地方」;而 BGP是這一「地圖」的「導航」部分,告訴你「怎麼走去 x最快」。

要準確理解這一概念,首先要明白一點:

我們現在所稱的「互聯網」,字面意思是「網際(inter-)網絡(net)」,也就是「網絡的網絡」,是無數張小網絡如「島嶼」般彼此連接的後果。這些小網絡可能是「中國電信」、「清華大學」或者「x公司北京辦事處」。

相對於全球所有聯網電腦而言,一整個國家——比如中國或俄羅斯——的全國網絡也算是一張巨大的小網絡,通過海底電纜等「橋樑」同其它外「島」相連。但由於它們遵守相同的協議,所以聯網方法完全相同。

BGP就是要告訴用戶,在地理意義上,你必須經過某些「島」和「橋樑」才能到達目的地。一般來說,BGP會智能地選擇多種不同路線中距離最短的那一條,當然「最短」不意味着「最理想」,因為有些「橋樑」比如5G數據連接是收費的。

當 Facebook的 DNS伺服器注意到問題,就自動停止繼續分發 BGP路由信息,等待連接恢復正常。因為全球各地設備無休止的發起不成功的訪問請求,會導致對上級 DNS伺服器更嚴重的衝擊,讓影響擴散得更嚴重。

這樣的事情曾在中國發生過一次。2009年5月19日,兩個盜取遊戲資產的黑客私鬥,導致第三方域名解析服務 DNSPOD被攻擊到癱瘓。中國電信停止了對其的網絡服務,致使其無法為域名提供解析服務,諸多採用 DNSPOD服務的網站無法訪問。

恰好當時全國裝機量約1.2億台的影音播放器「暴風影音」會定期自動訪問伺服器檢查更新,也因為 DNSPOD故障而不斷發起域名解析請求,最終幹掉了整個電信運營商的本地域名伺服器,引發了全國大斷網。

在本次事件中,Facebook內部的 DNS伺服器本身仍在工作,但主動選擇停止解析,以保護更大範圍內的網絡。雖然修理它並不是什麼難事,然而一系列連鎖反應使問題進一步惡化。

怎麼會這麼嚴重?

缺乏網絡連接和域名解析丟失,切斷了遠程工作的 Facebook工程師和伺服器的聯繫,也禁用了許多他們平常使用的檢修工具。一位 Facebook內部人士在 Reddit爆料,當時的情況是:

會修的人連不上路由器也沒有登錄權限,

有權限的人不會修也連不上,

唯一在機房能物理接觸到路由設備的員工沒有權限也不會修。

由於內部通訊工具也掉線了,這三波人協作困難,雪上加霜。

公司內部的混亂是全方位的。員工之間本來用公司自己的通訊工具溝通,有時即使需要訪問友商業務如谷歌文檔和 Zoom會議軟件,也要求使用 Facebook賬號單點登錄。系統崩潰讓這一切都陷入停頓。

有的員工在事發之前已經用公司賬號登錄到谷歌文檔等環境,受影響尚且較小;有的急忙上線,卻發現自己只能用基於微軟 Outlook的工作郵箱、蘋果的 Facetime等各種各樣的替代服務與同事聯繫。

新浪科技駐矽谷記者鄭峻寫道:

「一位 FB朋友說,今天大家都很尷尬,不知道發生了什麼,也不知道該做什麼,只好假裝什麼都沒有發生,在給一家不存在的網站工作。」

修復工作很顯然無法遠程完成,工程師們緊急「打飛的」到加州的主數據中心參與維修。在此期間,一些員工並不能使用門禁進入公司大樓和會議室,而這些地方的門只能用門禁卡刷開,沒有鑰匙孔。

The Verge甚至曾一度獲得更戲劇性的消息——因為門禁卡失效,工程師只能帶着切割機,強行鋸開數據中心的伺服器鐵籠。不過後面這個報道未經證實,被撤回了。

不過一旦人都被「物理傳送」到了合適的位置上,事情相對就好辦多了,只需要「激活安全訪問協議」而不是動用電鋸。

只不過,就算已經解決問題,也必須逐漸一點點地「開閘放水」,否則一次性打開所有通路就如同「8個明星並發出軌」,會導致更多的系統崩潰。負載必須逐步增加,除美國以外地區的其他用戶要等更久才恢復訪問。

最終,一切又大致恢復了正常,包括 Facebook最多曾下跌5%的股價。

責任編輯: 李韻  來源:航通社 轉載請註明作者、出處並保持完整。

本文網址:https://hk.aboluowang.com/2021/1009/1657092.html