継続的インテグレーション - DevOps用語集 2023年版
はじめに
本記事では日本仮想化技術がDevOpsに関連する用語解説をわかりやすくお伝えいたします。今回は「継続的インテグレーション」について解説していきたいと思います。
本論1
継続的インテグレーションは、人間の手で行っていたビルドやテストといった作業を自動化し、繰り返し行うことで効率的に品質の高いソフトウェアを開発するための手法です。継続的インテグレーションのゴールは、開発者が行なった変更の結果としての動くコードを素早くリポジトリの既存コードにマージすることです。これを小さい粒度で頻繁に行うことにより、マージによるコード変更のインパクトを小さくし、効率的な開発をすることを目指します。
継続的インテグレーションにおいて重要な点は、動かないコードがマージされないようにすることです。人間が書くコードには、常にバグが混入する危険がつきまといます。これは人間が行う以上、避けることのできない問題です。しかしだからといって、バグのあるままソフトウェアをリリースするわけにもいきません。
そこで行うのがテストです。アプリケーションのロジック本体とは別に、そのコードが意図通りの結果を返すことを確認するためのコード(テストコード、略して単にテストとも)を記述し、このテストコードを実行することで、本来のロジックに間違いがないことを確認するのが一般的です。
正しく書かれたコードは、人間が都度手動で実行する必要はありません。そのためテストは、コードをバージョン管理システムにコミットした後、CI(継続的インテグレーション)の一環として、自動的に実行するのが基本となっています。これにより、コードが変更されるたびに自動でテストが実行され、テストに失敗した場合には即座に開発者に通知され、素早くバグを取り除くことができます。
また、テストを自動で実行するためには、アプリケーションのビルドやテスト環境へのデプロイが必要な場合もあります。その場合は、テストと同様に一連の流れの中で自動的にビルドやデプロイが実行できるようにCIの設定を行います。
開発者が変更したコードを、リリースブランチへマージする際には、マージリクエストと呼ばれる依頼を作成するのが一般的です。ここで別の開発者によるコードレビューが実施され、問題ないと判断されたコードのみが、実際にマージされます。このコードレビューではロジックの正しさに加え、可読性やメンテナンス性などの確認も行われます。加えて、コードの正しさの担保となるテストコードの妥当性に関しても確認を行います。これらのレビューで問題点がないと確認できた変更を既存のコードにマージしていきます。
マージはツールが自動で行なってくれる場合もありますが、変更箇所が他の変更と競合した場合などは人がソースコードを解析しながらマージを行う必要があります。
関連リンク(任意)
かんたんDevOps | 日本仮想化技術株式会社
https://virtualtech.jp/devops/
とことんDevOps | DevOpsに取り組みたい皆さんのための技術情報メディア
https://devops-blog.virtualtech.jp/
この記事の著者:日本仮想化技術株式会社
日本仮想化技術はベンダーニュートラルな独立系仮想化技術のエキスパート集団です。日本仮想化技術ではこれからDevOpsを始めたいと考えるプロジェクトに対して、DevOpsの導入、実践を支援する「DevOpsサポートサービス」というサービスを提供しています。
- 関連キーワード:
- 用語集
DevOps Hubのアカウントをフォローして
更新情報を受け取る
-
Like on Facebook
-
Like on Feedly