継続的デリバリーとは、ソフトウェア開発手法の 1 つで、コード変更が発生すると、自動的に実稼働環境へのリリース準備が実行されるというものです。最新のアプリケーション開発の柱となる継続的デリバリーは、継続的インテグレーションを拡張したもので、すべてのコード変更が、ビルド段階の後にテスト環境または運用環境 (あるいはその両方) にデプロイされます。適切に実装すると、開発者は、標準化されたテストプロセスに合格し、デプロイ準備の整ったビルド成果物を常に手元に持つことになります。 

継続的デリバリーを実施すると、開発者は単なる単体テストを超えたテストを自動的に実行できるため、お客様にデプロイする前にさまざまな角度からアプリケーションの更新を検証できます。たとえば、UI テスト、ロードテスト、統合テスト、API 信頼性テストなどを実行できます。これは、開発者が更新をより徹底的に検証し、先を見越して問題点を発見するために役立ちます。オンプレミスでは従来困難だった、複数の環境をテスト用に作成してレプリケーションを行う作業も、クラウドを利用すれば、簡単かつコスト効率のよい方法で自動的に実行できます。

継続的デリバリーでは、すべてのコード変更は、ビルドとテストを実行した後、非運用テスト環境またはステージング環境にプッシュされます。その後、運用環境にデプロイする前に、複数の並列したテスト段階を設けることができます。継続的デリバリーと継続的デプロイの違いは、運用環境への更新に手動での承認が必要か否かという点です。継続的デプロイでは、明示的な承認が行われることはなく、自動的に本番環境になります。 

継続的インテグレーションと継続的デリバリー

継続的デリバリーは、ソフトウェアのリリースプロセス全体を自動化します。リビジョンがコミットされるたびに、更新のビルド、テスト、そしてステージングを行う自動化されたフローが開始されます。実際の運用環境へのデプロイを最終的に決定するのは、開発者です。


ソフトウェアのリリースプロセスの自動化

継続的デリバリーでは、開発チームによるコード変更のビルド、テスト、運用環境へのリリースに向けた準備が自動化されるので、ソフトウェアの配信の効率が上がり、迅速に実施できます。

開発者の生産性を向上

こうした手法は、開発者を手動作業から解放することによって開発チームの生産性を向上し、お客様にデプロイする前にエラーやバグを減らす努力を奨励するために役立ちます。

バグを早期に発見して対処

テストの頻度を上げ、その内容を充実させることにより、後になって大きな問題に発展する前に、バグを早期に発見して対処できます。また、継続的デリバリーによってプロセス全体が自動化されるので、自分のコードに付加的な種類のテストを簡単に実行できるようになります。

更新を迅速に配信

継続的デリバリーは、開発チームがお客様に迅速かつ頻繁に更新を配信するために役立ちます。継続的デリバリーを適切に実装すると、開発者は、標準化されたテストプロセスに合格し、デプロイ準備の整ったビルド成果物を常に手元に持つことになります。 

継続的デリバリー、その利点、および AWS CodePipelineAWS CodeBuild を使用した実装方法の詳細については、動画をご覧ください。

AWS では、継続的デリバリーをいくつかの方法で実施できます。

AWS CodePipeline を使用して継続的デリバリーを実施することにより、AWS CodeBuild にコードをビルドし、自動化されたテストを実行し、コードをデプロイするというワークフローを構築できます。チュートリアルに沿って CodePipeline をお試しください。