臉書開源資料中心災備工具,可自動化執行部署,縮短恢復時間
Facebook開源了其狀態機即服務(State Machine as a Service)StateService,自動化的從系統災難中恢復。
Facebook大多數的生產服務都是自家構建的,多為抵抗重大故障設計,比如從自然災害造成的資料中心資料遺失中恢復,但是在企業基礎設施中使用的第三方服務,由於部署過程可能需要多步驟,跨多個虛擬機器排程協調,因此很難自動恢復,Facebook決定解決這些第三方服務的部署,以縮短服務中斷恢復所需要的時間。
為此Facebook開發了StateService,這是一個狀態機即服務(State Machine as a Service),透過複雜的部署過程來指引虛擬機器的狀態。StateService採用本身就是檔案(Self-documenting)的設計,各個狀態成為配置管理(Configuration Management,CM)軟體的一部分,透過重新播放先前虛擬機器器的狀態,StateService可以將服務返回到最後已知的狀態。
StateService能夠與如Chef的CM軟體一起使用以部署服務,Facebook用YAML來表示狀態機的狀態,以描述一個或多個虛擬機器可進入狀態,和每個狀態轉換到另一個狀態的方式和時間,每個狀態可表示為一個步驟或是一系列的步驟,如部署期間所發生的事件等。
Facebook的企業基礎設施團隊使用StateService,來減少部署服務所需要的手動工作,現在Facebook將其開源,讓任何企業也能自動執行復雜的部署工作。