OSSで実現する効率化・コスト削減

Argo Workflows/Events活用事例:クラウドネイティブなワークフロー自動化で実現した運用効率化とコスト削減

Tags: Argo Workflows, Argo Events, ワークフロー自動化, 運用効率化, コスト削減, Kubernetes

はじめに:複雑化するシステム運用とワークフローの課題

現代のシステム環境は、マイクロサービス化、クラウド利用の拡大、データ処理の多様化などにより、かつてないほど複雑になっています。これに伴い、システムを構成する様々なタスクの実行や連携、あるいは外部からのイベントに反応する処理(ワークフロー)の管理が、運用効率やコストに大きな影響を与えるようになっています。

従来のシステムでは、バッチ処理はCronとシェルスクリプト、定期レポート作成は特定のツール、データ処理パイプラインは別の専用ツール、といったように、目的別に様々なツールや仕組みが乱立しがちでした。これらのワークフローは、それぞれに監視やエラーハンドリングの仕組みが必要であり、全体像の把握や変更管理、障害発生時の原因特定が困難になるという課題を抱えていました。結果として、運用担当者の負荷が増大し、隠れたコストの増加を招いていました。

このような背景の中、あるエンタープライズ企業では、クラウドネイティブ環境への移行を進める中で、散在するワークフロー管理の集約と効率化が喫緊の課題となっていました。本記事では、この企業がどのようにOSSであるArgo WorkflowsおよびArgo Eventsを活用し、ワークフロー管理の効率化と運用コスト削減を実現したのか、その具体的な事例をご紹介します。

導入前の状況:属人化されたワークフローと増大する運用コスト

事例の企業では、各事業部門や開発チームがそれぞれ独自のスクリプトやバッチ処理ツール、SaaSを利用して多様なワークフローを実行していました。これには以下のような課題がありました。

これらの課題は、ビジネスの成長に伴って実行されるワークフローの数が増加するにつれて、より深刻になっていました。技術部門責任者としては、これらの課題を解決し、運用効率を向上させつつ、コストを最適化することが求められていました。

導入の意思決定と選定:Kubernetesネイティブなワークフローエンジンへ

この企業がワークフロー管理基盤の刷新を検討するにあたり、重視したのは以下の点でした。

複数のOSSおよび商用製品を比較検討した結果、KubernetesネイティブなワークフローエンジンであるArgo Workflowsと、イベント駆動型の自動化を可能にするArgo Eventsがこれらの要件を満たすと判断されました。特に、Kubernetesのカスタムリソースとしてワークフローを定義できる点、コンテナとして任意のタスクを実行できる柔軟性、豊富な外部トリガーに対応するArgo Eventsの機能が評価されました。

導入における懸念点としては、社内にArgoの運用ノウハウが少ないこと、YAMLベースのワークフロー定義の学習コストなどが挙げられました。これに対しては、まずは小規模なワークフローから導入を開始し、社内エンジニア向けのトレーニングを実施するとともに、必要に応じて外部の技術サポートを活用する方針を立てました。

具体的な導入・活用:標準化されたワークフロー定義とイベント駆動処理

Argo WorkflowsとArgo Eventsは、既存のKubernetesクラスター上に迅速にデプロイされました。導入初期段階では、手動で実行されていた定期的なデータ集計バッチや、簡単なレポート作成処理をArgo Workflowsに移行することから始めました。

ワークフローはYAMLファイルとして定義され、Gitリポジトリで管理されました (GitOpsの考え方)。各タスクはDockerコンテナとして実行されるように設計されたため、特定の言語やフレームワークに依存することなく、既存のスクリプトやツールを容易にワークフローに組み込むことができました。

具体的な活用例としては、以下のようなものがあります。

  1. 定期バッチ処理の集約: 従来Cronや様々なスケジューラで実行されていたデータクレンジング、集計、連携バッチ処理などをArgo Workflowsで一元管理。Cronスケジュールでの実行や、依存関係のある複数のタスクを順次または並列実行するワークフローを定義しました。
  2. イベント駆動処理の自動化: Argo Eventsを活用し、S3バケットへのファイルアップロード、特定のAPIエンドポイントへのリクエスト、メッセージキューへのメッセージ到着などをトリガーとして、後続のデータ処理ワークフローを自動的に開始する仕組みを構築しました。これにより、リアルタイムに近いデータ処理が可能となりました。
  3. CI/CDパイプラインの一部自動化: GitLab CI/CDと連携し、特定のコード変更やタグ付けをトリガーとして、Argo Workflowsで定義された複雑なデプロイ前検証ワークフロー(例: パフォーマンステスト、セキュリティスキャン)を実行するようにしました。
  4. 障害対応・運用タスクの自動化: 特定の監視アラートをトリガーとして、関連システムのログ収集や状態確認といった初動対応ワークフローを自動実行することで、担当者の負担軽減と対応速度向上を図りました。

アーキテクチャとしては、Kubernetesクラスター上にArgo WorkflowsコントローラーとArgo Eventsコントローラー(EventBusやEventSourceを含む)をデプロイし、Kubernetes APIを通じてワークフローの定義と実行管理を行いました。MinIO (OSSオブジェクトストレージ) をArtifact Repositoryとして活用し、ワークフローの中間データやログを永続化しました。

導入によって得られた成果:大幅な運用工数削減とコスト最適化

Argo Workflows/Eventsの導入によって、この企業は期待以上の成果を達成しました。

定量的な成果

定性的な成果

直面した課題と克服:学習コストと運用の成熟度向上

導入初期には、Kubernetesのカスタムリソースとしてのワークフロー定義に慣れるための学習コストがありました。また、複雑なワークフローのデバッグには時間を要するケースも見られました。

これらの課題に対しては、以下のような対策を実施しました。

これらの取り組みにより、徐々に社内のArgo活用レベルが向上し、より複雑でミッションクリティカルなワークフローにも適用範囲を拡大できるようになりました。

まとめと今後の展望:ワークフロー自動化のさらなる深化へ

本事例は、OSSであるArgo WorkflowsとArgo Eventsを活用することで、複雑化するシステム環境におけるワークフロー管理の課題を解決し、大幅な運用効率化とコスト削減を実現できることを示しています。Kubernetesネイティブであることの強みを活かし、柔軟性、スケーラビリティ、そしてコスト効率を両立させることが可能となりました。

この事例から得られる教訓としては、以下の点が挙げられます。

この企業では、今後さらに機械学習パイプラインの自動化や、事業部門のより複雑なビジネスプロセス自動化にもArgo Workflows/Eventsの適用範囲を広げていくことを検討しています。ワークフロー自動化は、IT部門だけでなく、ビジネス部門全体の効率化にも寄与する可能性を秘めています。技術部門責任者として、自社のワークフロー管理の現状を見直し、OSS活用による効率化・コスト削減の可能性を検討する価値は大きいと言えるでしょう。