アプリケーション開発・管理・運用

Azure Pipelinesとは?その概要、料金体系、そして構文サンプル

ソフトウェアの開発手法として、開発チーム(Development) と運用チーム (Operations) が連携して、カイゼンのサイクルを繰り返しながらビジネス価値を高める「DevOps」が注目されています。

また、その考え方にしたがって、プログラマーが品質向上や納期短縮を重視する「継続的インテグレーション(CI:Continuous Integration)」、ソフトウェアのビルドやテストを含めてリリースを自動化する「継続的デリバリー(Continuous Delivery)」も重視されるようになりました。

このような開発手法が登場した背景には、変動の激しい時代において、ソフトウェアのリリースを効率化と迅速化することがビジネスの成功の決め手になる現状があります。そこでソフトウェア開発には、自動化をうまく取り入れることが重要になります。この自動化を実現する技術のひとつが「パイプライン」です。

Azure Pipelines」は、Azure DevOps Servicesのソリューションにおいて、あらゆる言語やプラットフォームで、ビルド、テスト、デプロイを自動化する役割を担います。

ここでは、Azure Pipelinesの概要、料金体系、そして構文サンプルを解説します。

azure-pipelines

アプリケーション開発における課題別の解決方法とは? 〜Azureを導入するメリットも紹介〜

Azure Pipelinesで実現できること

Azure Pipelinesのメリットを解説する前に、まず「パイプラインとは何か?」ということを簡単にまとめます。

パイプラインは、もともとコンピュータで高速処理をする方法でした。ひとつの処理の結果が次の処理の入力になるように、処理すべき要素を直列に配置することです。このパイプラインを並行させたり、時間で分断させたりすることによって、処理を高速化します。

この考え方を応用して、開発の一連の作業をつないで自動化して、ソフトウェア開発の効率化と迅速化を実現することがDevOpsにおけるパイプラインであり、AzureではAzure Pipelinesの機能になります。

Azure Pipelinesには次のようなメリットがあります。

多様な言語、プラットフォーム、クラウドに柔軟に対応して管理を簡略化

Linux、macOS、Windowsにホストして、ソフトウェアの実行を並行させることができます。利用言語としてはNode.js、Python、Java、PHP、Ruby、C/C++、.NETがあり、Androidおよび iOS アプリのビルド、テスト、デプロイも可能です。Azureに限らず、AWS(Amazon Web Services)やGCP(Google Cloud Platform)など、任意のクラウドに継続的デリバリー(CD)を実装できます。

Microsoftのクラウドホステッドエージェントを使うことにより、主要なプラットフォームとツールに対応した CI/CDパイプラインをすべてサポートします。このことにより、ハードウェアと仮想マシン(VM)の管理を簡略化できます。

コンテナーオーケストレーションとしてオープンソースのKubernetes、仮想マシン、Azure Functions、Azure Web Appにもデプロイできます。ビジネス展開に最適なデプロイ戦略にしたがって、開発と運用のクオリティを高めます。Javaによるオープンソースの継続的インテグレーションの自動化ツールであるJenkinsからデプロイすることも可能です。

オープンソースを重視、 コンテナーの利用、高度なワークフローと拡張性

Kubernetes やJenkinsの例をあげたように、MicrosoftはAzureのオープンソースソフトウェア(OSS)との連携に注力しています。管理者や開発者がオープンソースの利用で培ったスキルを発揮できる環境を整備し、負荷軽減とコスト削減をめざしています。

無料かつビルド時間無制限の並列ジョブが提供され、すべてのオープンソース・プロジェクトにおける継続的インテグレーションと継続的デリバリー(CI/CD)の パイプラインを利用できます。SlackやSonarCloudなどから拡張機能を探して、コミュニティのメンバーによって構築されたビルド、テスト、タスクなどを実装できる拡張性も備えています。

Azure Pipelinesはコンテナーと必要なツールを使って、一貫性があり信頼性の高いビルドを実現します。イメージファイルから新しいコンテナーを簡単に作成するとともに、Docker HubやAzure Container Registryなどのコンテナーレジストリにプッシュできます。コンテナーを個々のホストやKubernetes にデプロイすることも可能です。

スナップショットの依存関係で相互接続された一連のビルドと、複数のフェーズのビルドを利用できます。構造化データのフォーマットである「YAML」、テストの統合、リリースの条件を外部ツールの値で設定できる「リリースゲート」、レポートなどのサポートも特長です。

Azure Pipelinesを開始するには

Azureのアカウントを既に持っている場合は、そのままサインインできます。また、GitHubを利用して開始することも可能です。

次の3つの使い方と料金体系があります。

オープンソースプロジェクト

無料並列ジョブ:1

毎月の時間制限:なし

MicrosoftホステッドCI/CD

無料並列ジョブ:1

毎月の時間制限:1か月あたり最大1,800分

有料の追加ジョブ:追加並列ジョブごとに¥4,480

セルフホステッドCI/CD

無料並列ジョブ:1

毎月の時間制限:なし

有料の追加ジョブ:追加並列ジョブごとに¥1,680

Azure Pipelinesのメニュー

具体的な機能として、Azure Pipelinesには以下のようなメニューと機能があります。

Builds

ハードウェアの環境を準備して必要なライブラリをインストールし、ソースコードでビルドします。単体テスト、結合テストを自動化して実行します。

Release

AzureのWeb Appsを作成し、Buildsで作成した生成物を展開します。

Library

アプリケーションを展開する際に、値を登録する機能です。

Task groups

同じ設定を何度も書き込む場合、変更が生じた際の展開もれを回避するためにタスクをTask groupsに登録して、すべての環境で流用します。Task groupsに対する変更はすべてのBuildsやReleasesに反映されます。

Deployment groups

複数の仮想マシンにリリースする場合に、グループで登録できます。Deployment groupsに対するタスクは、一括してリリースできます。

Azure Pipelinesの構文について

Azure Pipelinesでは処理を構文で記述しますが、「変数(Variables)」と「トリガー(Trigger)」をサンプルとして取り上げます。

変数(Variables)

変数を使うと、データの重要な部分をパイプライン処理に取り込むことが可能です。実行ごと、ジョブごとに変数の値は変わることがあります。テキストによる文字列や数値を必要とする場合、実行中に変数を現在の値に置換します。

Azure Pipelinesの変数に関する構文は、マクロ式、テンプレート式、ランタイム式の3つをサポートしています。それぞれ異なる目的に使用することが可能ですが、以下のような制限があります。

マクロ式の変数

ランタイム時に処理され、パイプライン定義の値(右側)で展開されます。置換値がみつからない場合は「prints $(var)」として表示されます。

テンプレート式の変数

コンパイル時に処理され、パイプライン定義のキーまたは値(右側もしくは左側)で展開されます。置換値がみつからない場合は、空白の文字列で表示されます。

ランタイム式の変数

ランタイム時に処理され、パイプライン定義の値(右側)で展開されます。置換値がみつからない場合は空白の文字列で表示されます。

トリガー(Trigger)

4種類のトリガーを構成して、Azure Pipelinesを自動的に実行します。

CIトリガー

継続的インテグレーション(CI)のトリガーです。指定された分岐を記録したブランチにプッシュ、または指定したタグがプッシュされるたびにパイプラインを実行します。

PRトリガー

プルリクエスト(PR)トリガーのことです。指定されたブランチのいずれかでプルリクエストが開かれたとき、あるいはプルリクエストに変更がプッシュされたときにビルドを実行します。

スケジュールされたトリガー

「毎日午前0時にパイプラインを実行する」など、曜日や時間をトリガーにしてパイプラインを実行します。Azure Pipelinesリソースの誤用を防ぐために、パイプラインを1日で実行する頻度には一定の制限があります。

パイプライントリガー

大規模なアプリケーションの場合、いくつかのコンポーネントが相互依存した状態にあります。一般的に、このようなコンポーネントは独立して構築され、ライブラリの変更にともなって、依存関係の再構築や検証が必要になります。このような場合、追加したトリガーパイプラインが正常に完了したときにパイプラインを実行します。

Microsoft Azureとは何か?入門から応用まで徹底解説

クラウドとは何か?Azureとは何か?導入のメリットや構成、コストに至るまでの基礎的な知識から、どのように活用すべきかまでを徹底的に解説しています。

Microsoft Azureとは何か?入門から応用まで徹底解説

ブログ記事を見る

まとめ:Azure PipelinesでDevOpsの自動化を推進

DevOps、CI/BIにおいて、Azure Pipelinesなどの自動化ツールは重要です。Azure DevOpsには、その他にもソフトウェア開発を迅速化するソリューションがあります。

  • fb-button
  • line-button
  • linkedin-button

無料メルマガ

関連記事

Azure Notebooksでプログラミング学習を!ノートブック機能の説明の概要
データ分析、データベース
Azure Functionsはサーバーレス、FaaSの時代を拓く
ハイブリッドクラウド
Azure Monitorとは?その基本と監視内容を解説
仮想デスクトップ
Azure DevOpsで開発と運用を連携させ、品質の向上を
アプリケーション開発・管理・運用
Azure Portal(Azureポータル)とは?メリットや料金体系・使い方を解説
アプリケーション開発・管理・運用
Azure Kinect DKのSDKと活用シーン
アプリケーション開発・管理・運用
Azure Stackによってオンプレミスで構築するクラウド
ハイブリッドクラウド
Azureを導入する際の流れと検討するべき3つのポイント
クラウド移行(インフラ・DB)
Azure Information Protectionでメールや文書を保護
セキュリティとガバナンス
Azure Web Appsでビジネスチャンスを迅速につかむ
アプリケーション開発・管理・運用
IoTとは?5分で概要からポイントを解説
クラウド移行(インフラ・DB)
Microsoft Intuneとは? 導入メリットやEMMを実現する3つの機能を解説
セキュリティとガバナンス
Azure Storage Explorerとは?概要と使い方
クラウド移行(インフラ・DB)
Azure CLIとは?Azure PowerShellとの違いについても解説
クラウド移行(インフラ・DB)
Azure Machine Learning(Azure ML)とは?人工知能の実践的活用
AI、機械学習
Azure SQL Databaseで生産性向上と持続的な経営を
セキュリティとガバナンス
RELATED SITES

関連サイト

CONTACT

サイト掲載の
お問い合わせ

TOP