新しい Azure Pipelines ユーザーの主要な概念
Azure DevOps Services
Azure Pipelines を構成する主要な概念とコンポーネントについて説明します。 パイプラインの基本的な用語と部分を理解することは、コードをより効果的にビルド、テスト、デプロイするのに役立ちます。
主な概念の概要
- トリガー は、パイプラインに実行を指示します。
パイプライン は、1 つ以上のステージで構成されます。 パイプラインは、1つ以上の 環境にデプロイできます。 ステージ は、パイプラインでジョブを編成する方法であり、各ステージには 1 つ以上のジョブを含めることができます。 - 各 ジョブ は、1 つの エージェントで実行されます。 ジョブはエージェントレスにすることもできます。
- 各
エージェント は、1 つ以上のステップを含むジョブを実行します。 - ステップ は、タスク または スクリプト であり、パイプラインの最小の構成要素です。
- タスク は、REST API の呼び出しやビルド成果物の発行などのアクションを実行する、事前にパッケージ化されたスクリプトです。
- 成果物 は、実行によって発行されたファイルまたはパッケージのコレクションです。
Azure Pipelines の用語
エージェント
ビルドまたはデプロイを実行すると、システムは 1 つ以上のジョブを開始します。 エージェントは、一度に 1 つのジョブを実行するエージェント ソフトウェアがインストールされたコンピューティング インフラストラクチャです。 たとえば、Microsoft がホストする Ubuntu エージェントでジョブを実行できます。
さまざまな種類のエージェントとその使用方法の詳細については、「Azure Pipelines Agents」を参照してください。
承認
承認 デプロイの実行前に必要な検証のセットを定義します。 手動承認は、運用環境へのデプロイを制御するために実行される一般的なチェックです。 環境でチェックが構成されている場合、パイプラインの実行は、すべてのチェックが正常に完了するまで一時停止します。
アーティファクト
成果物は、実行によって発行されたファイルまたはパッケージのコレクションです。 成果物は、配布やデプロイなどの後続のタスクで使用できるようになります。 詳細については、「Artifacts in Azure Pipelines」を参照してください。
継続的デリバリー
継続的デリバリー (CD) は、コードをビルドし、テストし、1 つ以上のテストおよび運用ステージにデプロイするプロセスです。 複数の段階でデプロイとテストを行うことで、品質を向上できます。 継続的インテグレーション システムは、インフラストラクチャとアプリを含むデプロイ可能な成果物を生成します。 自動リリース パイプラインでは、これらの成果物を使用して、新しいバージョンと修正プログラムを既存のシステムにリリースします。 監視およびアラート システムは、CD プロセス全体の可視性を促進するために常に実行されます。 このプロセスにより、エラーが頻繁かつ早期にキャッチされます。
継続的インテグレーション
継続的インテグレーション (CI) は、コードのテストとビルドを簡略化するために開発チームが使用するプラクティスです。 CI は、開発サイクルの早い段階でバグや問題をキャッチするのに役立ちます。これにより、修正がより簡単かつ迅速になります。 自動テストとビルドは、CI プロセスの一部として実行されます。 このプロセスは、コードがプッシュされるたびに、または両方のスケジュールで実行できます。 成果物と呼ばれる項目は、CI システムから生成されます。 これらは、自動デプロイを推進するために、継続的デリバリー リリース パイプラインによって使用されます。
配置
クラシック パイプラインデプロイは、1 つのステージに対してタスクを実行するアクションです。 デプロイには、自動テストの実行、ビルド成果物のデプロイ、およびそのステージに対して指定されているその他のアクションを含めることができます。
YAML パイプラインの場合、デプロイとは、デプロイ ジョブを指します。 デプロイ ジョブは、環境に対して順番に実行されるステップのコレクションです。 デプロイメント ジョブでは、「1 回実行」、「ローリング」、「カナリア」などの戦略を使用できます。
配置グループ
デプロイ グループは、エージェントがインストールされている一連の展開ターゲット マシンです。 デプロイ グループは、エージェント プールなど、エージェントのもう 1 つのグループです。 デプロイ グループを使用して、ジョブのパイプラインでデプロイ ターゲットを設定できます。 展開グループにおけるエージェントのプロビジョニングについて詳しく知りたい場合は、を参照してください。
環境
環境 は、アプリケーションをデプロイするリソースのコレクションです。 1 つの環境には、1 つ以上の仮想マシン、コンテナー、Web アプリ、または任意のサービスを含めることができます。 ビルドが完了し、テストが実行された後、パイプラインは 1 つ以上の環境にデプロイされます。
仕事
ステージには1つ以上のジョブが含まれています。 各ジョブは 1 つのエージェント上で実行されます。 ジョブは、一連のステップの実行境界を表します。 すべての手順は、同じエージェントでまとめて実行されます。 ジョブは、さまざまな環境で一連の手順を実行する場合に最も便利です。 たとえば、x86 と x64 の 2 つの構成を構築できます。 この場合、1 つのステージと 2 つのジョブがあります。 1 つのジョブは x86 用で、もう 1 つのジョブは x64 用です。
エージェントレス ジョブは、エージェントを使用せずに Azure DevOps および Azure DevOps Server で実行されます。 エージェントレス ジョブをサポートしているタスクの数は限られています。
パイプライン
パイプラインは、アプリの継続的インテグレーションとデプロイ プロセスを定義します。 1 つ以上のステージで構成されています。 これは、テスト、ビルド、デプロイの手順の実行方法を定義するワークフローと考えることができます。
クラシック パイプラインの場合、パイプラインを定義と呼ぶこともできます。
リリース
クラシック パイプラインの場合、リリース は、パイプラインで指定されたバージョン管理された成果物のセットです。 リリースには、ステージ、タスク、トリガーや承認者などのポリシー、デプロイ オプションなど、リリース パイプライン内のすべてのタスクとアクションを実行するために必要なすべての情報のスナップショットが含まれています。 リリースは、手動で作成することも、デプロイ トリガーを使用して作成することも、REST API を使用して作成することもできます。
YAML パイプラインでは、ビルドステージとリリースステージは 1 つの、マルチステージ パイプラインにあります。
[ファイル名を指定して実行]
実行は、パイプラインの 1 つの実行を表します。 ステップの実行に関連するログとテストの実行結果が収集されます。 実行中、Azure Pipelines は最初にパイプラインを処理し、その実行を 1 つ以上のエージェントに送信します。 各エージェントがジョブを実行します。 パイプラインの実行シーケンスの詳細を確認します。
クラシック パイプラインの場合、ビルドはパイプラインの 1 つの実行を表します。
スクリプト
スクリプトは、コマンド ライン、PowerShell、または Bash を使用して、パイプライン内のステップとしてコードを実行します。 macOS、Linux、および Windows 用
段階
ステージ は、パイプライン内の論理境界です。 懸念事項の分離 (ビルド、QA、運用など) をマークするために使用できます。 各ステージには、1 つ以上のジョブが含まれています。 パイプラインで複数のステージを定義すると、既定では、1 つずつ実行されます。 ステージを実行する条件を指定できます。 ステージが必要かどうかを検討する場合は、次の点を確認してください。
- 個別のグループは、このパイプラインのさまざまな部分を管理しますか? たとえば、テストに関連するジョブを管理するテスト マネージャーと、運用環境のデプロイに関連するジョブを管理する別のマネージャーを使用できます。 この場合は、テストと運用に個別のステージを用意することが理にかなっています。
- 特定のジョブまたはジョブのセットに関連した一連の承認はありますか? その場合は、ステージを使用して、承認を必要とする論理グループにジョブを分割できます。
- 長時間実行する必要があるジョブはありますか? パイプライン内のジョブの実行時間が長い場合は、そのジョブを独自のステージに配置するのが理にかなっています。
ステップ
ステップは、パイプラインの最小の構成要素です。 たとえば、パイプラインはビルドとテストの手順で構成される場合があります。 ステップには、スクリプトまたはタスクを指定できます。 タスクは、利便性のために提供される事前に作成されたスクリプトです。 使用可能なタスクを表示するには、ビルド タスクとリリース タスク リファレンスを参照してください。 カスタム タスクの作成の詳細については、「カスタム タスクを作成する」を参照してください。
タスク
タスク は、パイプラインで自動化を定義するための構成要素です。 タスクは、一連の入力で抽象化されたパッケージ化されたスクリプトまたはプロシージャです。
トリガー
トリガーは、実行するタイミングをパイプラインに伝えるために設定されるものです。 パイプラインは、リポジトリへのプッシュ時、スケジュールされた時刻、または別のビルドの完了時に実行するように構成できます。 これらのアクションはすべてトリガーと呼ばれます。 詳細については、「ビルド トリガー および」と「リリース トリガー および」を参照してください。
図書館
著者について
- Dave Jarvis は、主要な概念の概要グラフィックに貢献しました。