継続的デリバリーと継続的デプロイの比較

これら 2 つの自動化方法を使用すると、お客様に高品質なコードをすばやく配信できます。

継続的デリバリーと継続的デプロイとは

継続的インテグレーション、継続的デリバリー、継続的デプロイと一緒に使用し、ソフトウェア配信フェーズを自動化します。 これらのプラクティスを使用すると、開発チームは、より優れた速度、精度、生産性で、新しい機能、機能強化、修正プログラムを顧客にリリースできます。

継続的デリバリーと継続的デプロイには多くの共通点があります。これらのプラクティスの違いを理解し、実装すべきものを見つけるには、自動化できるソフトウェア配信のフェーズを特定する必要があります。

ソフトウェア配信プロセスの自動化

コンシューマーには、製品のパーソナル化とセキュリティの向上という要望があります。開発チームは、これらの要求を満たし、より迅速かつ信頼性のあるソフトウェアを提供するために、DevOps カルチャを採用できます。

DevOps のカルチャは、サイロ化された部門の壁を取り払い、人々、プロセス、テクノロジを統合して、コラボレーションや連携を改善します。その結果、コードの変更の運用環境への反映と、お客様への新しい価値の提供を、可能な限り早く行うことができます。

開発、IT 運用、品質管理、セキュリティのチームはすべて DevOps の下で密接に連携していますが、それでもソフトウェア配信プロセスは複雑です。DevOps では、ソフトウェア配信は、計画、開発、配信、デプロイ、運用の 5 つのフェーズに分類されています。

DevOps でのソフトウェア配信

自動化しない場合、開発チームは、次のようなソフトウェアを手動でビルド、テスト、デプロイする必要があります。

  • コードのチェックイン、テスト、検証。
  • コード変更をメインのブランチにマージ。
  • コードをライブにする準備。
  • デプロイ可能なアーティファクトの作成。
  • コードの運用環境へのプッシュ。

自動化するフェーズ

継続的インテグレーション、継続的デリバリー、継続的デプロイは、開発および配信フェーズの側面を自動化するためのすべてのプラクティスです。また、継続的インテグレーションから始めて、自動化を 1 段階ずつ進めることができます。

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

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

継続的デリバリーと継続的デプロイについて、まずは継続的インテグレーションの説明から開始します。継続的インテグレーションでは、開発フェーズ (コードの構築とテスト) が完全に自動化されています。コードをコミットするたびに、変更が検証され、マスター ブランチにマージされ、コードはビルド アーティファクトにパッケージ化されます。

継続的デリバリー

継続的デリバリーでは、次のフェーズである "配信" が自動化されます。継続的デリバリーでは、新しいビルド アーティファクトが利用可能な場合は常に、アーティファクトが目的の環境に自動的に配置され、デプロイされます。

継続的インテグレーションと継続的デリバリー (CI/CD)

チームが継続的インテグレーションと継続的デリバリー (CI/CD) の両方を実装する場合、開発と配信フェーズが自動化されます。コードはいつでも運用環境で使用できる状態で維持されます。すべてのチームが行う必要があるのは、開発からデプロイへの移行を手動でトリガーすることです。これにより、自動化されたビルド アーティファクトを自動デプロイで利用できるようになります。これは、ボタンを押すのと同じように簡単に行うことができます。

継続的なデプロイ

継続的デプロイでは、お客様がコードのコミットから運用までのプロセス全体を自動化します。開発と配信フェーズの間のトリガーは自動で行われるため、変更の検証を受け、すべてのテストに合格すると、コードの変更がライブでプッシュされます。つまりお客様は、修正プログラムが利用可能になると、ただちに受け取ることができます。

継続的デリバリーと継続的デプロイの比較: どちらを選択すればよいか

継続的デリバリーや継続的開発を採用する場合は、お客様をサポートするツールがあります。

これらのどのプラクティスを実装するかを検討する前に、ご自分の組織にそれをサポートできる DevOps カルチャがあるかどうかを確認してください。次に、DevOps チームはソフトウェア配信プロセス全体の自動化を推進しますが、問題は、"どれが優れているか" ということではありません。 代わりに、"継続的インテグレーションと継続的デリバリーの間に手動トリガーが必要かどうか" を考えてみてください。

答えを探す際には、次の質問を参考にしてください。

  • 利害関係者からの承認なしでデプロイできるか?
  • システムとゲートの要件によってエンドツーエンドの自動化が可能になるか?
  • お客様に運用の変更を少しずつ公開できるか?
  • 自分の組織は運用環境のエラーにすばやく対応しているか?

すべて [はい] と答えた場合は、継続的デプロイのプラクティスを検討し、コードのコミットから運用まで、ソフトウェアの配信を完全に自動化することをお勧めします。

[いいえ] がある場合は、継続的インテグレーションと継続的デリバリー (CI/CD) から始める必要があります。 デプロイから 1 回手動で承認するだけで、運用環境対応のコードの作成を自動化できます。時間が経過すれば、継続的デプロイと、ソフトウェア配信プロセスの完全自動化に向けて取り組むことができます。

どちらの方法にも、各プラクティスの共通の利点があります。

  • 変更は自動的にビルド、検証、テストされます。
  • コードは常にデプロイ可能で、リリース日を心配する必要はありません。
  • リリースでは、利害関係者とお客様のフィードバックをよりすばやく受け取ることができます。
  • 手動および管理のタスクが少なくなり、開発者は生産性を高めることができます。
  • 変更は小規模かつ頻繁に行われるため、障害はめったに発生せず、不安定さは最小限に抑えられます。

継続的インテグレーション、継続的デリバリー、および継続的デプロイのツール

DevOps チームは、ツールチェーン (一連の接続されたソフトウェア開発プログラム) を利用してソフトウェア配信を自動化します。使用するツールは、お客様がどの自動化プラクティスを選択するか、またそのプラクティスでどのフェーズを自動化するかによって異なります。次に例をいくつか示します。

Azure での DevOps の実行を開始する

継続的デリバリーと継続的開発ツール、およびクラウドでの他の DevOps プラクティスを促進するためのツールを詳しくご確認ください。