Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / ソリューション / CI/CDパイプラインとは、実装方法は?

CI/CDパイプラインとは、実装方法は?

CI/CDパイプラインとは、ソフトウェア開発プロセスを自動化するための方法として、多くのアプリ開発中に品質保証の手段として利用されています。本文では、CI/CDパイプラインの基本情報を皆さんに紹介した上、それを簡単に実装できる方法を皆さんに紹介します。

CI/CDパイプラインとは、ソフトウェア開発プロセスを自動化するための方法として、多くのアプリ開発中に品質保証の手段として利用されています。本文では、CI/CDパイプラインの基本情報を皆さんに紹介した上、それを簡単に実装できる方法を皆さんに紹介します。

CI/CDパイプラインとは

CI/CDパイプラインとは、ソフトウェア開発プロセスを自動化するための方法論です。CIはContinuous Integration(継続的インテグレーション)、CDはContinuous Delivery/Continuous Deployment(継続的デリバリー/継続的デプロイメント)の略称です。CI/CDパイプラインを実装することで、ソースコードの変更があるたびに、自動的にビルド、テスト、リリースプロセスを実行できます。これにより品質を維持しつつ、開発スピードを上げることができるのでしょう。

継続的インテグレーション(CI)について

継続的インテグレーション(Continuous Integration、CI)とは、ソフトウェア開発において、開発者がコードの変更を頻繁にリポジトリに取り込むプラクティスです。

継続的インテグレーションを実現するために、主に次の流れで行うことができます。

  • 開発者は日次、時間単位でコードの変更を共有リポジトリにコミット
  • コミットがあるたびに、自動的にビルドとテストが実行
  • ビルドやテスト結果は開発者に即座にフィードバック
  • インテグレーション上の問題は早期に発見できるため、開発品質が向上

CIを実現するためには、GitやSVNなどのバージョン管理システムと、Jenkins、CircleCIなどのCIツールを使うのが一般的です。CIのメリットは、複数人での開発を効率的に進められること、バグを早期検出できること、リリースサイクルを短縮できることなどがあげられます。アジャイル開発手法と密接に関わるプラクティスです。

継続的デリバリーとデプロイメント(CD)について

継続的インテグレーションを行なった上、継続的デリバリー(Continuous Delivery)と継続的デプロイメント(Continuous Deployment)は、CIのプロセスを拡張したソフトウェア配信の手法です。

継続的デリバリー

  • 新しいコード変更がリポジトリにコミットされるたびに、自動的にビルド、テスト、パッケージングを実行
  • その結果を手動で本番環境にデプロイする

つまり自動化は本番デプロイまでではなく、人為的な判断を介在させる手法です。

継続的デプロイメント

  • 新しい変更があるたびに、自動的にビルド、テスト、本番へのデプロイまで全てを実行
  • 人の手を全く介さずに、開発から本番デプロイまで完全自動化する

ということで、継続的デリバリーと継続的デプロイメントの共通目的は、より頻繁にリリースを行い、迅速な市場フィードバックを得ることにあります。自動化の程度によってデリバリーとデプロイメントを使い分けます。

CI/CDパイプラインの仕組み

CI/CDを実現するために、主に次のような仕組みになっています。

  1. 開発者がソースコードを変更し、リポジトリ(GitHubなど)にコミットする
  2. コミットをトリガーとして、CIサーバー(Jenkinsなど)が自動的にビルドプロセスを実行
  3. ビルドに成功したならば、自動的に単体テスト・統合テストを実行
  4. テストに成功した場合、CD(継続的デリバリー)では成果物をリリース用のアーティファクトとして保管
  5. CD(継続的デプロイメント)ではさらにアーティファクトを自動的に本番環境にデプロイ
  6. デプロイ結果は開発者に通知され、必要に応じて監視・ロールバックを実施
  7. 以上のプロセスを繰り返し、頻繁なインテグレーションとデリバリーを実現
CI/CDパイプラインの仕組み

CI/CDパイプライン構築に利用されるツール

CI/CDを実現するためには、自動ビルドツール、テスト自動化、コンテナ技術などの導入が必要になります。代表的なCI/CDツールとして、Jenkins、CircleCI、TravisCIなどがあげられます。次は、CI/CDパイプラインを構築するために利用される主なツールを紹介します。

CIサーバー

  • Jenkins - 最も普及しているオープンソースのCIサーバー
  • CircleCI - SaaS型のCIサービス
  • TravisCI - GitHubとの連携が強いCIサービス
  • TeamCity - JetBrains社の商用CIツール

自動ビルド

  • Maven - Javaアプリのビルド自動化ツール
  • Gradle - Mavenに替わるビルド自動化ツール
  • webpack - JavaScriptアプリのビルド・パッケージングツール

テスト自動化

  • JUnit - Javaのユニットテストフレームワーク
  • Selenium - ブラウザオートメーションテストツール

コンテナ

  • Docker - コンテナ仮想化技術
  • Kubernetes - コンテナオーケストレーションツール

クラウドプラットフォーム

  • AWS - CodePipeline, CodeDeployなどのサービス
  • GCP - Cloud Build, Cloud Runなどのサービス

これらのツールを組み合わせることで、エンドトゥエンドのCI/CDパイプラインを実現できます。

ApidogでCI/CDをより簡単に実現

現在、APIは開発者同士のインターフェースとなるため、アプリ開発の基盤にもなっています。アプリを開発するときに、各APIを利用しなければなりません。そこで、APIの仕様などを頻繁的に変更する場合、CI /CDパイプラインを利用すると、サービスの品質を保証することもできますし、サービスのリリースサイクルを非常に短縮することもできます。

button

ApidogをJenkinsに連携して自動テストを実現

定期的にテストを実行したい場合、ApidogのCI/CD機能を使って、Jenkinsと連携して行うことがお勧めです。

ステップ⒈Apidogを開き、左側メニューから自動テストテストシナリオを新規作成の順にクリックして、テストシナリオを手動で配置します。

シナリオテストを配置

ステップ⒉上部のメニューからCI /CDをクリックして、「新規」ボタンをクリックすると、Jenkinsでの実行コマンドが表示されます。

Jenkinsのコマンドを取得

このように、ApidogのCI/CD機能を使って、Jenkinsに連携すると、自動テストが簡単に実行されます。

WebhookでAPIに変更がある度に継続的インテグレーションを実現

継続インテグレーションを実現するために、APIの仕様などに変更が生じる度に、自動的にテストを実行する必要があります。特に大規模のプロジェクトは数多くのAPIを保有する場合、どのAPIに何らかの変更があっても、サービス品質を確保するために、自動テストを行う必要があると思います。

Apidogできちんと管理されているAPIに何らかの変更がある場合、Webhook機能を通じてJenkinsに伝えることができますので、一旦APIに変更があると、Jenkins側は変更の通知が受けられ、自動テストを行うことができるようになります。

左側メニューから「共有」→「通知設定」→「サードパーティ連携」の順にWebhookのトリガーイベントを設定してJenkinsに連携できます。

ApidogをJenkinsに連携してCI/CDを実現
button

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。