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 と、その他の開発者用ツールを組み込んで自動署名、暗号検証、ソフトウェア・アーティファクトのエンドツーエンドの出所追跡を提供する Red Hat Advanced Developer Suite が含まれています。
ワークフローの自動化をサポートするために、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 のお客様、パートナー、およびコミュニティのエコシステムに関する最新の情報を入手しましょう。