臉書開源狀態機即服務(State Machine as a Service)StateService,自動化的從系統災難中恢復。

臉書大多數的生產服務都是自家建構的,多為抵抗重大故障設計,能從像是自然災害造成的資料中心資料遺失中恢復,但是在企業基礎設施中使用的第三方服務,由於部署過程可能需要多步驟,跨多個虛擬機器調度協調,因此很難自動恢復,臉書決定插手這些第三方服務的部署,以縮短服務中斷恢復所需要的時間。

為此臉書開發了StateService,這是一個狀態機即服務(State Machine as a Service),透過複雜的部署過程來指引虛擬機器的狀態。StateService採用本身就是文件(Self-documenting)的設計,各個狀態成為設置管理(Configuration Management,CM)軟體的一部分,透過重新播放先前虛擬機器的狀態,StateService可以將服務返回到最後已知的狀態。

StateService能夠與像是Chef的CM軟體一起使用以部署服務,臉書用YAML來表示狀態機的狀態,以描述一個或多個虛擬機器可進入狀態,和每個狀態轉換到另一個狀態的方式和時間,每個狀態可表示為一個步驟或是一系列的步驟,像是部署期間所發生的事件等。

臉書的企業基礎設施團隊使用StateService,來減少部署服務所需要的手動工作,現在臉書將其開源,讓任何組織也能自動執行複雜的部署工作。


Advertisement

更多 iThome相關內容