この記事では、さまざまな開発、テスト、およびトレーニングのシナリオで Azure DevTest Labs を使用する方法について説明します。 DevTest Labs のいくつかの一般的なシナリオを次に示します。
- 開発者はアプリを繰り返し使用する際に、多くの (場合によってはさまざまな) 仮想マシン (VM) と環境を必要とします。
- テスト担当者は、パフォーマンス テストとサンドボックス調査のために、同一のまたは異なる複数の VM と環境を使用します。
- 教師とトレーナーは、新しいクラスルーム、ラボ、ハッカソン用の VM と環境を定期的に必要とします。
以下のセクションでは、DevTest Labs でこれらのシナリオがどのようにサポートされ、その一方でラボの所有者と管理者がラボのアクセスとコストを管理するのにどのように役立つかについて説明します。
ラボの作成
ラボは DevTest Labs における開始点です。 ラボを作成した後、次のことができます。
- ラボ ユーザーを追加します。
- ラボ ユーザーが要求できる構成済み VM を作成します。
- ラボ ユーザーが独自の VM と環境をすばやく作成できるように、イメージ、数式、テンプレートを定義します。
- 構成とポリシーを使用して ラボを管理し、コストを制御します。
- DevOps のシナリオをサポートするために Azure DevOps と統合します。
- アーティファクトと Azure Resource Manager (ARM) テンプレートにアクセスするためのパブリックおよびプライベート Git リポジトリへのリンク。
次の図は、ラボ所有者がポリシーを構成し、ラボ ユーザーにリソースを提供する方法を示しています。
Azure DevTest Labs でラボを作成するには、次のいずれかの方法を使用できます。
Azure portal | Bicep ファイル | ARM テンプレート | Terraform | PowerShell と Azure REST API
再利用可能な ARM テンプレートを使用して、カスタム設定を含むラボの作成を自動化することもできます。 詳細については、 Azure DevTest Labs の ARM テンプレートに関するページを参照してください。
仮想ネットワークをラボに追加する
DevTest Labs によって、各ラボの新しい仮想ネットワークが作成されます。 Azure ExpressRoute またはサイト間仮想プライベート ネットワーク (VPN) で構成された別の仮想ネットワークがある場合は、それをラボに追加し、その仮想ネットワークにラボ VM を作成できます。 詳細については、Azure DevTest Labs での仮想ネットワークの構成に関する記事を参照してください。
ユーザーをラボに追加する
ラボの所有者は、Azure portal または PowerShell スクリプトを使用して、ユーザーをラボに追加できます。 詳細については、「Azure DevTest Labs でラボ所有者、共同作成者、ユーザーを追加する」を参照してください。 ラボ ユーザーは、Microsoft アカウントを持っている限り、Azure アカウントを持っている必要はありません。
ラボ ユーザーは、VM、ポリシー、仮想ネットワークなど、すべてのラボ リソースを表示できます。 ラボ ユーザーは、ポリシーを変更したり、他のユーザーが作成または要求する VM にアクセスしたりすることはできません。
ラボ ポリシーを構成してコストを管理する
コストを監視および管理するために、ラボの管理者と所有者は次のことができます。
- 各ユーザーが作成または要求できる VM の数を制限します。
- ラボ内の特定の仮想マシン (VM) サイズのみを許可します。
- 特定の時間帯にすべての VM を停止して再起動するように、自動シャットダウンポリシーと自動起動ポリシーを構成します。 VM の自動シャットダウンは、環境のサービスとしてのプラットフォーム (PaaS) リソースには適用されません。
- Microsoft Cost Management を使用して 、環境コストを追跡します。
VM の開発とテスト
開発者とテスト担当者は、パフォーマンスまたはロード テストのために同一の VM を多数必要とする場合や、プロジェクトやイテレーションごとに異なる種類の VM が必要になる場合があります。 DevTest Labs ユーザーは、ニーズに応じて VM を作成、構成、アクセスできます。 共通の VM イメージから開始すると、チーム間の一貫性が促進されます。
DevTest Labs では、開発者は次のことができます。
- 必要に応じて VM を迅速にプロビジョニングしたり、事前構成済みの既存の VM を要求したりします。
- サブスクリプションレベルのアクセス許可を必要とせずに、独自の VM をセルフサービスします。
- 特別なアクセス許可を必要とせずに、ラボの所有者と管理者が設定した仮想ネットワークを直接使用します。
- 必要に応じて成果物を追加することで、VM を簡単にカスタマイズします。
VM の作成
ラボ ユーザーは、あらかじめ用意されているさまざまな Azure Marketplace イメージから選択することで、ラボ VM を数分で作成できます。 一部の Marketplace イメージをラボ ユーザーが使用できるようにする方法については、Azure Marketplace イメージの構成に関する記事を参照してください。
ラボ所有者は、必要なソフトウェアを VM にインストールし、VM を "カスタム イメージ" として保存し、イメージをラボで使用できるようにすることもできます。 ラボ ユーザーはカスタム イメージを使用して、ソフトウェアがプレインストールされている VM を作成できます。 詳しくは、カスタム イメージの作成に関する記事を参照してください。
イメージ ファクトリを使用すると、カスタム イメージを自動的にビルドして定期的に配布できます。 このコードとしての構成ソリューションによって、ベース OS とコンポーネントを最新の状態に保つことで、VM イメージを手動で管理する必要がなくなります。 詳しくは、カスタム イメージ ファクトリの作成に関する記事を参照してください。
VM 用の再利用可能な数式を使用する
DevTest Labs の "数式" は、VM 用の既定のプロパティ値の一覧です。 ラボの所有者は、VM イメージ、CPU と RAM に基づく VM サイズ、仮想ネットワークを選択して、ラボで数式を作成できます。 ラボ ユーザーは数式を確認し、それを使用して VM を作成できます。 詳しくは、DevTest Labs の数式の管理に関する記事を参照してください。
VM のカスタマイズに成果物を使用する
ラボ ユーザーは、ラボ VM を構成するための "成果物" を追加できます。 次に示すアーティファクトが対象です。
- エージェント、Fiddler、Visual Studio など、VM にインストールするツール。
- VM で実行するアクション (リポジトリの複製など)。
- テスト対象のアプリケーション。
多くの成果物はすぐに利用できるようになっています。 さらにカスタマイズが必要 な場合は、カスタム成果物 を作成することもできます。 ラボに接続するプライベート Git リポジトリにカスタム 成果物を格納すると、すべてのラボ ユーザーが VM に成果物を追加できます。 詳細については、「DevTest Labs のカスタム成果物を作成する」および「成果物リポジトリをラボに追加する」を参照してください。
Active Directory ドメイン参加成果物を追加して、VM を作成時に Active Directory ドメインに参加させることができます。 この成果物は、ドメインにのみ適用されます。
マルチ VM 環境
多くの開発およびテスト シナリオでは、PaaS リソースを備えたマルチ VM 環境 が必要です。 例として、Azure Web Apps、SharePoint ファーム、Service Fabric クラスターなどがあります。 環境を作成し、これを企業全体にわたって管理するには、多大な労力が必要になることがあります。
DevTest Labs を使用すると、複数の VM 環境をチームで簡単に作成、更新、または複製できます。 開発者は完全に構成された環境を使用して、最新バージョンのアプリの開発とテストを行うことができます。 DevTest Labs 環境によって、チーム間の一貫性が確保されます。
ARM テンプレートを使用して環境をデプロイすることで、次のことができます。
- 複数の構成済み VM を一貫性のある状態で繰り返しデプロイします。
- Windows または Linux 環境のインフラストラクチャと構成を定義します。
- Azure PaaS リソースをプロビジョニングし、そのコストを追跡します。
詳細については、「ARM テンプレートを使用して DevTest Labs 環境を作成する」を参照してください。
環境に対する共同作成者権限をユーザーに付与する
既定では、DevTest Labs は独自のリソース グループに環境を作成し、DevTest Labs ユーザーはそれらの環境への読み取りアクセスを取得します。 読み取り専用アクセスでは、ユーザーはそれらの環境でリソースを追加または変更することはできません。 しかし、開発者は多くの場合、さまざまなテクノロジやインフラストラクチャの設計について調査する必要があります。
ラボの所有者は、ユーザーに環境に対する共同作成者権限を付与することで、より詳細な制御を許可できます。 共同作成者は、独自の開発環境またはテスト環境で、必要に応じて Azure リソースを追加または変更できます。 詳細については、「環境のユーザー権利を構成する」を参照してください。
クラスルーム、トレーニング、ハッカソン ラボ
DevTest Labs は、ワークショップ、ハンズオン ラボ、トレーニング、ハッカソンなどの一時的な活動にたいへん適しています。 これらのシナリオを次に示します。
- トレーニング リーダーまたはラボ所有者は、カスタム テンプレートを使用して、同一の分離された複数の VM または環境を作成できます。
- 受講者は URL を使用してラボにアクセスできます。
- 受講者は、既に作成された事前構成済みのマシンを 1 回のアクションで要求できます。
- ラボの所有者は、次の方法でラボのコストと有効期間を制御できます。
- ポリシーの構成。
- VM の有効期限の設定。
- アクティビティが終了したときの VM とラボの削除。
ラボと VM を削除する
ラボ所有者は、不要になったラボや VM を削除することによってコストを管理できます。
- VM の有効期限を設定します。
- ラボと関連するすべてのリソースを削除します。
- 1 つの PowerShell スクリプトを実行して、すべてのラボ VM を削除します。
概念実証と規模拡大デプロイ
DevTest Labs の探索を開始するために、組織は概念実証と規模拡大デプロイを使用できます。
- 概念実証では、1 つのチームからの集中した作業を使用して、組織の価値を確立します。
- 規模拡大デプロイでは、数週間または数か月にわたるレビューと計画を行って、数百人または数千人の開発者が存在する企業に DevTest Labs をデプロイします。
迅速な規模拡大デプロイは魅力的ですが、概念実証を伴わないこのアプローチは多くの場合に失敗します。 小さく始めて、1 つのチームから学び、チームを少し増やして同じアプローチを繰り返し、得られた知識に基づいて規模拡大デプロイを計画することをお勧めします。
概念実証を成功させるには、次のようにします。
- 1 つまたは 2 つのチームを選択します。
- チームのシナリオを特定します (開発者 VM やテスト環境など)。
- 現在のユース ケースを文書化します。
- チームのシナリオとユース ケースを実現するために DevTest Labs をデプロイする。
関連コンテンツ
Azure アカウントをお持ちの場合は、Azure DevTest Labs の使用を数分で開始できます。