ログイン / 登録 アカウント

DevOps

CI/CD パイプラインとは

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 パイプラインとは、どのようなものなのでしょうか。

オープンソースの Tekton プロジェクトを使用すると、継続的な統合サーバー、プラグイン、構成の維持や管理を中央のチームに任せることなく、マイクロサービスのライフサイクル全体を制御できる Kubernetes スタイルのデリバリーパイプラインを構築することができます。

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 ツールとうまく連携します。

CI/CD パイプラインの構成要素

Red Hat Openshift

コンテナと Kubernetes のプラットフォームにより、クラウドネイティブ・アプリケーションのデプロイを迅速化します。

Red Hat Ansible Automation Platform

CI/CD では、カスタムコーディングや、複数のソフトウェア・パッケージの取り扱いが必要となります。Red Hat Ansible Automation Platform はオープンソースの自動化言語で、このような機能すべてをワンストップで提供します。

CI/CD についてさらに詳しく知る