継続的デリバリーと CI/CD の関係
継続的デリバリーと継続的デプロイの違い
継続的デリバリーと継続的デプロイは密接に関連する概念ですが、自動化の程度を示すためにあえて使い分けられることがあります。
継続的デリバリーは一般に、開発チームによるアプリケーションへの変更に対してバグがないか自動でテストを行い、変更をリポジトリ (GitHub やコンテナレジストリなど) にアップロードします。ここで、変更が運用チームによって本番環境に導入されます。開発チームとビジネスチームとの間における可視性とコミュニケーションの不足という問題に対する解決策です。したがって、継続的デリバリーの目的は、新規コードの導入作業の負担を最小限にすることです。
一方、継続的デプロイでは、新しいソフトウェアのリリースプロセスを通じてさらにいくつかのステップをカバーします。これには通常、開発者による変更をリポジトリから本番環境に自動的にリリースし、顧客が使用できるようにするプロセスが含まれます。運用チームが担当する手動プロセスが多すぎて、アプリケーションの提供が遅れるという問題に対処します。継続的デリバリーのメリットを活用し、パイプラインの次のステージを自動化します。
トランスフォーメーションを導くプラクティス
3 つのお客様事例を通じて、オープン・デジタル・トランスフォーメーションがどのように有意義な成果につながるのかについて説明します。
CI/CD パイプラインとは
CI/CD パイプラインは、新しいバージョンのソフトウェアを提供するために実行される一連のステップです。CI/CD を実践すると、CI/CD パイプラインが確立されます。
CI/CD パイプラインは、モニタリングと自動化を導入し、特に統合とテストのフェーズ、およびデリバリーとデプロイのフェーズで、アプリケーション開発ワークフローを向上します。
CI/CD パイプラインの各ステップは手動で実行することができますが、CI/CD パイプラインの真の価値はアプリケーションライフサイクルの自動化によって発揮されます。
継続的デリバリーと DevOps の関係
「開発」と「運用」の手法を組み合わせた概念である DevOps は、高品質かつ迅速なサービス提供によりビジネス価値や対応スピードを向上することを目的とした、企業文化、自動化、およびプラットフォームの設計に対するアプローチです。
継続的デリバリーは、DevOps に関連して頻繁に適用される具体的なソフトウェア開発手法です。通常、DevOps アプローチには継続的デリバリーパイプラインの作成が含まれます。
DevOps とは、アイデア (新しいソフトウェア機能、拡張リクエスト、バグ修正など) を開発からプロダクションへと進め、実際にユーザーに価値提供できるようにするまでのプロセスを迅速化するためのアプローチを表します。
開発者は、通常は標準開発環境でコーディングしますが、DevOps によってテスターや IT 運用チームと密接に連携することにより、信頼性を犠牲にすることなく、ソフトウェアの構築、コードのコミット、ユニットテスト、リリースをより短時間で行うことができます。
DevOps の実装による主な成果は CI/CD パイプラインであり、それをアジャイル手法を使用して連携する開発チームと運用チームがサポートしているということです。
パイプラインの自動化が継続的デリバリーをサポート
CI/CD は自動化を活用して、開発、デプロイ、テストのプロセスを迅速化します。自動化によって、人的エラーの削減と品質の維持を同時に実現できます。また、自動化は DevSecOps 戦略の一環としてセキュリティもサポートすることもできます。
ツールには、特にインテグレーション (CI) 側を処理するものや、開発とデプロイ (CD) を管理するもの、継続的なテストや関連機能に特化したものがあります。
最もよく知られている CI/CD 向けのオープンソースツールの 1 つが、自動化サーバーの Jenkins です。Jenkins は、単純な CI サーバーから完全な CD ハブまであらゆるものを処理するように設計されています。
もう 1 つのよく使われるオープンソース・プロジェクトは、Continuous Delivery Foundation の一部である Tekton です。Tekton は、Kubernetes の概念を使用してデリバリーパイプラインを宣言的に記述し、それらをコンテナでオンデマンドで実行する機能を提供します。
Tekton は、Red Hat® OpenShift® の CI/CD ソリューションである OpenShift Pipelines の基盤です。