Apidog

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

API設計

APIドキュメント

APIデバッグ

APIモック

API自動テスト

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

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

中村 拓也

中村 拓也

Updated on 11月 12, 2024

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でのPOSTリクエスト作成法効果的な戦略

初心者必読!ApidogでのPOSTリクエスト作成法

Apidogを使用してPOSTリクエストを作成するプロセスは簡単で、API開発とテストを合理化する幅広い機能を提供します。初心者から経験豊富な開発者まで、Apidogは強力なツールとして役立ちます。

中村 拓也

10月 21, 2024

手動テスト完全解説:品質を保証する最後の砦効果的な戦略

手動テスト完全解説:品質を保証する最後の砦

手動テストはソフトウェアテストライフサイクルに欠かせない要素であり、アプリケーションの品質、使いやすさ、機能を保証します。自動化の利点がある一方で、手動テストは機械では得られない貴重な洞察と創造性を提供し、包括的なテスト戦略として重要です。

中村 拓也

10月 18, 2024

PostmanでHTTP 405 メソッドなしエラーを修正する方法効果的な戦略

PostmanでHTTP 405 メソッドなしエラーを修正する方法

HTTP 405エラーコードは、無効なAPIキーまたはアクセストークンを使用してサーバーにアクセスしようとすると発生します。この記事では、405エラーについて学び、それを修正する方法について、段階的に解説します。

中村 拓也

8月 11, 2024