ホーム Topics 継続的デリバリーの紹介 継続的デリバリーとは
継続的デリバリーにより、開発チームはソフトウェア開発ライフサイクルを通じてソフトウェアを移行するプロセスを自動化できます。
IBMニュースレターの購読
黒と青の背景
継続的デリバリーとは

継続的デリバリーにより、開発チームはソフトウェア開発ライフサイクルを通じてソフトウェアを移行するプロセスを自動化でき、統合ツールボックスをプロビジョニングする際に次のような多くのメリットが得られます。

  • 継続的なテストと開発により、デプロイまでの時間を短縮

  • 従来のソフトウェア開発に伴うコストの削減

  • プロジェクトの規模に基づいてソフトウェア開発を拡張

  • 開発サイクルの各フェーズにコードを自動的にデプロイ

次の動画では、Eric Minickが継続的デリバリーについて詳しく説明します。

継続的デリバリーのベスト・プラクティス

継続的デリバリーを使用する際に考慮すべきベスト・プラクティスを以下に示します。

  • すべての変更をリリース可能にする―継続的デリバリーを使用してすべての変更をリリース可能にする場合は、監査の目的で、ユーザー・ドキュメント、操作ランブック、および変更内容に関する情報を含める必要があります。

  • トランクベースの開発を取り入れる―継続的デリバリーは継続的統合の上に構築されます。すべての変更が一緒にビルド、テスト、デプロイされ、最速のフィードバックが得られるように、統合を遅らせる分岐をできる限り避けてください。

  • 自動化されたパイプラインによるデリバリー―継続的デリバリーの実装を成功させるには、すべてのコード・リリースが一貫した方法でテスト環境と実稼働環境に移行することを保証する、適切に構築された自動化されたデリバリー・パイプラインが必要だ。

  • 可能な限り自動化する―継続的デリバリーでは、コードのビルドやデプロイだけでなく、新しい開発環境の構築も含めて、ソフトウェア開発ライフサイクルの中で可能な限り多くのプロセスを自動化し、信頼性の高い優れたデリバリー・パイプラインを構築する必要があります。

  • ダウンタイムゼロを目指す―アプリケーションの可用性を確保するために、継続的な更新を頻繁に行う場合、新しい機能を実稼働環境にプッシュするときは、まず、公開されているアプリケーション・インスタンスにデプロイする前に、その機能を検証する必要があります。

  • テストの細分度でリリースする―システムの2つの部分を一緒にテストしなければならない場合、システムの各要素に互換性があることがわかるように、一緒にリリースする必要があります。リリース自動化ツールは、この種のデリバリーを調整するのに適しています。または、完全に分離します。
継続的なパイプライン/フレームワーク

継続的デリバリーの利点を活用するには、継続的探索、継続的統合、継続的デプロイメント、オンデマンドでのリリースなど、継続的フレームワークの他の要素が必要です。

継続的デリバリー・パイプライン・ステージを使用する場合は、それらをステージ内の実行単位である個別のジョブに分割する必要があります。

  • ジョブをビルドするビルド・ジョブでプロジェクトをコンパイルしてデプロイの準備をし、ビルド・アーカイブ・ディレクトリーに送信できる成果物を生成します。

  • ジョブをデプロイする― 継続的デリバリー・パイプラインに、URLからアクセスできるアプリとしてプロジェクトをアップロードします。プロジェクトをデプロイした後、ダッシュボードにプロジェクトを表示します。

  • ジョブをテストするサードパーティー・テスト・サービスを使用して、単体テストまたは機能テストのスイートに基づいて、ビルドおよびデプロイ・ジョブの前後にテスト・ジョブをカスタマイズして含めることができます。

継続的デリバリー・パイプラインは、開発チームに次のようなメリットをもたらします。

  • ビルド、ユニット・テスト、デプロイを自動化できます

  • Gitリポジトリー、問題追跡、WebベースのIDE(統合開発環境)を使用してコードを編集およびプッシュできます

  • 自社サービス、オープンソース・ツール、サードパーティー・ツールを使用してアプリを構築、デプロイ、管理するための統合DevOps ツールボックスを作成できます

  • IDEを使用してどこからでもコードを編集し、ソース管理タスクを作成、編集、実行、デバッグ、完了できます

  • 自動化されたパイプラインを使用して、ビルド、テスト、デプロイメントを反復可能な方法で継続的に提供します

  • ビルド・ステータス、セキュリティー・スキャン結果、コード・カバレッジ、テスト・カバレッジを把握することで、アプリを次の環境にプロモーションさせるかどうかを評価できるようになり、品質が向上します(ポリシー・ゲートにより、プロモーション前に自動的に品質を確保します)
継続的デプロイメントと継続的デリバリー

継続的デプロイメントは、継続的デリバリー・パイプラインの一部になり得ます。具体的には、継続的デリバリーとは、開発ライフサイクル(デリバリー・ライフサイクルと呼ばれることもある)を通じたコードの自動化された移動のことであり、継続的デプロイメントとは、そのコードが必要な自動テストに合格したら実稼働環境に自動的に移動させることです。

継続的デプロイメントをデリバリー・パイプラインの一部にするかどうかは、ビジネス・ニーズによって異なります。ビジネスにおいて、デリバリー・チームが新しいソフトウェアや更新されたソフトウェアを実稼働環境に繰り返し、確実に、あるいは可能な限り迅速にリリースする必要がある場合、あるいはソリューションに複数の依存関係がある場合は、継続的デプロイメントが有益である可能性が高いと言えます。

継続的デプロイメントと継続的デリバリーの違いの詳細については、次のビデオを参照してください。

継続的デリバリー・ツール

継続的デリバリー・ツールを使用すると、オープンソース・ツールを使用してアプリケーションを構築、デプロイ、管理できます。一連のツールを統合することにより、開発チームだけでなく運用チームに対しても、繰り返し可能で管理可能なタスクを作成できます。

ツールボックスには、現在のクラウド・サービス、オープン・ソース・ツール、サードパーティー・ツールを含めることができますが、以下を含む継続的デリバリー・ツールも検討することをお勧めします。

  • ビルドとデプロイの自動化のための反復可能なテンプレート。あるアプリでうまくいけば、他のアプリでもうまくいくはずです。もう、すべてのチームがそれぞれに設定に四苦八苦する必要はありません。

  • 変更をプッシュするときに自動的にビルドし、クラウドにデプロイし、ビルドとデプロイメントをツール・チェーンに組み込み、ツールチェーン全体でデプロイメントを管理できるパイプライン。

  • チーム・コラボレーション、計画、ソースコード管理、テストのためのツール。

  • チームがどこで急速に進んでいるのか、どこで物事が行き詰まっているのかを明らかにし、「より継続的」になるためのガイドを提供するツール。

強力な継続的デリバリー・パイプラインに使用できるオープンソースの継続的デリバリー・ツールには、Jenkins、Concourse CI、Spinnaker、Travis CI、GoCD、GitLab CIなどがあります。

アジャイルとDevOps

アジャイルな継続的デリバリー

以前は、ソフトウェアを一度リリースして、それを更新するだけでした。その後、最初と最後にのみ顧客に相談して、ソフトウェアが顧客のニーズを満たしているかどうかを確認するようになりました。

アジャイルは、継続的デリバリー・スケジュールに従ってソフトウェアを短い反復で作成する方法であり、現在のアジャイル継続的デリバリー・プロセスは、定義された各機能が利用可能になるたびにコードを顧客にリリースできることを意味します。アジャイル開発と継続的デリバリーは、実稼働環境の準備が整ったらすぐに機能を顧客に提供するための鍵となります。目標は、パイプライン終了時に各機能をリリースできる状態にすることです。

アジャイル原則の利点の詳細はこちら。

DevOpsと継続的デリバリー

過去20年間で、ソフトウェア開発は標準的なウォーターフォールの概念からより効率的なアジャイル手法に移行し、大きな変化を遂げてきました。適応するには、アジャイル、DevOps、継続的デリバリーに重点を置いたアプローチに移行する必要があります。継続的デリバリー・パイプラインの一部として、これらの集中化されたプロセスにより、より信頼性が高く高品質なソフトウェアのリリースと更新が可能になります。

アジャイル開発を通じてより迅速かつ小規模なソフトウェア・リリースを行うと、ソフトウェア開発の個々の段階に重点が置かれるようになります。同時にDevOpsは、開発部門と運用部門が密接に融合し、コーディングからテスト、デプロイメント、サポートに至るまで、ソフトウェア開発ライフサイクル全体を手がける1つのチームとなるため、「全体像」と文化的変化に意識を集中させることができる。

DevOpsプロセスの詳細については、以下のビデオをご覧ください。

関連ソリューション
IBM Cloud® Continuous Delivery

IBM Continuous Deliveryは、ツールチェーンのプロビジョニング、ビルドとテストの自動化、分析による品質管理を支援するクラウド・サービスです。

IBM Cloud® Continuous Deliveryの詳細はこちら
IBM UrbanCode®

IBM UrbanCodeファミリーのソフトウェア製品は、アプリケーションの配信を加速し、手動プロセスを削減することで、ソフトウェアをより迅速に市場に提供するのに役立ちます。

IBM UrbanCode®の詳細はこちら
Tekton on IBM Cloud®

KubernetesネイティブのCI/CDパイプラインを最高の速度と柔軟性で作成します。

Tekton on IBM Cloudの詳細はこちら
参考情報 DevOpsとは何ですか?

DevOps は、ソフトウェア開発チームと IT 運用チームの作業を組み合わせて自動化することで、高品質のソフトウェアの提供を迅速化します。

継続的インテグレーションとは

継続的インテグレーションは、開発者が少なくとも1日に1回新しいコードをコード・ベースに統合する反復的な開発プロセスです。

CI/CDとCI/CDパイプラインとは

継続的統合/継続的デリバリー(CI/CD)パイプラインの実践的なガイド。

次のステップ

DevOps の準備はできていますか? 市場が要求する速度でソフトウェアとサービスを提供するには、チームがフィードバックとデータに基づいて迅速に繰り返して実験し、新しいバージョンを頻繁にデプロイする必要があります。最も成功しているクラウド開発チームは、最新の DevOps 文化と実践を採用し、クラウドネイティブ アーキテクチャを採用し、クラス最高のツールからツールチェーンを組み立てて生産性を最大限に引き出しています。

DevOpsソリューションを見つける