1. ホーム
  2. 記事一覧
  3. CI(Continuous Integration)継続的インテグレーションを導入するメリット

2022.12.14

CI(Continuous Integration)継続的インテグレーションを導入するメリット

CI(Continuous Integration、以下CI)とは、継続的インテグレーションのことです。Integrationは統合という意味で、継続的に統合・結合を行うことをCIと呼びます。

継続的インテグレーションは開発者のコード変更を中央サーバー(共有リポジトリなど)に定期的にマージし、その度に自動化されたビルドとテストを実行するソフトウェア開発手法です。アジャイル開発などでよく用いられます。

CIの重要性

CI以前は開発者が長期間にわたって独立して作業を行い、完成した後に変更点をマスターブランチへ一度にマージするという開発手法でした。このような開発手法では蓄積したコード変更をマージする作業はコンフリクト(コードの競合)が起きやすく、解消に相当な労力が必要でした。バグが発生した場合も複数の変更点が混在するため影響が広範囲に及び、原因究明までに膨大な時間がかかるとともに膨大な数のコードを精査しなければなりませんでした。

CIを使用した開発手法はこれらの問題点を解消します。リポジトリにコミットを行うだけでバグなどの問題点が発見され、開発者にフィードバックされます。開発者はフィードバックを基に問題点を修正し、再度コミットを行えば迅速に問題解決が行えます。

CIの仕組み

  1. 開発者はGitなどのバージョン管理システムを使い、作成したコードの追加や変更を共有リポジトリに時には一日に何回もコミットします。
  2. コミットされたコードを基にCIシステムでビルドプロセスが実行され、その後に自動テストが実行されます。
  3. CIシステムでエラーが発生した場合、開発者にフィードバックされます。エラーが発生しなければビルドが成功し、コードがステージングサーバーへプッシュされた事が通知されます。
  4. 検証が完了したら開発者は新しいブランチのコードを本番環境にマージできます。

CIのメリット

CIを導入することで次のようなメリットがあります。

  • 開発者の生産性向上

    今まで開発者自身で手作業で行なっていた作業が自動化され、コードレビューの労力削減やこれまでは最終段階で見つかっていた問題が早期に対処できるなど開発チームの生産性が向上します。

  • 運用の標準化

    自動化や構成管理が適切に行われるようになり、運用のルール化を行えます。

  • 品質向上

    テスト頻度が上がることでバグの早期発見・修正によるバグ解決数が増加するので、品質の高い製品をリリースできます。

  • 顧客満足度の向上

    これらの作業効率化・生産性向上により顧客への新機能のリリースも早くなるため、顧客満足度の向上に繋がります。

CI/CD

CIでビルドやテストを自動化し、完了したコードをCD(継続的デリバリー・継続的デプロイ)で本番環境にマージ・デプロイすることを合わせてCI/CDといいます。次の記事に詳細に解説があります。 https://envader.plus/article/44

まとめ

今回はCI(Continuous Integration)について解説しました。

CIとは開発者のコード変更を定期的にマージし、その度に自動化されたビルドとテストを実行するソフトウェア開発手法です。

ポイントはコード変更を定期的にマージし、それを継続的に行うことにあります。CIを導入しない場合ビルドプロセスの実行やテストを手動で行い、バグが発生した場合は複数の変更点があるため原因究明にも膨大な時間がかかります。CIによりこれらの問題の大半は解消され生産性・品質向上に繋がるので、開発環境を整える際は導入を検討しましょう。

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事