
Kubernetesネイティブなワークフローエンジン
無料
Argo Workflowsは、Kubernetes上で並列ジョブをオーケストレーションするために設計された、オープンソースのコンテナネイティブなワークフローエンジンです。中央サーバーで動作する従来のワークフローツールとは異なり、ArgoはKubernetesコントローラーとして動作し、ワークフローの各ステップを個別のPodとして実行します。このアーキテクチャにより、大規模なスケーラビリティ、Kubernetesリソース(ボリューム、シークレット、RBAC)とのネイティブな統合、そして複雑なDAGやステップベースのシーケンスを処理する能力を実現しています。高スループットで耐障害性の高い実行環境を必要とするCI/CDパイプライン、機械学習モデルのトレーニング、データ処理タスクにおける業界標準です。
Kubernetes内のカスタムリソース定義(CRD)として動作することで、Argo Workflowsはクラスターのネイティブ機能を活用します。外部のワークフローサーバーが不要となり、標準の 'kubectl' コマンドでワークフローを管理可能です。この統合により、ワークフローのPodはクラスターのセキュリティ、ネットワーク、ストレージポリシーを継承し、複雑なコンテナ環境を管理するDevOpsチームにシームレスな運用体験を提供します。
Argoは、有向非巡回グラフ(DAG)とステップベースのシーケンシャルなワークフローの両方をサポートします。DAGは上流ノードの完了に基づいてタスクを並列実行する複雑な依存関係管理を可能にし、ステップベースのワークフローは線形実行を提供します。この柔軟性により、エンジニアは単純なCI/CDパイプラインから、分岐ロジック、リトライ、条件付き実行パスを含む複雑なデータサイエンスパイプラインまでをモデル化できます。
Argoは、アーティファクトを使用してワークフローのステップ間でデータを渡す機能を組み込んでいます。S3、GCS、Artifactoryと統合し、出力の保存と取得を自動化します。エンジンがこれらアーティファクトのライフサイクルを管理するため、共有ボリュームや外部データベースを手動で管理する必要がなく、分散ノード間でのデータ可用性が保証されます。
すべてのワークフローステップがKubernetesのPodであるため、Argoはクラスター全体の容量に合わせて水平方向にスケーリングできます。数千の同時タスクを実行可能で、高スループットなバッチ処理や大規模なMLトレーニングジョブに最適です。中央集権的なエンジンとは異なり、スケジューリングの負荷を大規模環境で実証済みのKubernetesスケジューラーにオフロードします。
組み込みのWebベースUIは、ワークフロー実行のリアルタイムなグラフィカル表示を提供します。ユーザーはDAG構造の可視化、個々のPodのステータス確認、ログの閲覧、失敗したステップのブラウザからの直接再実行が可能です。この可観測性は、多段階プロセス内のどこで障害が発生したかを即座に把握できるため、複雑なパイプラインのトラブルシューティングに不可欠です。
データサイエンティストはArgoを使用して、データの前処理、モデルのトレーニング、評価を含むエンドツーエンドのMLライフサイクルをオーケストレーションします。これらをDAGとして定義することで、データクリーニング完了後にのみトレーニングを開始するようにし、再現性の高い自動化された実験を実現します。
DevOpsエンジニアはArgoを使用して、コンテナ化されたアプリケーションのビルド、テスト、デプロイを行います。外部のSaaS CIプロバイダーに依存することなく、複数の環境へのデプロイをトリガーできる複雑な多段階パイプラインを構築し、一貫したデリバリーサイクルを確保します。
データエンジニアはArgoを使用して大規模なETLジョブを実行します。巨大なデータセットを並列Podで処理される小さなチャンクに分割することで、モノリシックなバッチスクリプトと比較して処理時間を大幅に短縮し、Kubernetesの組み込み耐障害性の恩恵を受けることができます。
インフラストラクチャタスクやCI/CDパイプラインの自動化を必要としています。Argoは、既存のKubernetesクラスター内でこれらのプロセスを管理するためのスケーラブルで宣言的な方法を提供し、運用オーバーヘッドを削減します。
MLトレーニングパイプラインのための堅牢なオーケストレーションを必要としています。Argoを使用することで、重い計算タスクに対する複雑な依存関係やリソース要件を定義し、クラスターハードウェア上で実験を確実に実行できます。
社内開発者プラットフォームの構築を担当しています。Argoは、ワークフロー・アズ・ア・サービス(WaaS)提供のコアエンジンとして機能し、他のチームがジョブを実行するための標準化されたプログラム可能なインターフェースを提供します。
オープンソース(Apache License 2.0)。完全に無料で使用可能で、自身のKubernetesインフラストラクチャ上でセルフホストします。