DevTest Labs を使用した Azure Pipelines アーキテクチャ
重要
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 環境はステージング環境に使用されます。
アーキテクチャ
このアーキテクチャの Visio ファイルをダウンロードします。
データフロー
このセクションでは、Azure Pipelines のベースライン アーキテクチャに関する記事を読んでいるものと想定し、ステージングのための Azure DevTest Labs へのワークロードのデプロイの詳細のみに焦点を当てています。
PR パイプライン - "ベースラインと同じ"
CI パイプライン - "ベースラインと同じ"
CD パイプライン トリガー - "ベースラインと同じ"
CD の DevTest Labs ステージング環境の作成 - この手順では、ステージング環境として機能する DevTest Labs 環境を作成します。 この手順には、次のものが含まれます。
- ステージング サブスクリプションに Azure DevTest Labs 環境を作成する。
- ARM テンプレートを DevTest Labs 環境にデプロイする。 仮想マシン イメージは、共有イメージ ギャラリーに保存できます。
- ステージング環境を適切に構成するためのデプロイ後の手順を実行する。
CD のステージングへのリリース - ベースラインと同じですが、1 つ例外があります。 ステージング環境は DevTest Labs 環境です。
CD の運用環境へのリリース - "ベースラインと同じ"
監視 - "ベースラインと同じ"
コンポーネント
このセクションでは、Azure Pipelines のベースライン アーキテクチャに関する記事のコンポーネント セクションを読んでいるものと想定し、ステージングのための Azure DevTest Labs へのワークロードのデプロイの詳細のみに焦点を当てています。
- Azure DevTest Labs は、開発、テスト、デプロイの目的で使用される環境を作成、使用、管理するためのサービスです。 このサービスを使用すると、費用効果の高い方法で、事前構成済みの環境を簡単にデプロイできます。
代替
CD プロセスの一部として DevTest Labs ステージング環境を作成する代わりに、パイプラインの外部に環境を事前に作成することもできます。 これには、パイプラインを高速化する有益な利点があります。 この代替方法では、パイプラインの完了後に環境を破棄する機能が停止され、コストが増加します。
Azure VM Image Builder と Shared Image Gallery が動作しない状況では、イメージ ファクトリをセットアップして、CI/CD パイプラインから VM イメージをビルドし、イメージに登録されているすべての Azure DevTest Labs に自動的に配布できます。 詳細については、「Azure DevOps からイメージ ファクトリを実行する」を参照してください。
ステージングを越える追加の環境を作成し、CD パイプラインの一部としてデプロイできます。 これらの環境では、パフォーマンス テストやユーザー受け入れテストなどのアクティビティをサポートできます。
考慮事項
このセクションでは、Azure Pipelines のベースライン アーキテクチャに関する記事の考慮事項セクションを読んでいるものと想定し、ステージングのための Azure DevTest Labs へのワークロードのデプロイの詳細のみに焦点を当てています。
コストの最適化
- Azure DevTest Labs のポリシーと手順を使用したコストの制御を使用することを検討します。
オペレーショナル エクセレンス
- ロールバック、手動承認テスト、パフォーマンス テストなどを可能にするために、ステージングと運用以外の環境の実装を検討してください。 ステージングをロールバック環境として使用すると、その環境を他の目的で使用できません。