CI(継続的インテグレーション)


CIとは?

CIとは、Continuous Integrationの略で、継続的インテグレーションと呼ばれています。

CI(継続的インテグレーション)は、開発者が自分のコード変更を定期的にセントラルリポジトリにマージし、その後に自動化されたビルドとテストを実行する ソフトウェアの品質を高めるための手法のことです。

常にビルドが成功しているバージョンの保持とエラーを小さな単位で細かく修正することで、修正コストを小さくすることを目的としています。

CI(継続的インテグレーション)

CIツールを使うと?

CIツール導入以前は、開発者は長期間にわたって独立して作業し、自分の作業が完了したあと初めて、変更点をマスターブランチにマージしていました。このような開発プロセスでは、累積したコード変更をマージする作業は困難で時間のかかるものでした。また、バグが発生した場合も複数の変更が混在するため、影響範囲も広く特定と修正にかかるコストが大きくなってしまいます。

リードタイムを短縮するために、CIツールがあります。CIツールを導入し、ビルドパイプラインは最初は小さな単位でビルドと検証を行いながら、フェーズが進みにつれて大きな単位での検証が行われるように設計します。

そうすることで、エラーフィードバックが早くなり、影響範囲の小さなうちに修正されるようなプロセスとなります。
CI(継続的インテグレーション)

CIツールの1つが「Jenkins」

Jenkinsは、元々CI(継続的インテグレーション)のためのツールとして広く普及しました。テストやビルドを最後にまとめて行うのではなく、コミットされたらその度ビルドとテストを行うようにJenkinsでジョブを作成し、即座にビルドが成功した最新バージョンの特定や、影響範囲の小さいうちにエラーの修正をすることを容易にしました。


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

開発者の生産性を向上

CI(継続的インテグレーション)は、エラーを小さな単位で影響範囲を小さく修正するようになるため、修正コストを削減します。これまでプロジェクトの最終段階で見つかっていたエラーが早く小さなコストで修正されるようになるため、開発チームの生産性が向上し、品質の良いソフトウェアの開発に繋がります。

バグを短時間で発見して対処

テストの頻度が上がるため、開発チームでは、バグが後になって大きな問題に発展する前に発見して対処できます。

更新を迅速に配信

CI(継続的インテグレーション)は、常にビルドが通るリポジトリを維持し、リリースできる最新バージョンの特定を常に行うことができます。そのため、お客様に迅速かつ頻繁に更新を配信することが可能となります。