CI/CD パイプラインとは
継続的インテグレーションおよび継続的デプロイメント (CI/CD) パイプラインは、開発者が新しいバージョンのソフトウェアを提供するために従う必要のある一連の既定のステップです。CI/CD パイプラインは実践的手法であり、自動化を介してソフトウェア開発のライフサイクル全体でソフトウェア提供を改善することに注力します。
ソフトウェア開発ライフサイクルにおける開発、テスティング、プロダクション、モニタリングの各フェーズの全体で CI/CD を自動化することで、質の高いコードを迅速かつ安全に開発できるようになります。また、テスティングを自動化すると、ソフトウェア開発ライフサイクルの早い段階で依存関係やその他の問題を特定できるようになり、後で時間を節約できます。CI/CD パイプラインの各ステップを手動で実行することはできますが、CI/CD パイプラインの真の価値は自動化によって発揮されます。
CI/CD パイプラインは、仮想マシンやコンテナベースのクラウドネイティブ・アプリケーションを使用するソフトウェア部門にとって有益です。コードの更新や変更をより迅速に統合して、ユーザーからのフィードバックやビジネス上の変更に頻繁かつ効果的に対応できるため、エンドユーザーにとって良い結果がもたらされます。
CI/CD パイプラインと DevOps の関係
CI/CD パイプラインはソフトウェア開発を効率化し加速させることができます。そしてこのパイプラインには DevOps 手法が反映されています。DevOps とは、開発者と IT 運用チームのコラボレーションを促進する一連のアイデアと実践的手法です。
CI/CD の CI とは継続的インテグレーションのことであり、コードのビルド、テスト、マージなどが含まれます。CD は継続的デリバリーを指し、リポジトリへのソフトウェアの自動リリースなどが含まれます。CD は継続的デプロイを指すこともあり、その場合はソフトウェアを本番環境に自動的にデプロイするステップが追加されます。
CI/CD パイプラインは、コードのビルド、テスト、デプロイという過程でソフトウェア開発のプロセスを導きます。CI/CD をサポートするプロセスを自動化することにより、開発チームと運用チームはヒューマンエラーを最小限に抑え、ソフトウェアのリリース方法に関して一貫したプロセスを維持できます。パイプラインには、コードのコンパイル、ユニットテスト、コード分析、セキュリティ、バイナリー作成のためのツールを含めることができます。コンテナ化された環境の場合、パイプラインには、ハイブリッドクラウド全体にデプロイされるコンテナイメージにコードをパッケージ化するためのツールも含まれます。
CI/CD と DevOps はどちらもコード統合プロセスの自動化に焦点を当てており、アイデア (新機能、拡張リクエスト、バグ修正など) を開発から本番へと進め、実際にユーザーに価値提供できるようにするまでのプロセスを迅速化します。開発者は、通常は標準開発環境でコーディングしますが、IT 運用スタッフと密接に連携することにより、信頼性を犠牲にすることなく、より短時間でソフトウェアを構築、テスト、リリースすることができます。
Red Hat のリソース
Tekton とは
Tekton は、クラウドネイティブな CI/CD パイプラインをすばやく作成するための Knative ベースのフレームワークです。Kubernetes ネイティブのフレームワークとして、複数のクラウドプロバイダーやハイブリッド環境にわたるデプロイを容易にします。
Tekton では、Kubernetes のカスタムリソース定義 (CRD) を使用して、複数のパイプライン間でコンポーネントを再利用することができます。Tekton は Kubernetes コントロールプレーンを使用してパイプラインタスクを実行します。業界標準仕様を使用しており、Knative、OpenShift などの既存の CI/CD ツールとうまく連携します。
オープンソースの Tekton プロジェクトを使用すると、継続的な統合サーバー、プラグイン、構成の維持や管理を中央のチームに任せることなく、マイクロサービスのライフサイクル全体を制御できる Kubernetes スタイルのデリバリーパイプラインを構築することができます。
CI/CD パイプラインのセキュリティ
迅速な開発とデプロイのプロセスは、適切なセキュリティがなければ、組織をリスクにさらしてしまう可能性があります。一般的なリスクとしては、機密データが外部に公開されてしまう、安全でないコードやサードパーティのコンポーネントが組み込まれてしまう、ソースコードリポジトリやビルドツールが不正アクセスにさらされる、などがあります。
CI/CD パイプラインでのチェックとテストを自動化すると、コードを保護し、ソフトウェア提供における脆弱性を防ぐことができます。パイプラインにセキュリティを組み込むことで、コードを攻撃から守り、データ漏えいを防ぎ、ポリシーに準拠し、品質を保証することができます。開発サイクル全体を通じて脆弱性が特定、緩和されることで、コードの変更が本番環境にデプロイされる前に徹底的にテストされ、セキュリティ標準に準拠していることが確認できます。
Red Hat OpenShift Pipelines とは
Red Hat® OpenShift® Pipelines は Kubernetes ネイティブのソリューションで、Tekton をベースとしており、OpenShift および Red Hat 開発者用ツールとの緊密な統合を提供します。管理者と開発者は、組織固有のビジネス要件とセキュリティ要件に基づいてアプリケーションのパイプラインのブループリントを作成できます。
OpenShift Pipelines は、パイプラインの各ステップを独自のコンテナで実行するように設計されており、パイプラインの要求に応じて各ステップを個別にスケーリングすることができます。
OpenShift Pipelines は OpenShift サブスクリプションで利用できます。OpenShift コンソールとネイティブに統合されるので、開発者はアプリケーションと一緒にパイプラインを直接設定および実行できます。
Red Hat OpenShift Pipelines の特長
Kubernetes ネイティブのパイプライン
標準の Tekton カスタムリソース定義 (CRD) を使用して、コンテナとして実行され、オンデマンドでスケーリングするパイプラインを定義します。
サーバーレスで実行
中央に CI/CD サーバーを立てて管理することなく、チームのデリバリーパイプライン、プラグイン、アクセス制御を完全に制御できます。
統合された CI/CD エクスペリエンス
Pipeline Builder ビジュアル・インタフェースなど、Red Hat OpenShift コンソールの開発者の視点のほか、コマンドライン・インタフェース、統合された開発環境を通じて、最適化されたユーザーエクスペリエンスが得られます。
CI/CD に Red Hat を選ぶ理由
Red Hat のエキスパートは、組織が既存のアプリケーションをより効率的にモダナイズし、クラウドネイティブ・アプリケーション開発のプロセスを加速するために必要なプラクティス、ツール、文化を生み出すお手伝いをします。
Red Hat OpenShift は Red Hat OpenShift Pipelines と連携して、開発者の生産性の向上、CI/CD パイプラインの自動化、早期かつ開発サイクル全体を通じたセキュリティへの取り組みの移行を支援します。
Red Hat OpenShift GitOps は、git リポジトリ、継続的インテグレーション/継続的デリバリー (CI/CD) ツール、Kubernetes を統合するワークフローを提供し、品質を損なうことなく、より高速で安全かつスケーラブルなソフトウェア開発を実現する Operator です。OpenShift GitOps を使用すると、宣言型の Git 駆動型 CD ワークフローを構築して、アプリケーション開発プラットフォームに直接統合できます。
Red Hat のツールは CI/CD のセキュリティにも役立ちます。 Red Hat Advanced Cluster Security (ACS) for Kubernetes は、Red Hat OpenShift、Amazon Elastic Kubernetes Service (EKS)、Microsoft Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE) など、すべての主要なクラウドとハイブリッド・プラットフォームでコンテナ化された Kubernetes ワークロードを保護するのに役立ちます。Red Hat Trusted Software Supply Chain が提供するセキュリティ・ソリューションのスイートは、ソフトウェア開発ライフサイクルの初期段階からビルドおよびリリースのパイプラインに至るまで、ソフトウェア・コンポーネントと依存関係のセキュリティに重点を置き、セキュリティの問題を監査し、それらに対処します。これらのソリューションには、ソフトウェア部品表 (SBOM) と脆弱性修復情報を管理する Red Hat Trusted Profile Analyzer と、デフォルトのパイプライン定義と自動化されたセキュリティチェックを提供して SLSA (Supply chain Levels for Software Artifacts) レベル 3 ビルドイメージを生成する Red Hat Trusted Application Pipeline が含まれています。
ワークフローの自動化を支援するために、Red Hat Ansible® Automation Platform には、イベント駆動型ソリューション、分析、事前構築済みのコンテンツコレクションなど、組織全体での自動化の導入に必要なツールがすべて揃っています。YAML ベースの共通言語と望ましい状態をベースとするアプローチを使用することで、日常のオペレーションだけでなく、CI/CD パイプラインにも同じ自動化コンテンツを使用できます。また、IT インフラストラクチャのほぼすべての側面と連携できるため、一貫した開発環境、テスト環境、本番環境をより簡単かつ迅速に展開でき、アプリケーションの信頼性と回復力を高めることができます。
Ansible Automation Platform は Red Hat Advanced Cluster Management for Kubernetes と統合する場合、CI/CD パイプライン内で Kubernetes クラスタのオーケストレーションを行うことができます。また、人が理解しやすい自動化言語を使用して、Red Hat OpenShift Operator をより簡単に構築し、保守することができます。
Red Hat 公式ブログ
Red Hat のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。