この記事のポイント
- Azure Pipelinesは、継続的インテグレーション(CI)と継続的デリバリー(CD)を提供するMicrosoftのサービス
- 多様な言語・プラットフォームに対応し、コンテナやKubernetesとの統合も可能
- Azure DevOpsの一部として、バグ検出やアジャイル開発など総合的な開発支援を実現
- YAMLファイルでパイプラインを定義し、柔軟なワークフローとセキュリティ機能を提供
- オープンソースプロジェクトには無料プランがあり、企業向けには従量制の料金体系を採用
監修者プロフィール
坂本 将磨
Microsoft AIパートナー、LinkX Japan代表。東京工業大学大学院で技術経営修士取得、研究領域:自然言語処理、金融工学。NHK放送技術研究所でAI、ブロックチェーン研究に従事。学会発表、国際ジャーナル投稿、経営情報学会全国研究発表大会にて優秀賞受賞。シンガポールでのIT、Web3事業の創業と経営を経て、LinkX Japan株式会社を創業。
ソフトウェア開発において、継続的インテグレーション(CI)や継続的デリバリー(CD)は不可欠なプラクティスです。 Azure Piplinesはさまざまなプログラミング言語やプラットフォームに対応し、コンテナーやKubernetesとの統合、セキュリティ機能も備えているため、高い柔軟性と信頼性を開発者に提供します。
この記事では、Microsoftが提供する強力なツール「Azure Pipelines」について、基本的な概念から応用的な使い方まで詳しく解説します。 ソースコードの変更があるごとに自動でビルドやテスト、デプロイが行われ、CI/CDを効率的に行うことができるAzure Pipelinesの特徴やセットアップ方法、利用する際の料金体系についても紹介していきます。
Azureの基本知識や料金体系、利用方法についてはこちらの記事で詳しく解説しています。
➡️Microsoft Azureとは?できることや各種サービスを徹底解説
Azure Pipelinesとは
Azure Pipelinesは、ソフトウェア開発プロセスの一部として継続的インテグレーション(CI)と継続的デリバリー(CD)を提供し、コードの変更を自動的にビルド、テスト、デプロイするための強力なサービスです。
このガイドでは、Azure Pipelinesの基本から応用までを紐解き、初心者から上級者まで幅広い開発者がこのツールのポテンシャルを最大限に引き出せるように解説します。
Azure DevOpsとの関係
Azure DevOpsは、ソフトウェア開発ライフサイクルを支援する一連の開発ツールを提供する、Microsoftのクラウドサービスです。
Azure Pipelinesはこのサービスの中核となるコンポーネントであり、コードベースに変更があるたびに自動的にビルドとテストを実行するCIツール、また、ビルドしたアーティファクトをさまざまな環境へと自動デプロイするCD機能を提供します。
Azure DevOpsの他の部分とシームレスに統合され、バグの検出、アジャイルプランニング、ソースコード管理など、開発プロセスの他の側面をサポートします。
【関連記事】
➡️Azure DevOpsとは?その概要や使い方、料金体系をわかりやすく解説
CI/CDとは
継続的インテグレーション(CI)は、開発プロセスにおいて「ソースコードの変更を頻繁にマージし、それらの変更を検証するために自動的にビルドとテストを行う一連のプラクティス」です。
これにより開発チームは、ソフトウェアの品質を維持しながら速やかに機能を追加または修正できます。
継続的デリバリー(CD)はCIのプラクティスを一歩進めて、ビルドしたアプリケーションを任意の環境へ自動デプロイします。CDを実践することで開発チームは、安定したリリースプロセスを通じてエンドユーザーに迅速に価値を届けることができます。
CI/CDは、迅速性、効率性、信頼性を保ちながら開発からデプロイメントまでのサイクルを短縮する現代的なアプローチです。
CI/CDイメージ
上記の画像のようにパイプラインのようにコードの変更が行われるとその変更がビルド、テストされ、デプロイまで一連の流れで行われます。
Azure Pipelinesの特徴とメリット
Azure Pipelinesは、その柔軟な機能と豊富なインテグレーションにより、様々な開発ニーズに適応可能なCI/CDツールとして注目されています。
次に、その主な特長と利点について解説します。
任意の言語、任意のプラットフォーム
Azure Pipelinesは、C#, Java, JavaScript, Pythonなどの主要なプログラミング言語だけでなく、多数のプラットフォームやクラウドサービスに対応しています。
Windows、Linux、macOS上で動作するアプリケーションについて、クロスプラットフォームなビルドとデプロイが可能です。
これにより、開発者は既存のツールセットや環境に囚われることなく、Azure Pipelinesを自由に利用できるようになります。
コンテナーと Kubernetesの対応
近年のアプリケーション開発において、コンテナ技術は大きな役割を果たしています。Azure Pipelinesは、Dockerコンテナを使用したビルドとテスト、さらにはKubernetesクラスタへのデプロイを直接サポートしています。
マイクロサービスアーキテクチャやコンテナ化されたアプリケーションを持つチームは、Azure Pipelinesを使用して、これらのモダンなプラクティスを効率的に実行し、運用することができます。
高度なワークフローと組み込みのセキュリティ
Azure Pipelinesは、複雑なビルドやデプロイメントのシナリオをサポートする高度なワークフロー機能を備えています。
分岐戦略や環境ごとの構成をサポートし、マルチステージパイプラインを使用して、開発、ステージング、本番環境の間で流れる作業を管理します。
また、自動化されたセキュリティ機能により、コードレビューやセキュリティ検査をプロセスに組み込むことができ、信頼性の高いアプリケーションのリリースを促進します。
【関連記事】
➡️Azureのセキュリティ対策を徹底解説!主要機能や製品、導入事例も
Azure Pipelinesの使い方
Azure Pipelines画面
事前準備
確認しておくべき必要なものを簡潔にまとめると、以下の通りです。
- パイプラインとして接続したい目的とそのリソースがあることが必要です。
- Azure DevOps 組織を持っていること。これも無料で作成できます。
もしチームが既にAzure DevOps プロジェクトを持っている場合は、そのプロジェクトの管理者であることを確認してください。
- Microsoft がホストするエージェント上でパイプラインを実行する機能があること。
これを利用するためには、Azure DevOps 組織が Microsoft ホステッドの並列ジョブにアクセス可能である必要があります。必要に応じて並列ジョブを購入するか、無料の使用許可を申請できます。
Azure DevOpsを利用してパイプラインを作成する手順
以下は、Pythonのサンプルコードを取得し、Azure DevOpsで最初のPythonパイプラインを作成する手順の簡単な説明です。
最初のPython パイプラインの作成
- まず、以下のGitHubリポジトリを自分のアカウントにフォークします: https://github.com/Microsoft/python-sample-vscode-flask-tutorial
- Azure DevOps 組織にログインし、プロジェクトに移動します。
パイプライン作成画像
- 「パイプライン」セクションへ移動し、「新しいパイプライン」または「パイプラインの作成」を選択します。
新しいパイプライン作成画面
- ソースコードの場所の選択をし、表示される手順に従います。
ソースコードの場所の選択
- 目的のリポジトリを選択します。(今回ではGithub)
- Azure Pipelines アプリのインストールが必要になった場合は、「承認してインストール」を選択します。
- リポジトリが分析され、Python パッケージ用のパイプライン テンプレートが推奨されます。
- 新しいパイプラインが表示されるので、YAMLを確認し、「保存および実行」を選択します。
- 新しい
azure-pipelines.yml
ファイルをリポジトリにコミットするように求められます。確認して「保存および実行」を再度選択します。
- パイプラインの動作を確認するには、ビルドジョブを選択します。
これで、リポジトリにYAMLパイプライン (azure-pipelines.yml
) が設定され、カスタマイズが可能になります。
パイプラインを変更する準備ができたら、「パイプライン」ページからパイプラインを選び、azure-pipelines.yml
ファイルを編集します。
パイプラインの表示と管理
- 左側のメニューから「パイプライン」を選択すると、パイプラインを表示し、管理することができます。
- 「最近」を選択して最近実行されたパイプラインを見るか、「すべて」を選んで全てのパイプラインを確認できます。
- 特定のパイプラインを選んで、実行結果を見たり、管理操作を行うことができます。
パイプライン実行の詳細の表示
- パイプライン実行の概要からは、実行の状態や詳細を確認できます。
- ジョブとステージの詳細を見ることができ、各ステップの状態や詳細をチェックすることが可能です。
パイプラインのキャンセルと再実行
- 実行中のパイプラインは「キャンセル」を選択して停止できます。完了している場合は、「新しい実行」を選んでパイプラインを再実行することができます。
これらのステップに従えば、Pythonコード用のAzure DevOpsパイプラインを簡単に設定して管理できるようになります。
Azure Pipelinesの設定と利用
ビジネスや開発チームのニーズに合わせてAzure Pipelinesを設定して利用するプロセスは、分かりやすく柔軟性があります。
このセクションでは、主にAzureへのデプロイ、セルフホステッド環境でのCI/CD、そしてオープンソースプロジェクトのための無料使用に関する情報を提供します。
Azureへのシームレスなデプロイ
Azure Pipelinesを使用する主要なメリットの一つは、**Azureへのデプロイがシームレスであることです。Azureリソースへの継続的デリバリーは、拡張可能なPipelines YML構文を通じて設定されます。
これにより、開発者はビルドおよびリリースパイプラインをコードとして定義し、ソース管理にチェックインすることができます。
また、AzureにはAzure Web Apps、Azure Functions、およびAzure Kubernetes Service (AKS) など、さまざまなホスティングオプションがあるため、アプリケーションごとに最適化されたデプロイターゲットを選択できます。
セルフホステッドCI/CD
Azure Pipelinesは、クラウドベースのエージェントを使用することに加えて、オンプレミス環境にエージェントをセルフホスティングするオプションを提供しています。
これは、ネットワーク制約や特定のハードウェア要件を持つプロジェクトにとって利点となります。
セルフホステッドエージェントを使用することで、開発者は自分たちの環境内でビルドとテストを実行し、その結果をAzure Pipelinesに報告できます。
インフラストラクチャやライセンスの要件によっては、セルフホスティングによるコスト削減が期待できます。
オープンソースプロジェクトの場合の無料使用
オープンソースプロジェクトに対しては、Azure Pipelinesが非常に誘導的なサポートを提供しています。
一定の条件を満たすオープンソースプロジェクトは、Azure Pipelinesのサービスを 無料 で利用することができ、大規模な並列ビルドやテストを実行する能力が含まれます。
これにより、オープンソースコミュニティは高品質なソフトウェアを迅速にリリースすることが可能になります。
また、Azure DevOps Marketplaceにはオープンソースプロジェクトをさらに強化するための多くの無料の追加ツールが用意されています。
Azure Pipelinesの料金
Azure Pipelinesの利用に際して、何をどれだけ支払う必要があるのかを理解することは、プロジェクトの計画と予算管理において非常に重要です。
次に、Azure Pipelinesの料金体系について説明します。
カテゴリ | 無料提供 | 並列ジョブ | 追加情報 |
---|---|---|---|
オープンソースプロジェクト | 10個の無料 | 1か月あたり時間無制限の並列ジョブ | 無料で始める |
MicrosoftがホストするCI/CD | 1個の無料 | 1か月あたり最大1,800分の並列ジョブ | 時間無制限の並列ジョブごとにUSD40 |
セルフホステッドCI/CD | 1個の無料 | 1か月あたり時間無制限の並列ジョブ | その後、追加の並列ジョブあたりUSD15 |
【関連記事】
➡️Azureの料金体系を解説!サービスごとの料金例や確認方法も紹介
Azureの無料アカウント
新規ユーザーは、Azure無料アカウントを作成することでAzure Pipelinesを試すことができます。
この無料アカウントには、限定された無料のパイプラインジョブ数とビルド時間が含まれるため、小規模なプロジェクトやトライアル目的での使用に適しています。
企業やより大きなプロジェクトにとっても、この無料プランはAzure Pipelinesのポテンシャルを評価するのに役立つスタート地点と言えるでしょう。
【関連記事】
➡️Azureの無料アカウントとは?作成方法やできることを徹底解説!
まとめ
Azure Pipelinesは、あらゆる規模の開発プロジェクトに適した強力なCI/CDサービスです。モダンな開発プラクティスに対応し、さまざまな言語やプラットフォームをサポートすることで、開発プロセスの自動化と最適化を実現します。
コンテナおよびKubernetesの統合、高度なワークフロー、セキュリティ機能は、ビルドとデプロイメントをスムーズかつ安全に行うための鍵です。適切に利用していきましょう。