Azure DevOps Services
この記事では、Azure Pipelines を構成する主要な概念とコンポーネントについて説明します。 パイプラインの基本的な用語と部分を理解することは、コードをより効果的にビルド、テスト、デプロイするのに役立ちます。
主要な概念の概要
次の図は、パイプラインの主要なコンポーネントとアクションを示しています。
Dave Jarvis はこのグラフィックに貢献しました。
- 手動トリガー、スケジュールトリガー、または自動 トリガー により、 パイプライン が開始されます。
- パイプラインには 1 つ以上のステージを含め、1 つ以上の環境にデプロイできます。
- ステージ はパイプラインを整理する方法であり、それぞれに 1 つ以上の ジョブが含まれています。
- ジョブはエージェントで実行されるか、エージェントレスにすることができます。
- 各 ジョブ には、1 つ以上の ステップが含まれています。
- ステップはパイプラインの最小要素であり、タスクまたはスクリプトにすることができます。
- タスク は、REST API の呼び出しやビルド成果物の発行などのアクションを実行する、事前にパッケージ化されたスクリプトです。
- パイプライン 実行 では、ファイルやパッケージなどの 成果物が 生成されます。
Azure Pipelines の用語
次の用語では、Azure Pipelines の主要なコンポーネントとプロセスを定義します。
エージェント
エージェントは、一度に 1 つのパイプライン ジョブ を実行するエージェント ソフトウェアがインストールされたコンピューティング インフラストラクチャです。 たとえば、Microsoft がホストする Ubuntu エージェントでジョブを実行できます。 さまざまな種類のエージェントとその使用方法の詳細については、「 Azure Pipelines エージェント」を参照してください。
エージェントを使用せずに実行できるタスク ステップの数は限られています。 詳細については、「 エージェントレス ジョブでサポートされるタスク」を参照してください。
承認とチェック
承認とチェックでは、 パイプラインまたはステージの実行前に必要な検証のセットを定義します。 手動承認は、運用環境へのデプロイを制御するための一般的なチェックです。 環境にチェックと承認が構成されている場合、パイプラインの実行は、すべてのチェックと承認が正常に完了するまで一時停止します。
Artifacts
成果物は、 実行 によって発行され、配布やデプロイなどの後続のパイプライン タスクで使用できるファイルまたはパッケージのコレクションです。 Azure Pipelines の成果物は、1 つのフィードでパッケージを格納、管理、共有できる Azure DevOps の一部である Azure Artifacts とは異なります。
継続的デリバリー
継続的デリバリー (CD) は、1 つ以上のテスト環境と運用環境にコードをビルド、テスト、デプロイするためのプロセスです。 複数の 段階 でデプロイとテストを行うと、早期および頻繁にエラーをキャッチして品質を向上できます。
CD の自動リリース パイプラインでは、継続的インテグレーション (CI) パイプラインの成果物を使用して、新しいバージョンと修正プログラムをリリースできます。 継続的な監視とアラートにより、CD プロセスが可視化されます。
継続的インテグレーション
継続的インテグレーション (CI) は、自動化されたテストを実行し、コードがプッシュされるたびにスケジュールに従ってビルドするプロセスです。 CI を使用すると、コードのテストとビルドが簡素化され、開発サイクルの早い段階で問題を簡単かつ迅速に修正できます。 CI パイプラインは、CD パイプラインが自動デプロイに使用できる成果物を生成します。
配置
YAML パイプラインの場合、デプロイ ジョブは、環境に対して順番に実行されるステップのコレクションです。 デプロイ ジョブでは、 runOnce、 rolling、 canaryなどの戦略を使用できます。 詳細については、デプロイ ジョブを参照してくだい。
クラシック パイプラインでは、デプロイによってデプロイ ステージのタスクが実行されます。これには、自動テストの実行、ビルド成果物のデプロイ、およびその他の指定されたアクションが含まれます。
配備グループ
Azure Pipelines クラシック リリース パイプラインでは、 デプロイ グループはデプロイ ターゲット マシンの論理グループです。 展開グループ内のすべてのターゲット サーバーには、デプロイ エージェントがインストールされている必要があります。 詳細については、「 デプロイ グループのエージェントをプロビジョニングする」を参照してください。
環境
環境とは、アプリケーションをデプロイする仮想マシン、コンテナー、Web アプリ、サービスなどのリソースのコレクションです。 パイプラインは、ビルドを完了してテストを実行した後、1 つ以上の環境にデプロイできます。
仕事
ジョブは、同じエージェントで順番に実行される一連のステップの実行境界を表 します。 パイプライン ステージ には、1 つ以上のジョブを含めることができます。 既定では、ジョブは常に段階的に順番に実行されるわけではありません。
ジョブは、さまざまな環境で一連の手順を実行する場合に便利です。 たとえば、ビルド ステージには、 x86 構成をビルドするための 1 つのジョブと、 x64 構成をビルドするための別のジョブを含めることができます。
各ジョブは、そのジョブ内のすべてのステップを実行するエージェントで実行されます。 限られた数のタスク ステップで、エージェントなしで実行されるエージェントレス ジョブがサポートされます。 詳細については、「 エージェントレス ジョブでサポートされるタスク」を参照してください。
図書館
Azure Pipelines ライブラリ には、 セキュリティで保護されたファイル と 変数グループが含まれています。 セキュリティで保護されたファイル は、ファイルを格納し、パイプライン間で共有する方法です。 変数グループ には、YAML パイプラインに渡したり、複数のパイプラインで使用できるようにする値とシークレットが格納されます。
Pipelines
Azure Pipelines パイプラインでは、バッチ ファイルの実行からアプリの CI/CD プロセスの自動化まで、ビルド、テスト、デプロイのタスクのワークフローを定義します。 パイプラインは、ジョブとステップを含む 1 つ以上のステージで構成されます。
パイプラインは、YAML ベースまたはクラシック エディターを使用して定義できます。 詳細については、 YAML とクラシック パイプラインに関するページを参照してください。
リリース
リリースは、クラシック パイプラインで指定された成果物のバージョン管理されたセットです。 リリースには、ステージ、タスク、トリガー、承認ポリシー、デプロイ オプションなど、リリース パイプラインの実行に必要なすべての情報のスナップショットが含まれています。 リリースは、手動で作成することも、デプロイ トリガーを使用して作成することも、REST API を使用して作成することもできます。
YAML パイプラインでは、ビルドステージとリリース ステージはすべて マルチステージ パイプライン定義に含まれます。
実行
実行は、パイプラインの 1 つの実行を表します。 実行中、Azure Pipelines は最初にパイプラインを処理し、その実行を 1 つ以上のエージェントに送信してジョブを実行します。 実行では、ステップの実行とテストの実行結果からログが収集されます。 詳細については、「 パイプラインの実行」を参照してください。
スクリプト
スクリプトは、パイプライン内のステップとしてコマンド ライン、PowerShell、または Bash コードを実行します。 macOS、Linux、および Windows 用
段階
ステージは、ビルド、テスト、運用などの懸念事項の分離をマークできるパイプラインの論理境界です。 各ステージには、1 つ以上のジョブが含まれています。 既定では、パイプライン内の複数のステージが 1 つずつ実行されます。 ステージの実行時に使用するその他の条件を指定できます。
パイプラインでのステージの定義は、次の場合に役立ちます。
- 個別のグループは、パイプラインのさまざまな部分を管理します。 たとえば、異なるマネージャーがテストジョブとデプロイジョブを管理する場合、テストステージと運用ステージを別々に用意することは理にかなっています。
- 承認のセットは、特定のジョブまたはジョブのセットに関連付けられます。 これらのジョブは、承認のために別々のステージに配置できます。
- パイプラインには、長時間の実行が必要なジョブがあります。 このようなジョブは、専用のステージに配置できます。
ステップス
ステップは、パイプラインの最小の構成要素です。 既定では、 ステップはジョブ内で次々に実行されます。 ステップには、 スクリプト または タスクを指定できます。
タスク
タスクは、パイプラインで自動化を定義するための入力セットで抽象化された、事前にパッケージ化されたスクリプトまたはプロシージャです。 使用可能なタスクについては、 Azure Pipelines タスク リファレンスを参照してください。 カスタム タスクの作成の詳細については、「 カスタム パイプライン タスク拡張機能の追加」を参照してください。
トリガー (条件や動作を引き起こすもの)
トリガーは、パイプラインを実行するイベントです。 パイプラインは、手動でトリガーすることも、設定されたスケジュールで実行することもできます。 また、リポジトリへのプッシュ時、別のビルドの完了時、またはその他の条件下で、パイプラインを自動的に実行するようにトリガーすることもできます。 詳細については、「パイプラインとクラシック リリース トリガーをトリガーするイベントを指定する」を参照してください。