Azure DevTest Labs のシナリオ
この記事では、さまざまな開発、テスト、およびトレーニングのシナリオで Azure DevTest Labs を使用する方法について説明します。 DevTest Labs のいくつかの一般的なシナリオを次に示します。
- 開発者はアプリを繰り返し使用する際に、多くの (場合によってはさまざまな) 仮想マシン (VM) と環境を必要とします。
- テスト担当者は、パフォーマンス テストとサンドボックス調査のために、同一のまたは異なる複数の VM と環境を使用します。
- 教師とトレーナーは、新しいクラスルーム、ラボ、ハッカソン用の VM と環境を定期的に必要とします。
以下のセクションでは、DevTest Labs でこれらのシナリオがどのようにサポートされ、その一方でラボの所有者と管理者がラボのアクセスとコストを管理するのにどのように役立つかについて説明します。
ラボの作成
ラボは DevTest Labs における開始点です。 ラボを作成した後、次のことができます。
- ラボ ユーザーを追加します。
- ラボ ユーザーが要求できる事前構成済みの VM を作成します。
- ラボ ユーザーが独自の VM と環境をすばやく作成できるように、イメージ、数式、テンプレートを定義します。
- 構成とポリシーを使用して、ラボとコストを管理します。
- DevOps のシナリオをサポートするために Azure DevOps と統合します。
- 成果物と ARM テンプレートにアクセスするためにパブリックおよびプライベートの Git リポジトリにリンクします。
次の図は、ラボ所有者がポリシーを構成し、ラボ ユーザーにリソースを提供する方法を示しています。
Azure portal でラボを作成するには、「Azure DevTest Labs でのラボの作成」を参照してください。
再利用可能な "Azure Resource Manager (ARM) テンプレート" を使用して、カスタム設定を含むラボの作成を自動化することもできます。 詳細については、「Azure DevTest Labs での Azure Resource Manager (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 リソースには適用されません。
- Azure 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 の探索を開始するために、組織は概念実証と規模拡大デプロイを使用できます。
- 概念実証では、単一のチームが集中的な作業を行って、組織の価値を確立します。
- 規模拡大デプロイでは、数週間または数か月にわたるレビューと計画を行って、数百人または数千人の開発者が存在する企業に DevTest Labs をデプロイします。
迅速な規模拡大デプロイは魅力的ですが、概念実証を伴わないこのアプローチは多くの場合に失敗します。 小さく始めて、1 つのチームから学び、チームを少し増やして同じアプローチを繰り返し、得られた知識に基づいて規模拡大デプロイを計画することをお勧めします。
概念実証を成功させるには、次のようにします。
- 1 つまたは 2 つのチームを選択します。
- チームのシナリオを特定します (開発者 VM やテスト環境など)。
- 現在のユース ケースを文書化します。
- チームのシナリオとユース ケースを実現するために DevTest Labs をデプロイする。
次のステップ
Azure DevTest Labs を使用する
Azure を利用するのが初めてであれば、 無料の Azure アカウントを作成してください。
既に Azure をご利用中であれば、 最初のラボを作成し、Azure DevTest Labs の使用を数分で開始しましょう。