開発から運用まで、IT部門のお役に立つ情報をお届けするサイトです

運用管理は変わらない変えるのは”やりかた”だ次世代型ITサービスマネジメント変革ソリューション『縁(ENISHI)』
  • サービス品質

【徹底解説】CI/CDとは?CI/CDパイプラインやCI/CDツールについてイチから解説

  • #アジャイル
  • #CI/CD

2021.04.21

【徹底解説】CI/CDとは?CI/CDパイプラインやCI/CDツールについてイチから解説

CI/CDとは

CI/CDとは、ソフトウェア開発を高速化するため、ビルドやインテグレート、テストなどを自動化し、
すぐに本番環境にリリース可能な状態にする手法のことです。

CI(継続的インテグレーション)とCD(継続的デリバリー)の2つの要素があります。

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

CI(継続的インテグレーション)とは、コードに変更があると、ビルドからテストまで
自動化する手法です。

個々のプログラムからなるソフトウェアは、実際にインテグレートして動かすまで何がおきるかわかりません。
大量のコード変更ののちにインテグレート・テストしてバグを発見しても、原因究明は困難を極めます。

CI(継続的インテグレーション)を取り入れることで、コードを変更するたびにビルド・テストが自動で実行されます。
即時に問題を発見でき、手戻りを最小限に抑え、結果的に開発にかける時間を削減できます。

CD(継続的デリバリー)とは

CD(継続的デリバリー)は、テストをパスしたソフトウェアを自動で実稼働環境にリリースできる状態にする手法です。

ビルドやテストだけでなく、本番環境の構築や最終動作確認などリリースするプロセスを自動化することで、成果物を顧客にいち早く提供し続けることができます。


図解でわかる!CI/CDパイプラインや具体的に必要なツール

CI/CDパイプラインとは、CI/CDを実践するために必要な一連のステップを自動化したものです。
CI/CDパイプラインを構築することで、コードに変更があると、ビルド~テスト~デプロイまでのステップが自動化されます。

CIとCDを部分的に導入することでも一定の効果はあります。
ただし開発プロセス全体のリードタイムを短くするには、各タスクだけでなくタスク間の処理も自動化する必要があります。

全行程を自動化するパイプラインを敷き、開発担当者全員がそのパイプラインを活用することで
ソフトウェアのリリースを高速化できます。

CI/CD全てを1つのツールで自動化することは難しく、開発工程に合わせてツールを組み合わせて
CI/CDパイプラインを作るのが一般的です。

CI/CDパイプラインに必要なツール

CI/CDパイプラインを構築するツールはオープンソースのものから商用のものまで様々です。
CIツールのJenkinsや、ソースコードのバージョン管理ツールGitLabは利用者も多く、ナレッジも豊富です。
また、大手企業での利用実績もあるため、注目を集めています。

※クリックで拡大します

カテゴリ 役割 ツール例
コードリポジトリ/成果物リポジトリ ソースコードのバージョンや成果物を管理します Git
GitHub
CIツール コードに変更があると、ビルドやテストを実行するため各種ツールにコードを連携します Jenkins
Travis CI
構成管理ツール インフラ基盤の構築を自動化したり、構築手順を管理します Ansible
Chef
Puppet
ビルドツール ビルドに必要な処理を自動実行します Gradle
Ant
Maven
テストデータ準備ツール テストに必要なデータを準備します DELPHIX
テストツール 操作テストや負荷テストを実施して、サプリケーションの品質をチェックします UFT One
LoadRunner Professional
sonarQude

スピードと品質を保つために「テスト自動化」は欠かせない

開発がスピードアップしても、品質が落ちては意味がありません。
品質とスピードどちらも担保するためには、ビルドやデプロイの度に発生するテストの自動化が重要です。

最近では、モバイルでの利用を前提としたアプリケーションも多いのではないでしょうか。
モバイルは機種が多種多様なうえに、バージョンアップやシステムアップデートも頻回です。そのため、従来の負荷テストや操作テストに加え、モバイルテストの効率化も重要になっています。

※クリックで拡大します


CI/CDを実践したい、アジャイルを始めたい方へ

さて、CI/CDについてご理解いただけたでしょうか?
アシストではCI/CDを手軽に試すためのソリューションや、アジャイル開発をこれから始める方向けの
伴走型ソリューションを提供しています。

CIを気軽に試せる!CIスターターキット

CIに必要なツール一式をセットにした「CIスターターキット」は、開発者がGitでソースコードをコミットした後、バージョン管理から単体テスト、脆弱性診断、結果レポートまでを自動で行います。CIスターターキットは、Gitを含むEclipseとOracle VM上の仮想マシンから構成されています。

CIを気軽に試せるキット

※クリックで拡大します


アプリケーションデリバリー自動化ソリューション

アプリケーションデリバリー自動化ソシューションは、テスト環境構築から、テストデータのロード、テスト実行、実行結果確認まで自動で行います。

アプリケーションデリバリーソリューション

※クリックで拡大します

上記ソリューションの詳細説明資料をご用意していますのでお気軽にご覧下さい。
また、リモートでのご相談やソリューションの説明なども対応いたします。

これからアジャイルを始めたい方むけソリューション

アジャイル開発を失敗せず確実に進めるためには、開発プロセスの変革ではなく、
各工程の自動化・効率化が何より重要です。

アジャイルスタートアップソリューションは、VSMワークショップによる現状把握や
自動化ハッカソンなど5つのステップでアジャイル開発の実践をサポートします。