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

DevOps

継続的デリバリーとは

Jump to section

継続的デリバリーは、自動化を使用して新しいコードのリリースを迅速化するソフトウェア開発手法です。

開発者によるアプリケーションへの変更を、自動化によってコードリポジトリやコンテナレジストリにプッシュできるプロセスを確立します。

継続的デリバリーと CI/CD の関係

継続的デリバリーは、アプリケーション開発のいくつかの段階を自動化することでソフトウェアを頻繁に提供する手法である CI/CD の一部を成すものです。 

CI/CD の「CI」は、継続的インテグレーションを指します。継続的インテグレーションにより、アプリケーションへの新しいコード変更が定期的にビルドおよびテストされ、共通リポジトリに統合されます。CI は、同時に生じるブランチが多すぎて互いに競合するというアプリケーション開発の問題を解決します。

CI/CD の「CD」は継続的デプロイまたは継続的デリバリーを指します。これは、パイプラインのさらに先の段階を自動化する方法です。

継続的デリバリーと継続的デプロイの違い

継続的デリバリーと継続的デプロイは密接に関連する概念ですが、自動化の程度を示すためにあえて使い分けられることがあります。

継続的デリバリーは一般に、開発チームによるアプリケーションへの変更に対してバグがないか自動でテストを行い、変更をリポジトリ (GitHub やコンテナレジストリなど) にアップロードします。ここで、変更が運用チームによって本番環境に導入されます。開発チームとビジネスチームとの間における可視性とコミュニケーションの不足という問題に対する解決策です。したがって、継続的デリバリーの目的は、新規コードの導入作業の負担を最小限にすることです。

一方、継続的デプロイでは、新しいソフトウェアのリリースプロセスを通じてさらにいくつかのステップをカバーします。これには通常、開発者による変更をリポジトリから本番環境に自動的にリリースし、顧客が使用できるようにするプロセスが含まれます。運用チームが担当する手動プロセスが多すぎて、アプリケーションの提供が遅れるという問題に対処します。継続的デリバリーのメリットを活用し、パイプラインの次のステージを自動化します。

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 の基盤です。

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

Red Hat Openshift

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

Red Hat Ansible Automation

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

アプリケーションをデプロイして複数のクラスタを管理し、複数のクラスタへポリシーを広範囲に適用することで、Red Hat OpenShift の価値を拡大します。

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