概要
CI/CD パイプラインは、新しいバージョンのソフトウェアを提供するために実行する必要のある一連のステップです。継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインは、DevOps あるいはサイト信頼性エンジニアリング (SRE) のいずれかのアプローチを使用してソフトウェア配信を向上することに焦点を当てた手法です。
CI/CD パイプラインは、モニタリングと自動化を導入し、特に統合とテストのフェーズ、および配信とデプロイの段階で、アプリケーション開発のプロセスを向上します。CI/CD パイプラインの各ステップは手動で実行することができますが、CI/CD パイプラインの真の価値は自動化によって発揮されます。
CI/CD パイプラインの要素
CI/CD パイプラインを形成するステップは、パイプラインステージと呼ばれるものにグループ化されたタスクの個別のサブセットです。代表的なパイプラインステージは次のとおりです。
- ビルド - アプリケーションがコンパイルされるステージ。
- テスト - コードがテストされるステージ。この段階での自動化により、時間と労力の両方を節約できます。
- リリース - アプリケーションがリポジトリに配信されるステージ。
- デプロイ - コードがプロダクションにデプロイされるステージ。
- 検証とコンプライアンス - ビルドを検証するためのステップは、組織のニーズによって決まります。Clair などのイメージセキュリティスキャンツールは、既知の脆弱性 (CVE) と比較することでイメージの品質を確保します。
これはパイプラインステージの包括的なリストではなく、一般的なステージの例にすぎません。パイプラインは、組織の要件に固有のものになります。
コンテナと CI/CD パイプライン
従来の CI/CD システムは、仮想マシンを使用するパイプライン向けに設計されていますが、クラウドネイティブ・アプリケーション開発が CI/CD パイプラインに利点をもたらします。コンテナによる CI/CD パイプラインとは、どのようなものなのでしょうか。
OpenShift Pipelines
OpenShift Pipelines は、Tekton 上に構築された Red Hat OpenShift の機能であり、クラウドネイティブな CI/CD パイプラインをすばやく作成するためのフレームワークを提供するオープンソース・プロジェクトです。Tekton は、コンテナによって標準のクラウドネイティブな CI/CD エクスペリエンスを提供する Kubernetes プラットフォーム向けの CI/CD フレームワークです。Kubernetes ネイティブのフレームワークとして、複数のクラウドプロバイダーやハイブリッド環境にわたるデプロイを容易にします。Tekton は、Kubernetes のカスタムリソース定義 (CRD) を利用することにより、Kubernetes コントロールプレーンを使用してパイプラインタスクを実行します。業界標準仕様を使用しており、Jenkins、Jenkins X、Skaffold、Knative などの既存の CI/CD ツールとうまく連携します。