Important
DevTest Labs を使用した CI/CD は、 Azure DevOps を使用した CI/CD パイプラインの設計の一種です。 この記事では、DevTest Labs ステージング環境へのデプロイの詳細について説明します。
DevTest Labs を使用すると、再利用可能なテンプレートと成果物を使用して Windows および Linux 環境をプロビジョニングできます。 これらの環境は開発者にとって便利ですが、ステージング環境をプロビジョニングするために CI/CD パイプラインで使用することもできます。 DevTest Labs がシナリオに適しているかどうかを判断するには、Azure DevTest Labs のシナリオを参照してください。
この記事では、Azure Pipelines で継続的インテグレーション (CI) と継続的デプロイ (CD) プラクティスを使用してアプリケーションの変更をデプロイするための高度な DevOps ワークフローについて説明します。 DevTest Labs 環境は、ステージング環境に使用されます。
Architecture
このアーキテクチャの Visio ファイル をダウンロードします。
データフロー
このセクションでは、 Azure Pipelines ベースライン アーキテクチャ を読み取り、ステージングのために DevTest Labs にワークロードをデプロイする方法についてのみ説明します。
PR パイプライン - ベースラインと同じ
CI パイプライン - ベースラインと同じ
CD パイプライン トリガー - ベースラインと同じ
CD で DevTest Labs ステージング環境を作成 する - この手順では、ステージング環境として機能する DevTest Labs 環境を作成します。 この手順には次のものが含まれます。
- ステージング サブスクリプションで DevTest Labs 環境を作成します。
- DevTest Labs 環境に Azure Resource Manager テンプレートをデプロイします。 仮想マシン イメージは、共有イメージ ギャラリーに格納できます。
- デプロイ後の手順を実行して、ステージング環境を適切に構成します。
ステージングへの CD リリース - ベースラインと同じですが、1 つの例外があります。 ステージング環境は DevTest Labs 環境です。
CD リリースからプロダクションへ - ベースラインと同じである
監視 はベースラインと同じ
Components
このセクションでは、 Azure Pipelines のベースライン アーキテクチャ コンポーネントのセクション を読み、ステージングのために DevTest Labs にワークロードをデプロイする方法についてのみ説明します。
- Azure DevTest Labs は、開発、テスト、デプロイの目的で環境を作成、使用、管理するためのサービスです。 このサービスを使用すると、事前構成済みの環境をコスト効率の高い方法で簡単にデプロイできます。
Alternatives
CD プロセスの一部として DevTest Labs ステージング環境を作成する代わりに、パイプラインの外部に環境を事前に作成します。 このアプローチにより、パイプラインが高速化されます。 ただし、この方法では、パイプラインの完了後に環境を破棄する機能が停止され、コストが増加します。
Azure VM Image Builder と共有イメージ ギャラリーが機能しない場合は、CI/CD パイプラインから VM イメージをビルドし、それらのイメージに登録されている DevTest Labs に自動的に配布するようにイメージ ファクトリ を設定します。 詳細については、「 Azure DevOps からイメージ ファクトリを実行する」を参照してください。
CD パイプラインの一部として、ステージングを超えて追加の環境を作成してデプロイできます。 これらの環境では、パフォーマンス テストやユーザー受け入れテストなどのアクティビティをサポートできます。
考慮事項
このセクションでは、 Azure Pipelines ベースライン アーキテクチャの考慮事項に関するセクション を読み、ステージングのために DevTest Labs にワークロードをデプロイする方法についてのみ説明します。
コストの最適化
オペレーショナル エクセレンス
- ロールバック、手動受け入れテスト、パフォーマンス テストを有効にするには、ステージングと運用環境以外の環境の実装を検討してください。 ロールバック環境としてステージングを使用すると、その環境を他の目的で使用できなくなります。