Facebook开源其状态机即服务(StateMachineasaService)StateService,实现系统灾难自动恢复。Facebook的大部分生产服务都是自建的,主要是为了抵抗重大故障,例如从自然灾害造成的数据中心数据丢失中恢复,但用于企业基础设施的第三方服务可能由于部署过程的原因需要多次部署。步骤,调度协调跨多个虚拟机,因此很难自动恢复,Facebook决定解决这些第三方服务的部署,以缩短服务中断恢复所需的时间。为此,Facebook开发了StateService,它是一种状态机即服务(StateMachineasaService),通过复杂的部署过程来引导虚拟机的状态。StateService采用自文档化设计,每个状态都成为配置管理(CM)软件的一部分。通过重放先前虚拟机的状态,StateService可以将服务返回到最佳已知状态。StateService可以配合Chef等CM软件部署服务。Facebook使用YAML来表示状态机的状态,以描述一个或多个虚拟机可以进入的状态,以及每个状态如何以及何时转换到另一个状态。每个状态都可以表示为一个步骤或一系列步骤,例如部署期间发生的事件。Facebook的企业基础架构团队使用StateService来减少部署服务所需的手动工作,现在Facebook将其开源,允许任何企业将复杂的部署工作自动化。
