BT

マイクロサービスのためのオーケストレーションエンジンであるNetflix Conductor

| 作者: Abel Avram フォローする 7 人のフォロワー , 翻訳者 奥田 佳享 フォローする 0 人のフォロワー 投稿日 2017年1月22日. 推定読書時間: 2 分 |

原文(投稿日:2016/12/20)へのリンク

Netflixは、昨年 “Conductor” と呼ばれるオーケストレーションエンジンを開発しプロダクションで運用してきた。この間、彼らは線形のワークフローから、複数の日にまたがって実行される動的なワークフローまで約260万のプロセスワークフローを実行した。現在 Conductor はオープンソースで公開されており、ワークフローオーケストレーションに関心のあるすべての人が利用できる。

NetflixのConductor開発者ドキュメントによれば、このエンジンの主な特徴は次のとおりだ。

  • 複雑なワークフローを作成することができる
  • タスクはマイクロサービスによって実行される
  • ワークフローのブループリントはJSON DSLで記述される
  • エンジンはプロセスの実行に関する可視性とトレーサビリティを提供する
  • タスクの一時停止、再開、再起動、停止を行うことができる
  • タスクの実行は通常は非同期だが、同期して実行するように強制できる
  • 数百万のプロセスフローにスケールすることができる

Conductorのアーキテクチャ図は次のとおりだ。

conductor-architecture

APIとストレージ層の両方がプラガブルであるため、異なるキューとストレージエンジンを使用することができる。NetflixはDynomiteをストレージに使用するが、インタフェースを実装さえすれば、異なるソリューションに切り替えることができる。

ワークフロータスクには、リモートマシン上で実行されるユーザータスクであるWorkerと、エンジンのJVM上で実行されるSystemの2種類がある。後者は、Workerタスクの実行においてブランチ、フォーク、ジョインすることを計画する。Workerタスクは、HTTPまたはHTTP/2上のgRPC経由でConductorと通信する。

Netflixは、彼らの試験において十分にスケールしないことを理由に、コレオグラフィエンジンではなくオーケストレーションエンジンを開発することにした。言及された問題は次のとおりだ。

  • プロセスフローは、複数のアプリケーションのコード内に「埋め込まれて」います。
  • 多くの場合、入出力、SLAなどあちこちで密接な結合と仮定があり、変化するニーズに適応することを難しくしています。
  • 「プロセスXでどれくらいのことを達成したのか?」に体系的に答える方法はほとんどありません。

ConductorはGitHub上でApache License 2.0のもと公開されている。

 
 

Rate this Article

Relevance
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT