- 開発プロセス高度化
【徹底解説】CI/CDとは?CI/CDパイプラインやCI/CDツールについてイチから解説
2021.04.21
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 |
テストツール | 操作テストや負荷テストを実施して、サプリケーションの品質をチェックします | UFT One LoadRunner Professional sonarQude |
スピードと品質を保つテスト自動化
開発がスピードアップしても、品質が落ちては意味がありません。
品質とスピードどちらも担保するためには、ビルドやデプロイの度に発生するテストの自動化が重要です。
最近では、モバイルでの利用を前提としたアプリケーションも多いのではないでしょうか。
モバイルは機種が多種多様なうえに、バージョンアップやシステムアップデートも頻回です。そのため、従来の負荷テストや操作テストに加え、モバイルテストの効率化も重要になっています。
CI/CDを実践したい、アジャイルを始めたい方へ
さて、CI/CDについてご理解いただけたでしょうか?
アシストではCI/CDを手軽に試すためのソリューションや、アジャイル開発をこれから始める方向けの
伴走型ソリューションを提供しています。
CIを気軽に試せる!CIスターターキット
CIに必要なツール一式をセットにした「CIスターターキット」は、開発者がGitでソースコードをコミットした後、バージョン管理から単体テスト、脆弱性診断、結果レポートまでを自動で行います。CIスターターキットは、Gitを含むEclipseとOracle VM上の仮想マシンから構成されています。
アプリケーションデリバリー自動化ソリューション
アプリケーションデリバリー自動化ソシューションは、テスト環境構築からテスト実行、実行結果確認まで自動で行います。
上記ソリューションの詳細説明資料をご用意していますのでお気軽にご覧下さい。
また、リモートでのご相談やソリューションの説明なども対応いたします。
関連ソリューション
-
開発プロセス高度化
定期的にお客様の開発状況をヒアリング、チェックさせていただきお客様が「圧倒的なスピードで高品質なアプリケーションをリリースし続ける」状態を支援します。
お客様の状況に合わせて詳しい情報をお届けします。
お気軽にご相談ください。