新しい Azure Pipelines ユーザー向けの主要な概念

Azure DevOps Services

パイプラインを構成する主要な概念とコンポーネントについて説明します。 パイプラインの基本的な用語と部分を理解すると、より効率的で信頼性の高いコードを提供するのに役立ちます。

重要な概念の概要

主な概念の図

  • トリガーにより、パイプラインを実行するように指示されます。
  • パイプラインは、1 つ以上のステージで構成されます。 パイプラインは、1 つ以上の環境にデプロイできます。
  • ステージは、パイプラインでジョブを整理する方法であり、各ステージには 1 つ以上のジョブを含めることができます。
  • ジョブ は 1 つの エージェントで実行されます。 ジョブはエージェントレスにすることもできます。
  • エージェント は、1 つ以上のステップを含むジョブを実行 します
  • ステップタスクまたはスクリプトであり、パイプラインの最小構成要素です。
  • タスクは、REST API の呼び出しやビルド成果物の発行などのアクションを実行する、事前にパッケージ化されたスクリプトです。
  • 成果物は、実行によって発行されたファイルまたはパッケージのコレクションです。

Azure Pipelines の用語

エージェント

ビルドまたはデプロイが実行されると、システムによって 1 つ以上のジョブが開始されます。 エージェントは、一度に 1 つのジョブを実行するエージェント ソフトウェアがインストールされたインフラストラクチャをコンピューティングしています。 たとえば、ジョブは Microsoft でホストされている Ubuntu エージェントで実行できます。

さまざまな種類のエージェントとその使用方法の詳細については、「 Azure Pipelines エージェント」を参照してください。

承認

承認は、 デプロイの実行前に必要な一連の検証を定義します。 手動承認は、運用環境へのデプロイを制御するために実行される一般的なチェックです。 環境でチェックが構成されると、パイプラインは、すべてのチェックが正常に完了するまで環境にデプロイするステージを開始する前に停止します。

アーティファクト

成果物は、実行によって発行されるファイルまたはパッケージのコレクションです。 成果物は、配布やデプロイなどの後続のタスクで使用できるようになります。 詳細については、「 Azure Pipelines の成果物」を参照してください。

継続的デリバリー

継続的デリバリー (CD) は、コードがビルドされ、テストされ、1 つ以上のテストおよび実稼働ステージにデプロイされるプロセスです。 複数のステージで配置とテストを行うことで、品質を向上させることができます。 継続的インテグレーション システムにより、インフラストラクチャやアプリなど、配置可能な成果物が生成されます。 自動化されたリリース パイプラインでは、これらの成果物を利用して、新バージョンや修正プログラムを既存のシステムにリリースします。 監視およびアラート システムは、CD プロセス全体の可視性を促進するために常に実行されます。 このプロセスにより、エラーが頻繁にかつ早期に検出されます。

継続的インテグレーション

継続的インテグレーション (CI) は、開発チームがコードのテストとビルドを簡略化するために使う手法です。 CI は、開発サイクルの早い段階でバグや問題をキャッチするのに役立ちます。これにより、修正がより簡単かつ迅速になります。 CI プロセスの一環として、自動化されたテストとビルドが実行されます。 このプロセスは、スケジュールを設定して、コードがプッシュされるたびに、またはその両方で実行できます。 成果物と呼ばれる項目は、CI システムから生成されます。 これらは、自動デプロイを推進するために、継続的デリバリー リリース パイプラインによって使用されます。

デプロイ

クラシック パイプラインの場合、デプロイとは、1 つのステージに対してタスクを実行するアクションです。これには、自動テストの実行、ビルド成果物のデプロイ、その他のアクションがそのステージに対して指定されます。

YAML パイプラインの場合、通常、デプロイは デプロイ ジョブを参照します。 デプロイ ジョブは、環境に対して順番に実行されるステップのコレクションです。 デプロイ ジョブには、1 回実行、ローリング、カナリアなどの戦略を使用できます。

デプロイ グループ

デプロイ グループは、エージェントがインストールされている一連の展開ターゲット マシンです。 デプロイ グループは、エージェント プールのような単なるエージェントのグループです。 デプロイ グループを使用して、ジョブのパイプラインでデプロイ ターゲットを設定できます。 デプロイ グループのエージェントのプロビジョニングの詳細について説明します。

環境

環境とは、アプリケーションをデプロイするリソースのコレクションです。 これには、1 つ以上の仮想マシン、コンテナー、Web アプリ、または開発中のアプリケーションをホストするために使用される任意のサービスを含めることができます。 パイプラインは、ビルドが完了してテストが実行された後、1 つ以上の環境にアプリをデプロイする場合があります。

ジョブ

ステージには、1 つ以上の ジョブが含まれています。 各ジョブはエージェントで実行されます。 ジョブは、一連のステップの実行境界を表します。 すべての手順は、同じエージェントでまとめて実行されます。 ジョブは、さまざまな環境で一連の手順を実行する場合に最も便利です。 たとえば、x86 と x64 の 2 つの構成を構築できます。 この場合、1 つのステージと 2 つのジョブがあります。 1 つのジョブは x86 用で、もう 1 つのジョブは x64 用です。

パイプライン

パイプラインには、アプリの継続的インテグレーションと配置プロセスを定義します。 1 つ以上のステージで構成されています。 これは、テスト、ビルド、デプロイの手順の実行方法を定義するワークフローと考えることができます。

クラシック パイプラインの場合、パイプラインを定義と呼ぶこともできます。

リリース

クラシック パイプラインの場合、 リリース は、パイプラインで指定された成果物のバージョン管理されたセットです。 リリースには、ステージ、タスク、トリガーや承認者などのポリシー、デプロイ オプションなど、リリース パイプライン内のすべてのタスクとアクションを実行するために必要なすべての情報のスナップショットが含まれています。 リリースは、手動、デプロイ トリガー、または REST API を使用して作成できます。

YAML パイプラインの場合、ビルド ステージとリリース ステージは 1 つの マルチステージ パイプラインにあります

実行

実行は、パイプラインの 1 回の実行を表します。 ステップの実行に関連するログや、テストの実行結果が収集されます。 実行中、Azure Pipelines は最初にパイプラインを処理し、その実行を 1 つ以上のエージェントに送信します。 各エージェントはジョブを実行します。 パイプラインの実行シーケンスの詳細を確認します。

クラシック パイプラインの場合、ビルドはパイプラインの 1 回の実行を表します。

スクリプト

スクリプトは、コマンド ライン、PowerShell、または Bash を使用して、パイプライン内のステップとしてコードを実行します。 macOS、Linux、および Windows 用 のクロスプラットフォーム スクリプト を記述できます。 タスクとは異なり、スクリプトはパイプラインに固有のカスタム コードです。

段階

ステージは、パイプライン内の論理境界です。 これは、懸念事項 (ビルド、QA、運用環境など) の分離をマークするために使用できます。 各ステージには、1 つ以上のジョブが含まれています。 パイプラインで複数のステージを定義すると、既定では、1 つずつ実行されます。 ステージの実行時の条件を指定できます。 ステージが必要かどうかを考えている場合は、次の点を確認してください。

  • 個別のグループは、このパイプラインのさまざまな部分を管理しますか? たとえば、テストに関連するジョブを管理するテスト マネージャーと、実稼働デプロイに関連するジョブを管理する別のマネージャーを使用できます。 この場合は、テストと運用環境のステージを個別に用意するのが理にかなっています。
  • 特定のジョブまたはジョブのセットに接続されている 承認 のセットはありますか? その場合は、ステージを使用して、承認を必要とする論理グループにジョブを分割できます。
  • 長時間実行する必要があるジョブはありますか? 実行時間が長くなるパイプラインの一部がある場合は、それらを独自のステージに分割するのが理にかなっています。

手順

ステップは、パイプラインの最小の構成要素です。 たとえば、パイプラインはビルドとテストの手順で構成される場合があります。 ステップには、スクリプトまたはタスクを指定できます。 タスクは、利便性のために提供される事前に作成されたスクリプトです。 使用可能なタスクを表示するには、「 ビルドタスクとリリースタスク 」リファレンスを参照してください。 カスタム タスクの作成の詳細については、「カスタム タスクの作成」を参照してください。

タスク

タスクは、パイプラインで自動化を定義するための構成要素です。 タスクは、一連の入力で抽象化されたパッケージ化されたスクリプトまたはプロシージャです。

トリガー

トリガーは、実行するタイミングをパイプラインに指示するために設定されるものです。 リポジトリへのプッシュ時、スケジュールされた時刻、または別のビルドの完了時に実行するようにパイプラインを構成できます。 これらのアクションはすべてトリガーと呼ばれます。 詳細については、「 ビルド トリガーリリース トリガー」を参照してください。

ライブラリ

ライブラリには、セキュリティで保護されたファイル変数グループが含まれています。 セキュリティで保護されたファイル は、ファイルを格納し、パイプライン間で共有する方法です。 DevOps レベルでファイルを保存し、ビルドまたはデプロイ中に使用することが必要な場合があります。 その場合は、 ライブラリ 内にファイルを保存し、必要に応じて使用できます。 変数グループ には、YAML パイプラインに渡したり、複数のパイプラインで使用できるようにする可能性がある値とシークレットが格納されます。

著者について

  • Dave Jarvis は、主要な概念の概要グラフィックに貢献しました。