Azure DevTest Labs での PaaS サービスの使用

この記事では、Azure DevTest Labs におけるサービスとしてのプラットフォーム (PaaS) のサポートについて説明します。 DevTest Labs は、PaaS と、サービスとしてのインフラストラクチャ (IaaS) リソースの両方を含むことができる "環境" で PaaS をサポートしています。 環境には、連携するようにカスタマイズされた仮想マシン (VM)、データベース、仮想ネットワーク、Web アプリなどのサービスとソフトウェアが含まれています。

次の図は、ラボで環境として作成された SharePoint ファームを示しています。

ラボ内の SharePoint 環境のスクリーンショット。

PaaS のシナリオ

DevTest Labs PaaS 環境では、次のシナリオがサポートされます。

  • 開発者は、複数の独立した環境を作成できます。
  • テスト担当者は、さまざまな構成を非同期的かつ自動的にテストできます。
  • テンプレートを変更せずにステージングおよび運用パイプライン統合を行うことができます。
  • ラボ所有者は、環境全体のポリシーを構成し、コストを追跡できます。

開発者のシナリオ

環境を作成するために、開発者はコンピューター イメージではなく環境テンプレートを選択し、必要な情報を入力します。 個々の開発者環境では、変更の配置を高速化し、内部ループのデバッグを向上させることができます。 開発者は、いつでも環境を破棄し、最新のテンプレートを使用して作成し直すことができます。 この機能により、システムを手動で作成したり障害から回復したりすることによるダウンタイムを短縮することができます。

テスト シナリオ

DevTest Labs 環境では、特定のコードと構成を非同期的に独立してテストすることが可能です。 テスト担当者は、継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインを使用して、環境を設定し、個々の pull request からコードを適用して、自動テストと手動テストを行うことができます。 Automation では、複数の環境をサブスクリプションとラボで管理および追跡できます。

コストの追跡

ラボの全体的なコスト傾向には、環境内の Azure リソースが含まれます。 リソース別のコストでは、環境内の各種リソースが示されるのではなく、その環境が 1 つのコストとして表示されます。 詳細については、「Azure DevTest Labs でラボに関連付けられているコストを追跡する」を参照してください。

アクセスとロール

ラボの所有者は、ラボへのアクセスを許可し、ユーザー ロールを割り当てることができます。 詳細については、「Azure DevTest Labs でラボ所有者、共同作成者、ユーザーを追加する」を参照してください。

DevTest Labs リソース プロバイダーは、ラボ ユーザーの代わりにリソースを作成します。そのため、ラボ ユーザーは、環境を作成して使用するための追加のアクセス許可を必要としません。 ただし、ラボの所有者は、リソースの追加や削除など、独自の PaaS リソースを構成および管理できるように、ラボユーザーに共同作成者のアクセス許可を拡張できます。 詳細については、「環境のユーザー権利を構成する」を参照してください。

ラボ所有者は、サブスクリプションレベルのアクセス権を付与せずに、リソースのアクセス権またはアクセス許可をカスタマイズできます。 ラボ ユーザーは、管理対象リソース グループ内でのみ Azure リソースを追加または削除できます。 ラボ ユーザー ロールとアクセス権をさらにカスタマイズするには、「特定のラボ ポリシーに対するアクセス許可をユーザーに付与する」を参照してください。

環境テンプレート

DevTest Labs では、Git リポジトリから事前構成済みの Azure Resource Manager (ARM) テンプレートを使用して環境を作成します。 ARM テンプレートをソース管理下に保持すると、一貫した環境のデプロイと管理が促進されます。

大規模な組織の開発チームは通常、カスタマイズまたは分離されたテスト環境を提供します。 IT グループは、事業単位または部門内のすべてのチームが使用できる環境を提供します。

ラボの環境作成を有効にして構成するには、「ARM テンプレートを使用して DevTest labs 環境を作成する」を参照してください。 DevTest Labs には、特定の環境を作成するための事前構成済み ARM テンプレートのパブリック リポジトリがあります。 パブリック環境の詳細については、「パブリックな環境を有効にして構成する」を参照してください。

独自の ARM テンプレートを作成または構成しそれらをプライベート Git リポジトリに格納してそれらのリポジトリをラボに接続することもできます。

テンプレートのカスタマイズ

次のような環境を作成するときに、ARM テンプレートに特定のカスタム ラボ情報を提供できます。

  • ラボ仮想ネットワーク ID
  • ラボの場所
  • ARM テンプレート ファイルがコピーされるラボ ストレージ アカウント

既存の仮想ネットワークを使用する

環境を作成すると、DevTest Labs では、[仮想マシンの作成時に使用]true に設定されている最初のラボ サブネットに $(LabSubnetId) トークンを置き換えることができます。 この変更により、環境で以前に作成した仮想ネットワークを使用できるようになります。

ラボの仮想ネットワークへの環境の接続に関する記事では、$(LabSubnetId) トークンを使用するよう ARM テンプレートを変更する方法が説明されています。 テスト環境、ステージング環境、および運用環境で同じ ARM テンプレートを使用するには、ARM テンプレート パラメーターの値として $(LabSubnetId) を使用します。

入れ子になったテンプレートを使用する

DevTest Labs では、入れ子になった ARM テンプレートをサポートしています。 _artifactsLocation および _artifactsLocationSasToken トークンを使用して、入れ子になった ARM テンプレートへの URI を作成するには、「入れ子になったテンプレートを使用して DevTest Labs 環境をデプロイする」を参照してください。 詳細については、Azure Resource Manager のベスト プラクティス ガイドデプロイの成果物に関するセクションを参照してください。

次の手順