マイクロサービスアーキテクチャにおける分散スケジューラ

マイクロサービスアーキテクチャにおける分散スケジューラ

Mesosマスタと通信できなくなったプロセスが強制終了されてしまうのだ。これは好ましくない設計選択だ、とCambell氏は考えている。現実問題として、分散システムのネットワーク分割は珍しいことではないので、このような状況ではプロセスを引き続き実行させておくことが望ましい。

Nomadのメリットは独自のゴシッププロトコル(gossip protocol)を使用していることだ。これにより、同一データセンタ内だけでなく、データセンタ間でのサーバ通信が可能になる。ネットワーク分割が発生しても、同じパーティション内のサービスは引き続き機能し、通信することができる。問題が解決すれば、最終的に一貫性を取り戻すことが可能だ。しかしながら、Nomadを実運用に使用しているアプリケーションを知らなかったので、移行のリスクを負いたくはない、と氏は考えた。

最後に選んだツールがKubernetesだった。Mesosに似てはいるが、いくつかのメリットがあった。まず挙げられるのが、ネットワーク分割の処理方法が異なり、発生時にインスタンスを強制終了しないという点だ。クラスタの状況を容易に確認可能なダッシュボードも備えており、アプリケーションを扱う場合の抽象化のレベルもそれほど高くない。

苦労して得られた経験が大事ですね。参考させていただきます。