米Facebook、サービスとしてのステートマシン「StateService」をオープンソースに

 米Facebookは10月4日、「StateService」をオープンソースとして公開したことを発表した。システム障害後に外部サービスの復旧を自動化することを目指し、仮想マシンのステート遷移の「ステートマシン・アズ・ア・サービス」を標榜している。

 Facebookでは、運用サービスは自社開発でコンテナ内で動いている一方、企業インフラで使用する外部サービスは仮想マシン上で動かしているという。自社技術については自動復旧が可能だが、外部サービスは手動での作業が必要だったという。

 StateServiceは外部サービスの実装を自動化する目的で開発した。Chef Cookbookなどの設定管理ソフトウェアと連動し、サービスを実装する。YAMLで表現したステートマシンを使い、1つ以上の仮想マシンのステートの遷移を記述、特定の仮想マシン上でのステート遷移のシーケンスが自動的に起こるようにプログラムできる。ステートマシンはHTTP上でWebサービスとしてエクスポーズするため、Chefリソースがステートを問い合わせるなどのやりとりが可能。

 これにより複雑な実装を自動化でき、Facebookでは大型障害が発生した後でも外部サービスの復旧が迅速になったという。今後はAnsible、Puppetなどの設定管理ソフトウェアとの統合も探っていくとしている。

 StateServiceはプロジェクトのWebサイトより入手できる。ライセンスはMIT License。

StateService
https://github.com/facebookincubator/StateService