分散型 Argo ワークフロー (ワークフロー クラスタ) 用の Kubernetes クラスタは、Distributed Cloud Container Platform for Kubernetes (ACK One) によって提供されるフルマネージド Argo Workflows サービスであり、オープンソース Argo Workflows の仕様に準拠しています。 ワークフロー クラスタは大規模な計算集中型ジョブを対象としています。 ワークフロー クラスタは Elastic Container Instance を統合して、オンデマンドの拡張と自動スケーリングをサポートします。 また、プリエンプティブルインスタンスもサポートしているため、計算コストを大幅に削減できます。 このトピックでは、ワークフロー クラスタに基づく継続的インテグレーション (CI) パイプライン ソリューションの利点、このソリューションで解決される問題、アーキテクチャ、およびベストプラクティスについて説明します。
利点
Argo Workflows は Kubernetes 上に開発されています。 Argo Workflows と Kubernetes はどちらも長年の実践に基づいてテストされています。 自動スケーリング機能と同時実行機能により、Argo Workflows は多数のパイプラインをより高速かつ低コストで処理できます。 これにより、開発者はビジネス開発に集中し、ビジネス価値を探求できます。
Argo Workflows は、Argo エコシステムの Argo CD、Argo Rollout、および Argo Event とシームレスに統合して、CI シナリオを強化できます。
Argo Workflows に基づいて、クラウドネイティブで効率的、かつ費用対効果の高い CI パイプラインを多数作成できます。
Jenkins と比較して、Argo Workflows には次の利点があります。
比較項目 | Argo Workflows | Jenkins |
Kubernetes ネイティブかどうか | はい。 Argo Workflows には、Kubernetes コンテナの管理において次の利点があります。
| いいえ。 |
自動スケーリング、同時実行性、およびパフォーマンス |
|
|
コスト |
| Jenkins にはアイドル状態の計算リソースが存在する可能性があり、リソースの浪費につながります。 |
コミュニティとエコシステム | Argo コミュニティは継続的に成長しており、エコシステムの Argo CD、Argo Rollout、および Argo Event とシームレスに統合して、CI シナリオを強化します。 | Jenkins コミュニティは成熟しており、豊富なリソースとプラグインが用意されているため、初心者の技術的なギャップを大幅に縮小できます。 ただし、プラグインの更新と権限管理の運用コストは時間の経過とともに増加し続けます。 開発者は、機能の開発やビジネス価値の探求ではなく、プラグインのメンテナンスにエネルギーを費やす必要があります。 |
解決される問題
Kubernetes ネイティブの CI パイプラインを作成できます。
パイプラインの数が増えてもパフォーマンスは低下しません。
自動拡張と高い同時実行性をサポートし、パイプラインを迅速に実行できます。 これにより、アイドル状態の計算リソースが削減され、リソースの浪費が回避されます。
RBAC 権限管理をサポートし、Argo の SSO 機能と併用して、マルチテナント分離シナリオをサポートできます。
プリエンプティブル エラスティック コンテナ インスタンス をサポートして、計算コストを大幅に削減します。
アーキテクチャ
ベスト プラクティス
詳細については、「ワークフロー クラスタで Golang プロジェクトの CI パイプラインを作成する」をご参照ください。
関連情報
ワークフロー クラスタの詳細については、「分散型 Argo ワークフロー (ワークフロー クラスタ) 用 Kubernetes クラスタの概要」をご参照ください。