Azure Pipelinesとは?
Azure Pipelinesとは、Microsoftが提供するクラウドベースのCI/CD(継続的インテグレーション/継続的デリバリー)サービスです。CI/CDとは、コードの変更を自動的にビルド・テストし(CI)、その結果を自動的に各環境へデプロイする(CD)一連の仕組みを指します。
この自動化により、手動作業によるミスの削減やリリースサイクルの短縮が期待できます。Azure Pipelinesは、このCI/CDを実現するための機能をクラウド上で包括的に提供するサービスです。
Azure Pipelinesは、Azure DevOpsというソフトウェア開発支援プラットフォームの一部として提供されています。対応するプログラミング言語はNode.js、Python、Java、C#、Go、Rubyなど多岐にわたり、Windows、Linux、macOSのいずれの環境でもパイプラインを実行できます。GitHubやBitbucketといった主要なソースコード管理サービスとの連携にも対応しており、既存の開発ワークフローに組み込みやすい点も特徴です。
Azure DevOpsとは?
Azure DevOpsとは、ソフトウェア開発のライフサイクル全体を支援するために Microsoftが提供するクラウドプラットフォームです。計画、開発、テスト、リリースという一連の開発フローを1つのプラットフォーム上でカバーできるよう、5つの統合サービスで構成されています。
以下に、Azure DevOpsを構成する5つのサービスの概要をまとめた表を示します。
サービス名 | 役割 | 主な機能 |
Azure Boards | プロジェクト管理 | かんばんボード、バックログ管理、スプリント計画、作業項目の追跡 |
Azure Repos | ソースコード管理 | Gitリポジトリのホスティング、プルリクエスト、コードレビュー |
Azure Pipelines | ビルド・デプロイの自動化 | CI/CDパイプラインの構築、マルチプラットフォーム対応、YAML定義 |
Azure Test Plans | テスト管理 | 手動テスト、探索的テスト、自動テストの計画と実行管理 |
Azure Artifacts | パッケージ管理 | npm、NuGet、Maven、Pythonパッケージのホスティングと配布 |
Azure DevOpsの大きな特徴は、これらのサービスを必要に応じて個別に利用できる点です。たとえば、ソースコード管理にはGitHubを使いつつ、CI/CDの部分だけAzure Pipelinesを導入するといった運用も可能です。
また、Azure以外のクラウド環境(AWS、GCPなど)へのデプロイにも対応しているため、特定のクラウドベンダーに依存しない柔軟な構成を組むこともできます。
GitHub Actionsとの違い
Azure Pipelinesと比較されやすい製品として、GitHub Actionsがあります。どちらもCI/CDを自動化するためのサービスですが、設計思想と向いている運用に違いがあります。
GitHub Actionsは、GitHubリポジトリ内でワークフローを定義し、pushやpull requestなどのイベントを起点に実行する仕組みです。開発者が日常的に使うGitHub上で、そのままビルド・テスト・デプロイまで完結しやすい点が特徴です。一方、Azure PipelinesはAzure DevOpsの一部として提供されており、Azure BoardsやAzure Repos、Azure Test Plans、Azure Artifactsと組み合わせながら、開発ライフサイクル全体を統合的に管理しやすい構成になっています。
また、Azure PipelinesはGitHubリポジトリとも連携できるため、「ソースコード管理はGitHub、CI/CDはAzure Pipelines」という構成も選択できます。GitHub中心の開発体験を重視する場合はGitHub Actions、Azure DevOps全体で計画・開発・テスト・リリースを一元管理したい場合はAzure Pipelinesが候補になります。
以下に、両者の違いを整理します。
比較項目 | Azure Pipelines | GitHub Actions |
|---|---|---|
位置づけ | Azure DevOpsのCI/CD機能 | GitHub上のCI/CD・自動化機能 |
管理の中心 | Azure DevOps | GitHubリポジトリ |
向いているケース | Azure DevOps全体で開発管理したい場合 | GitHub中心で素早く自動化したい場合 |
GitHubとの連携 | GitHubリポジトリを接続して利用可能 | GitHub内でそのまま利用可能 |
自動化の再利用 | テンプレート化して組織内で共通化しやすい | ActionsやReusable Workflowsで再利用しやすい |
デプロイ管理 | 環境、承認、チェックをAzure DevOps側で管理 | Environmentsや承認をGitHub側で管理 |
選定時は、機能差だけでなく「どこを開発の中心に置くか」で判断することが重要です。
すでにAzure BoardsやAzure Repos、Test Plansを含めてAzure DevOpsを利用している場合は、Azure Pipelinesを選ぶことで権限管理や承認フロー、開発プロセス全体をまとめて運用しやすくなります。
一方で、コード管理・レビュー・自動化をGitHubに集約したい場合は、GitHub Actionsのほうが自然に導入できます。
そのため、Azure Pipelinesは「Azure DevOpsを基盤にした中〜大規模運用」に向いており、GitHub Actionsは「GitHub中心の開発体験を維持したいチーム」に向いている、と整理すると分かりやすいでしょう。
Azure Pipelinesの主な機能

Azure Pipelines (引用:Microsoft)
Azure Pipelinesには、開発チームの自動化ニーズに応える多様な機能が備わっています。このセクションでは具体的な機能を詳しく見ていきます。
CI(継続的インテグレーション)とCD(継続的デリバリー)
Azure Pipelinesの中核をなすのが、CIとCDの自動化機能です。CIとは、開発者がリポジトリにコードをプッシュするたびに、自動的にビルドとテストを実行する仕組みを指します。これにより、コードの不具合を早期に検出し、修正コストを抑えることが期待できます。
CDは、CIで生成されたビルド成果物を、開発環境、ステージング環境、本番環境へと段階的に自動デプロイする仕組みです。Azure Pipelinesでは、このCI/CDの流れを1つのYAMLファイルにまとめて定義できます。ビルドからテスト、デプロイまでの全工程をコードとして管理できるため、パイプラインの変更履歴をGitで追跡したり、チーム内でレビューすることが容易になります。
YAMLパイプラインとクラシックエディタ
パイプラインの定義方法には、YAMLによる記述と、クラシックエディタの2種類があります。
- YAMLによる記述:パイプラインの構成をテキストファイルとしてリポジトリに含めて管理する方式です。Pipeline as Codeとも呼ばれ、パイプラインの定義をバージョン管理できるため、変更の追跡が容易になります。
- クラシックエディタ:GUI操作でパイプラインを構成する方式です。ただし、バージョン管理の柔軟性やセキュリティ機能の面ではYAMLパイプラインに劣るため、長期的にはYAMLへの移行が推奨されています。
ホステッドエージェント
パイプラインの実行環境は、エージェントと呼ばれる仮想マシン上で動作します。Azure Pipelinesでは、エージェントの運用方法としてMicrosoftホステッドエージェントと、セルフホステッドエージェントの2つの選択肢が用意されています。
- Microsoftホステッドエージェント:Microsoftが管理するクラウド上の仮想マシンで動作するエージェントです。一般的な開発ツールがあらかじめインストールされており、セットアップやメンテナンスの手間がかかりません。Ubuntu、Windows Server、macOSのイメージが用意されており、パイプライン内でvmImage: 'ubuntu-latest'のように指定するだけで利用を開始できます。
- セルフホステッドエージェント:開発チーム自身が管理するマシン上で動作するエージェントです。特定のソフトウェアが必要な場合や、ファイアウォール内部のリソースにアクセスする必要がある場合に適しています。自前のインフラストラクチャを使用するため、環境のカスタマイズ性が高い反面、維持管理の負担が発生します。
豊富なトリガー設定
パイプラインを自動的に起動する条件(トリガー)として、複数の種類が用意されています。以下に主要なトリガーを示します。
- CIトリガー:特定のブランチへのコードプッシュ時にパイプラインを起動します。
- PRトリガー:プルリクエストの作成や更新時に自動でビルドとテストを実行します。
- スケジュールトリガー:cron構文を使って毎日深夜にビルドを実行するといった定期実行を設定できます。
さらに、別のパイプラインの完了をトリガーとするパイプライン完了トリガーや、コンテナレジストリへの新しいイメージのプッシュを検知して起動するリソーストリガーも利用可能です。
環境とデプロイメント
Azure Pipelinesの環境機能を使うと、デプロイ先をグループ化し、承認フローやデプロイ履歴を管理できます。たとえば、「staging」「production」といった環境を定義し、本番環境へのデプロイ前には指定した承認者の承認を必須とする設定が可能です。
デプロイメントの種類として、一度にすべてデプロイするrunOnce(デフォルト)、サーバーを順次更新するRolling、少数のユーザーに段階的にリリースするCanaryの3種類が提供されています。これらを活用することで、リスクを抑えた段階的なリリースを実現できます。
Azure Pipelinesの料金
ここでは、Azure Pipelinesの利用料金についてご説明します。Azure Pipelinesは無料枠が用意されており、小規模なチームであれば費用を抑えて利用を開始できます。
以下に、Azure Pipelinesの料金表を示します。
ホステッドエージェント | 価格 / 備考 |
MicrosoftホステッドCI/CD | 1個まで無料(1,800 分/月) 追加分は並列ジョブごとに$40 |
セルフホステッドCI/CD | 1個まで無料 追加分は並列ジョブごとに$15 |
Visual Studioサブスクリプションに契約している場合は、Azure Pipelinesを含むAzure DevOpsサービスを無料で利用可能です。また、GitHub Enterpriseに契約している場合は、Azure Pipelinesを追加料金なしで利用できます。
上記の内容は、2026年2月時点の情報です。最新情報は、Azure Pipelines公式料金表をご覧ください。
Azure Pipelinesの利用手順
それでは、実際にAzure Pipelinesの利用手順を解説します。
1.組織とプロジェクトを作成
まずはAzure DevOpsにサインインし、「Azureの利用を開始する」を選択します。Azureアカウントにサインイン後、OrganizationとProjectを作成しましょう。

プロジェクトの新規作成
2.リポジトリの接続
プロジェクトを作成したら、パイプラインで使用するソースコードリポジトリを接続します。
サイドメニューから「Pipelines」を選択しましょう。「Where is your code?」の画面で、コードの保管先を選択します。
GitHubかBitbucket Cloudを選択した場合は、追加の認証が必要になります。

リポジトリの接続
3.パイプラインの作成
リポジトリを選択すると、Azure Pipelinesがリポジトリの内容を分析し、プロジェクトの種類に応じたテンプレートを自動的に提案します。

パイプラインの作成
テンプレートを確認し、問題がなければ、「Save and run」をクリックします。これにより、azure-pipelines.ymlというファイルがリポジトリのルートディレクトリにコミットされ、パイプラインが自動的に実行されます。
上記のステップで、Azure Pipelinesの利用を開始できます。次のセクションでは、Azure Pipelines使った簡易的なデモを解説します。
Azure Pipelinesの活用デモ
このセクションでは、スクリプトを実行し、その結果をアーティファクトとして保存するCIのデモを行います。
まずは上記の利用手順に沿って、Azure Pipelinesを設定します。
続いて、テストを実行する以下のスクリプトを、リポジトリのルートディレクトリに作成します。
import sys
# コンソールにメッセージを表示
print("Hello from Azure Pipelines!")
# ファイルにログを書き出す
with open("build-log.txt", "w") as f:
f.write("Build completed successfully.")
次に、以下のYAMLファイルからパイプラインを作成します。
trigger:
- main # mainブランチへの変更を検知して自動実行
pool:
vmImage: ubuntu-latest
steps:
# ステップ1: Pythonのセットアップ
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
addToPath: true
displayName: 'Setup Python 3.x'
# ステップ2: スクリプトの実行
- script: |
python hello.py
displayName: 'Run Python Script'
# ステップ3: アーティファクトの公開
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: 'build-log.txt'
ArtifactName: 'demo'
publishLocation: 'Container'
displayName: 'Publish Artifact'
「Save and run」をクリックして実行すると、サマリー画面が表示されます。

進行状況の確認
「1 published」をクリックすると、出力されたbuild-log.txtを確認できます。
Build completed successfully.
上記のように、適切にテストが完了したことが分かります。
Azure Pipelinesの使い方のコツ
このセクションでは、Azure Pipelinesをより効果的に運用するための実践的なコツをご説明します。
変数の活用
パイプライン内で繰り返し使用する値は、変数として定義しておくと保守性が向上します。環境ごとに異なる設定値は、Azure DevOpsのLibrary機能で変数グループとして管理するのが効果的です。
変数グループを使えば、開発用・ステージング用・本番用といった環境別の設定を一元管理でき、パイプラインのYAMLファイルを直接編集せずに値を変更できます。
テンプレートによる共通化
複数のプロジェクトやマイクロサービスで類似したビルド手順がある場合、テンプレートとして共通処理を切り出すことで、コードの重複を避けられます。たとえば、Node.jsプロジェクトのビルド手順をテンプレート化しておけば、各プロジェクトのパイプラインから以下のように参照するだけで済みます。
steps:
- template: templates/build-node.yml
parameters:
nodeVersion: '20.x'
workingDirectory: './frontend'
テンプレートは別のリポジトリに配置して、組織内で横断的に共有することも可能です。
依存関係のキャッシュ
パッケージマネージャー(npm、NuGet、Mavenなど)による依存関係のダウンロードは、ビルド時間の多くを占めることがあります。Cache@2タスクを利用すれば、ダウンロードしたパッケージをキャッシュし、次回以降のビルドで再ダウンロードを省略できます。
キャッシュキーにロックファイル(package-lock.jsonやyarn.lockなど)を指定しておくと、依存関係が変更された場合にのみキャッシュが再生成されます。
Azure Pipelinesの活用シーン
Azure Pipelinesは多様な開発業務での活用が期待できます。ここでは、企業での代表的な活用シーンをご紹介します。
Webアプリケーションの継続的デプロイ
Azure Pipelinesの一般的な活用シーンの一つが、Webアプリケーションのビルドからデプロイまでの自動化です。コードの変更がリポジトリにプッシュされるたびに自動ビルドとテストが走り、ステージング環境での検証を経て本番環境にリリースされるフローを構築できます。
Azure App Service、Azure Functions、Azure Kubernetes Serviceなど、Azureの各種サービスへのデプロイタスクが標準で用意されており、連携がスムーズです。
マイクロサービスアーキテクチャへの対応
複数のサービスで構成されるマイクロサービスアーキテクチャでは、各サービスのビルドとデプロイを独立して管理する必要があります。
Azure Pipelinesでは、サービスごとにパイプラインを分け、パスフィルターを設定することで、変更があったサービスのみをビルド・デプロイする運用が可能です。テンプレートを活用すれば、共通のビルドフローを維持しつつ個別の設定を柔軟に変更できます。
Infrastructure as Code(IaC)の自動化
Azure Pipelinesでは、アプリケーションのデプロイだけでなく、インフラストラクチャの管理もパイプラインで自動化できます。
Azure Resource Managerテンプレート、Bicep、TerraformといったIaCツールをパイプラインに組み込むことで、インフラの変更もコードレビューと承認フローを経て適用する運用が実現します。
Azure Pipelines利用時の注意点
Azure Pipelinesの導入を検討する際には、事前に把握しておきたい注意点がいくつかあります。ここでは、特に留意すべきポイントをまとめます。
YAML構文に関する注意
YAMLはインデントに敏感なフォーマットであり、スペースとタブの混在や、インデントのずれがエラーの原因となります。Azure DevOpsのパイプラインエディタにはValidate機能が備わっており、保存前に構文チェックを実行できます。
また、統合開発環境用の拡張機能や、az pipelines validate というAzure CLIコマンドを使えば、ローカル環境での事前検証も可能です。
セキュリティ面での配慮
パイプライン内でシークレットを扱う際には、YAMLファイルに直接記述しないよう注意が必要です。シークレットは変数グループやAzure Key Vaultで管理し、ログに値が出力されないよう設定を確認しましょう。フォークされたリポジトリからのプルリクエストに対しては、シークレットへのアクセスを制限する設定を維持することが推奨されます。
また、GitHub Advanced Security for Azure DevOpsを利用すれば、リポジトリ内のシークレットスキャニングやコードスキャニング、依存関係の脆弱性検出といった高度なセキュリティ対策も実施できます。
外部サービスの認証権限は必要最小限に設定し、本番環境へのデプロイには承認チェックを設けるなど、多層的なセキュリティ対策を講じることが重要です。
システム上の制限事項
Azure Pipelinesでは、ホステッドエージェントの種類を問わず、パイプラインごとに5分間で200 TSTUというレート制限が決められています。
TSTUは、以下のようなリソースの負荷を抽象化した単位です。
- データベースの使用量
- コンピューティング使用量
- ストレージの使用量
一般的なアクティビティでは、5分あたり10TSTU程度の消費が発生します。
より詳細な制限事項については、Azure Pipelines公式ドキュメントをご覧ください。
まとめ
本記事では、Azure Pipelinesの概要、主な機能、利用手順、活用例、注意点について解説しました。Azure Pipelinesは、Microsoftが提供するクラウドベースのCI/CDサービスであり、ソフトウェア開発の効率化と品質向上を支援します。YAMLによるパイプライン定義や豊富なトリガー設定、ホステッドエージェントの利用など、多様な機能を備えています。
また、Webアプリケーションの継続的デプロイやマイクロサービスアーキテクチャへの対応、IaCの自動化など、さまざまなシーンで活用可能です。一方で、YAML構文の注意点やセキュリティ面での配慮、システム上の制限事項を理解し、適切に運用することが重要です。
東京エレクトロンデバイスでは、Azure環境の設計から、Azure Pipelinesをはじめとするソフトウェア開発のライフサイクルをワンストップでサポートしています。Azureによる業務自動化・システム連携をご検討中の方は、ぜひお気軽にご相談ください。
ご興味のある方はこちらからお問い合わせください。





