本文へジャンプします。

TOP

ニフクラクラウドナビ

「CI/CD」とは

「CI」とは「Continuous Integrationl(継続的インテグレーション)」の略で、ソフトウェア開発におけるビルドやテストを自動化し、継続的に行うアプローチのことです。

「CD」とは「Continuous Delivery(継続的デリバリー)」の略で、CIによってテストされたコードのマージや、本番環境向けのビルドの作成を自動的に行い、本番環境にデプロイが可能な状態を整えるプロセスのことです。

また「CD」は「Continuous Deployment(継続的デプロイ)」の略として使われることもあります。継続的デプロイは継続的デリバリーとよく似た概念ですが、継続的デリバリーがデプロイ可能な状態を準備するだけなのに対し、継続的デプロイは実際に本番環境へのデプロイまでを行う点が異なります。

このようなビルド、テスト、デプロイを自動化し、継続的に行う手法のことを、あわせて「CI/CD」と呼びます。

CI/CDとは「ビルド、テスト、デプロイを自動化するシステム」

CI/CDとは「ビルド、テスト、デプロイを自動化するシステム」

近年、ソフトウェア開発の規模はより大きく、複雑化しています。そこで開発する機能を小さく区切り、継続的に開発、テスト、リリースというサイクルを回していく「アジャイルソフトウェア開発」を実施する例も増えています。

少しずつ機能を追加できるアジャイル開発では、必然的にリリースの回数が増加します。早いペースでサイクルを回すチームでは、毎週新機能をリリースするといったことも、決して珍しくありません。

しかし、リリースの回数が増えるということは、ソフトウェアの品質を担保する「テスト」、ソフトウェアを実行可能な状態にパッケージングする「ビルド」、パッケージをサーバーに配備して利用可能な状態を整える「デプロイ」といった、コーディング以外の作業にかかるコストが無視できなくなってきます。

「CI/CD」は、これらの作業を自動化するための手法です。よくある例では、GitHubへソースコードをコミットすると、CIによって自動的に「コードにエラーがないか」「既存の機能を破壊していないか」といった各種のテストを行います。CIを行うことでバグを早期に検出し、リリース用のブランチにバグが混入することを防げます。

CIによるテストをパスしたら、CDによってコードがリリース用のブランチにマージされ、ビルドが行われます。ビルドされたアプリケーションは自動でテスト用のサーバーに「デリバリー」され、すぐに動作確認が行えるようになります。

継続的デリバリーではこうした動作確認の後、実際に本番リリースをするかどうかは人間が判断して行います。しかし、継続的デプロイでは、本番環境へのリリースまでもが自動的に行われます。

単に作業効率を上げるだけでなく、テストやビルド作業から属人性を排除できるというメリットもあるため、こうした「新機能をコミットしたら自動でテスト、ビルド、デプロイを実行し、テスト環境上で即動作確認が可能。場合によっては本番リリースまでも自動で行う」というCI/CDパイプラインの構築は一般的になっています。

CI/CDを実行するツールには、オンプレミスで実行できるオープンソースの「Jenkins」や、クラウドサービスの「CircleCI」「Travis CI」などがあります。開発環境やデプロイ先のプラットフォームを考え、最適なサービスを選択することも重要です。

品質を犠牲にせず、頻繁なリリースを実現する

「CI/CD」を導入することで、バグの検出やリリース作業を効率よく行えます。また人力で行うテストとは異なり、人間に起因するミスが起きず、品質が担保されるというメリットもあります。品質を落とさずに、高速な開発、リリースというサイクルを回すためには必須と言ってよいでしょう。

クラウド移行のポイントを徹底解説無料ebookをダウンロード

導入のご相談はお電話でも受け付けております。

0120-22-1200

0120-22-1200

受付時間:平日9:00〜17:45
※携帯電話・PHSからもご利用可能