看Facebook如何玩轉雲基礎設施自動化部署
GIF
看Facebook如何玩轉
雲基礎設施自動化部署
經過10多年的發展,Facebook的網路基礎設施(包括骨幹層和邊緣接入層POPs)已覆蓋全球,其包含城域和長途光傳送網路以及2個平行的IP骨幹網路。整個網路基礎設施規模快速擴張以支持不斷增長的對外和內部網路通信的需求。
網路建設的規模和複雜性不斷增加,給負責交付的工程師帶來巨大挑戰。儘管已經有一些工具來輔助工程師的工作,他們主要的交付活動仍然是圍繞MOP(method of procedure)文檔並不斷增加人手來應對,依賴人工完成各種工具操作。這種方式已越來越無法滿足快速增長和變化的網路基礎實施交付要求,因而Facebook的工程師基於ZTP(Zero Touch Provisioning)特性重新構建了完備且靈活的部署工作流系統,它被稱為「自動售貨機」(Vending Machine,後文簡稱「VM」),只要輸入網路設備角色、所在位置、平台類型等信息,它就「吐出」嶄新的已經部署完畢的網路設備,它幫助工程師們以更加敏捷的方式部署網路和解決問題。
相比於原有工具使用不可靠的終端命令行通道(CLI),VM的主要變化是採用基於DHCP協議的ZTP(Zero Touch Provisioning)功能實現設備的自動化部署。VM利用ZTP將一段特定的Python代碼下發到網路設備並自動運行,這段運行的Python代碼成為設備側agent,它將具體執行如下功能:
1.agent針對運行它的網路設備的平台類型、角色、所在位置可從VM側下載對應的自動化部署腳本;
2.agent執行的自動化部署腳本包括:
a)執行任何必要的初始化命令;
b)從VM側自動下載相關文件如配置文件、Firmware、補丁包,以及其他任何自定義軟體包(比如Facebook的Open/R軟體包等);
c)執行進一步的部署命令(如升級Firmware、載入配置文件、重啟設備等);
3.agent通過調用VM側的REST介面返回各種日誌信息(如狀態信息、運行日誌、debug日誌等);
4.最終,當agent完成所有自動化部署動作後,它通知VM側並自動終止運行。
agent的執行邏輯是基於Facebook工程師開發的Python代碼,因而可以根據需求快速迭代和適配不同廠家設備。
基於Python agent實現網路設備軟體和配置自動化下發僅僅是完成MOP中的一部分內容,VM的目標是實現整個MOP自動化執行。Facebook工程師打造VM的初衷是構建一個完備且靈活的部署工作流系統,它提出的一個概念是steps(「步驟」),所有工程師可使用任何編程語言並行開發各自的step,分別實現不同的部署動作,並由VM統一編排和自動執行。
每一個step只聚焦完成一個具體的任務,開發這個step的工程師並不需要對VM的完整運行機制或網路設備部署的完整流程都必須了解,同時所有的step開發者可獨立交付代碼,避免相互影響,這種設計為VM帶來極大的靈活性和可擴展能力。
VM通過調度分散式伺服器集群實現所有steps的編排執行,當VM運行一個step時,具體執行如下步驟:
1.讀取STDIN(standard input,JSON格式),其中包括設備信息(如主機名、IP地址等)以及通用任務元數據(job metadata)等;
2.執行此step的具體代碼邏輯;
3.向STDERR (standard error)寫入日誌,這些日誌會進一步保存到上一級job中;
4.返回step執行結果(成功則為0,失敗為非0),在step執行失敗時VM會捕捉任何未處理的異常。
當一個step執行失敗時,VM會立即重新編排steps以實現重試或故障自愈等,以提升自動化部署的成功率。
當前Facebook工程師已實現如下steps:
1.點對點通知
2.更新資產存量管理系統
3.使能運維監控
4.等待設備重啟
5.執行地址分配
6.自動生成配置
7.全局iBGP/MPLS重建
8.執行鏈路級、設備級、網路級的健康檢查和功能驗證
9.調用已有工具為生產流量導流
VM根據不同場景將所有這些steps串連起來形成各類workflows(部署工作流),其中定義了各step的執行順序、哪些steps可並行執行等,這些workflows和steps在VM這個框架中可復用,從而以前的MOP文檔變成簡單執行一條命令:vm configure 。
VM後續的功能規劃還包括:
1.覆蓋更多類型的網路設備,推動骨幹IP路由器和光傳送設備廠家支持ZTP特性;
2.編排多個部署任務(jobs)以實現更大網路拓撲的自動化部署或重建;
3.實現Facebook骨幹網所有平面的自動化重建;
4.實現骨幹網設備乾淨、無縫的自動化軟體升級;
5.實現可靠的網路基礎設施自動化迭代和重建。
原文作者:JOE HRBEK,BRANDON BENNETT,DAVID SWAFFORD,JAMES QUINN


TAG:華為產品可服務能力 |