由臉書全球大當機事件淺談
Intent-based Networking

邱顯智 Ozzy Chiou

  • 精誠資訊/恆逸教育訓練中心-資深講師
  • 技術分類:網路管理與通訊應用

 

 

2021年10月5日淩晨,臉書發生了長達七個小時的大斷線事件,影響所及包括臉書網頁、Instagram、WhatsApp…等臉書家族服務全數喪失連線,第一時間傳出的消息是由於臉書的BGP路由停止發送DNS伺服器所在網段,導致全世界無法透過網站的名稱連接臉書網頁,根據臉書基礎設施副總Santosh Janardhan所發出的聲明看來,一切的災難都是由一條錯誤的指令開始。 由於臉書的工程師進行日常網路維護之前,下了一道指令想要確認骨幹網路的容量,但是由於網路的Assurance機制不允許這樣的操作,網路自動化(Network Automation)中的一個程式Bug於是引發的一連串連鎖反應導致的大災難,細節詳見臉書基礎架構副總的公開說明。
https://engineering.fb.com/2021/10/05/networking-traffic/outage-details/


這讓筆者想起了2018-2019年間的兩起波音737-MAX客機墜機事件,兩者之間都是因為自動化程式過度反應造成的災難。傳統的網路工程師可能會對網路自動化(Network Automation)這個名詞相當陌生,所以就讓我們從自動飛行談起吧! 自動飛行可以大幅減輕飛行員的工作負荷,減少人為操作失誤的機率,讓飛行員能更專注在航管溝通以及危機處理的工作上,相對地,網路自動化則是在減輕網路管理人員的負擔,允許網管人員專注在提供符合商業需求的網路服務。


目前網路工程師們大多仰賴指令介面對網路設備進行維運操作,就像早期的飛行員一路用手動飛行的方式開飛機一樣,這種方式既沒有效率,還可能容易出錯,一旦出錯又要花大量時間進行疑難排解,所以傳統以指令為基礎的管理模式戲稱「Configure and pray」。隨著網路規模持續成長且網路應用愈來愈複雜,傳統以指令為主的網管機制已經不符合時代的潮流。


話說回來,幾乎所有的飛行員都不會寫程式,因此飛機製造商會把所有自動飛行需要用的程式寫進飛行電腦中,飛行員只要在起飛之前把飛行計劃輸入飛行電腦,起飛達到安全高度之後啟動自動飛行,如果有航管人員臨時要求飛改變航向、飛行高度……等狀況,飛行員只要撥動自動飛行儀表板,輸入航管人員要求的飛行姿態給飛行電腦,飛機就會如飛行員所願地自動飛行(Intend-based Flighting)。


同樣地,Cisco DNA Center提供了意向式網路(Intend-based Networking),內建了許多日常網路管理需要的自動化應用程式,大幅減輕網管人員的工作負荷,甚至提供的Intend-based Networking的功能,DNA Center會結合機器人學習與人工智慧轉譯網管人員所輸入的網路政策(Translation),自動產生適當的設定套用在適當的網路設備上面(Activation),並且隨時監視網路是否如同預期一樣運作(Assurance)。



雖然這次臉書的事件是因為程式的Bug造成網路自動化的保護措施過度反應所誘發的一連串連鎖反應,但是臉書基礎設施副總仍然不後悔導入Network Automation與Intend-based Networking,因為其所帶來的效益遠遠高於這次偶發性的災難;就像雖然有少數人對疫苗過敏產生不良反應,但是整體來說接種疫苗仍然有其高效益一樣,所以儘早施打疫苗,儘早開始導入Cisco DNA Center吧!