BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Kastra - 拡張性を備えたオープンソースのオーケストレーションおよびスケジューリングプラットフォーム

Kastra - 拡張性を備えたオープンソースのオーケストレーションおよびスケジューリングプラットフォーム

原文(投稿日:2022/03/31)へのリンク

Kestraは、開発者による複雑なパイプラインの構築、実行、スケジュール、監視を支援する、新たなオープンソースのオーケストレーションおよびスケジューリング用プラットフォームだ。

Apache KafkaElasticSearchといった、広く知られたツールを基盤として構築されている。Kafkaアーキテクチャが提供するのはスケーラビリティだ — KestraクラスタのワーカはすべてKafkaのコンシューマとして実装されており、ワークフローの実行状態はKafka Streamsで実装されたエグゼキュータ(executor)が管理する。ElasticSearchは、すべてのデータの表示、検索、集約を可能にするデータベースとして使用されている。

KastraでFlowと呼ばれるワークフローの概念が、このプラットフォームの心臓部だ。Flowはyamlに基づく記述言語で定義されたタスクのリストで、単純なワークフローの定義だけではなく、動的タスクやフローの依存関係といった複雑なシナリオも記述できる。

他のフローの結果やGoogle Cloud Storageからのファイル検出、SQLクエリの結果といったイベントをFlowのベースにすることも可能だ。cron式に基いて定期的にスケジュールすることもできる。さらにKestraでは、ワークフローを任意のアプリケーションから起動したり、Web UIから直接開始するためのAPIも公開している。

実際にKestraには、開発者がフローをリアルタイムで編集、実行、監視できる、リッチなWebインターフェースが付属している。

KestraのWebインターフェースは次のようなものだ。

Kestraは、複雑なワークフローを処理し、大規模なデータセット(ETLあるいはELT)の移動、変換、およびロードを行うデータオーケストレータとして、複数のワーカに作業をスケジュールし、すべてのプロセスを監視する分散crontabとして、あるいはAPIコールなどの外部イベントに反応するイベント駆動ワークフローとして、使用することができる。

KubernetesやCloud仮想マシン、Docker、オンプレミスにも、あらゆる場所に展開が可能だ。さらに、プラグイン可能なアーキテクチャにより、Amazon S3Apache AvroGoogle BigQueryMongoDBとの連携のように、プラグインによって機能を追加することもできる。

プラットフォームとしてはApache Airflowに近いが、こちらはyamlではなくPythonで記述されたワークフローを使用している。

yamlで記述されたフローは次のようなものになる。

最新リリースでは、CPU使用率とレイテンシの低減によって全体的なパフォーマンスが向上した他、バルククエリの可能なJDBCプラグインが新たに導入されている。

ソフトウェアとしては比較的新しく、最初の公式リリースが発表されたのが2022年2月である。最新バージョンである0.4.2がGithubリポジトリから入手可能だが、欧州の小売業大手のひとつであるLeroy Merlinでは、すでに実運用に使用されている。

作者について

この記事に星をつける

おすすめ度
スタイル

BT