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

概要

継続的インテグレーションは、開発者が自分のコード変更を定期的にセントラルリポジトリにマージし、その後に自動化されたビルドとテストを実行する DevOps ソフトウェア開発の手法です。継続的インテグレーションという用語が最もよく使われるのは、ソフトウェアのリリースプロセスのビルド段階または統合段階を指す場合で、オートメーションの要素 (CI やビルドサービスなど) と啓発の要素 (頻繁に統合する必要性を学習することなど) の両方が含まれます。継続的インテグレーションの主な目的は、バグを早期に発見して対処すること、ソフトウェアの品質を高めること、そしてソフトウェアの更新を検証してリリースするためにかかる時間を短縮することです。

継続的インテグレーションが必要な理由

以前は、チームに所属する開発者が長期間にわたって独立して作業し、作業が完了した後初めて、変更点をマスターブランチにマージしていました。このような方式では、コードの変更をマージする作業が困難で時間がかかるものとなり、小さなバグが修正されないまま長期間にわたって累積することにもなります。こうした要素は、更新のリリースが遅れる原因になります。

継続的インテグレーションの仕組み

継続的インテグレーションでは、開発者は、Git などのバージョン管理システムを使って共有リポジトリに頻繁にコミットします。コミットする前に、開発者は、統合前の追加の検証レイヤーとして自分のコードに単体テストをローカルで実施することを選択できます。継続的インテグレーションサービスでは、自動的にビルドを行って、変更された新しいコードについて単体テストを実施するので、エラーをすぐに発見できます。

継続的インテグレーションは、ソフトウェアのリリースプロセスにおけるビルド段階と単体テスト段階のことを指します。リビジョンがコミットされるたびに、自動化されたビルドとテストが開始されます。

継続的デリバリーでは、コード変更が自動的にビルドされ、テストされ、運用環境へのリリースに向けて準備されます。継続的デリバリーは、継続的インテグレーションを拡張したもので、すべてのコード変更が、ビルド段階の後にテスト環境または運用環境 (あるいはその両方) にデプロイされます。

継続的インテグレーションは、ソフトウェアのリリースプロセスにおけるビルド段階と単体テスト段階のことを指します。リビジョンがコミットされるたびに、自動化されたビルドとテストが開始されます。

継続的インテグレーションのメリット

継続的インテグレーションは、開発者を手動作業から解放することによって開発チームの生産性を向上し、お客様にリリースする前にエラーやバグを減らす習慣を奨励するために役立ちます。
テストの頻度が上がるため、開発チームでは、バグが後になって大きな問題に発展する前に発見して対処できます。
継続的インテグレーションは、開発チームがお客様に迅速かつ頻繁に更新を配信するために役立ちます。