Microsoft Dev Box のコンポーネントについて
概念的には、エンド ツー エンドの Dev Box サービスセットアップ用のコンポーネントがいくつかあります。 プラットフォーム エンジニアまたは IT 管理者は、 デベロッパー センター、 プロジェクト、開発 ボックスの定義を設定します。 プロジェクトが作成されると、開発チームのリードはプロジェクトの管理を委任できます。これにより、開発チーム用の Dev Box プール を作成できます。
デベロッパー センター
デベロッパー センターは、Dev Box サービスのデプロイ プロセスを開始するときに Azure で設定する必要がある最初のリソースです。 これは、Dev Box インフラストラクチャの中央管理エンティティです。 これは、複数のプロジェクト間で構成設定を整理して適用するコントロール プレーンとして機能します。 これは、Dev Box 関連のすべてのリソースの本社と考えてください。
デベロッパー センターの主要な機能
- リソース管理: プロジェクト、 Dev Box 定義、 および Azure コンピューティング ギャラリー の参照をホストします。
- ネットワーク監視: 関連するプロジェクト内のすべての Dev Box マシンで使用される定義済みのネットワーク接続へのリンク
- 構成の標準化: 共有カタログを使用して一貫性のあるポリシーとツールを確保します。
1 つのデベロッパー センターで複数 のプロジェクトをサポートできるため、プロジェクト レベルのカスタマイズによる一元的なガバナンスが可能になります。
プロジェクト
Microsoft Dev Box のプロジェクトは、通常、チーム、部門、またはアプリケーションの開発コンテキストを定義します。 プロジェクトはデベロッパー センターに関連付けられており、ネットワーク アクセス、イメージ、セットアップ タスクなどの標準化されたリソースを継承できます。 プロジェクトは、テナント内のさまざまな Azure サブスクリプションに配置できます。 機能、部門、または課金に基づいて社内で分離がある場合は、デベロッパー センターの一元管理を維持しながら、適切なサブスクリプションでプロジェクトを作成できます。
プロジェクト ポリシーを使用して、特定のプロジェクトのニーズに合わせて基本イメージをさらにカスタマイズするために使用できるリソースとプロジェクトのカスタマイズとイメージング機能にアクセスできるプロジェクトを制御できます。
各プロジェクトには次のものが含まれます
- Dev Box プール: サイズ、リージョン、または目的に基づく Dev Box マシンのグループ化。
- ユーザー アクセス: Dev Box ユーザー ロールに割り当てられた開発者は、Dev Box プールで Dev Box マシンをプロビジョニングできます
- プロジェクト管理者: プール、イメージ定義、およびアクセス制御を構成するために割り当てられます。
プロジェクトでは境界とアクセス許可が適用され、開発者はチームまたは製品に関連するリソースのみを使用できます。
Dev Box の定義
Dev Box 定義は、Dev Box の技術仕様を定義します。
次のように指定します。
- Dev Box マシンに使用する基本オペレーティング システム イメージ (Windows 11 と Visual Studio、内部ツールを使用したカスタム イメージなど)。
- コンピューティング サイズとディスク構成 (8 コア vCPU、32 GB RAM、512 GB ストレージなど)。
通常、組織はバージョン管理と簡単な再利用のために、Dev Box マシン イメージを Azure コンピューティング ギャラリーに保持します。 これにより、次のようなシナリオがサポートされます。
- 部門またはプロジェクトごとのカスタム イメージ。
- 規制対象の業界向けの標準化された開発環境。
- 画像管理とロールバックの効率化。
ネットワーク接続
ネットワーク接続は、Dev Box マシンが適切なサービスにアクセスし、セキュリティを維持するために不可欠です。 Microsoft Dev Box では、主に次の 2 種類のネットワーク接続オプションを使用できます。
- Microsoft-Hosted ネットワーク: Microsoft は、Dev Box マシンがデプロイされるセキュリティで保護されたインフラストラクチャをプロビジョニングし、維持します。 高速セットアップとシンプルなニーズに最適です。 ただし、このインフラストラクチャにインストールされている Dev Box マシンを制御します。
- Azure ネットワーク接続: 組織は、Dev Box マシンをデプロイするネットワーク インフラストラクチャを管理します。 これは、インフラストラクチャを制御および管理し、Azure 内の他の仮想ネットワークまたはオンプレミスのインフラストラクチャに接続する場合のオプションです。
Azure ネットワーク接続を使用すると、次の構成を行うことができます。
- ネイティブ Entra ID 結合:クラウドネイティブ アプリとサービス向け
- ハイブリッド Entra ID 参加: 共有ドライブ、レガシ システム、内部 API などのオンプレミス リソースにアクセスする場合。
カタログ
カタログは、Dev Box マシン作成プロセスの最終段階で Dev Box マシンを構成するために使用できるタスクとスクリプトを含む Git リポジトリ (パブリックまたはプライベートの GitHub または Azure DevOps リポジトリ) への接続です。 通常、IaC テンプレート、開発ボックス定義、および構成ファイルが含まれます。
デベロッパー センターにカタログを追加して、デベロッパー センターに関連付けられているすべてのプロジェクトでこれらのタスクとスクリプトを使用できるようにします。 または、プロジェクト レベルでカタログを追加することもできます。 ただし、プロジェクト にカタログを追加するには、プロジェクト レベルのカタログをデベロッパー センター レベルで有効にする必要があります。
カタログを使用すると、チームは次のことができるようになります。
- SDK、コンパイラ、CLI ツールを自動的にインストールします。
- Dev Box を内部サービスに登録します。
- コンプライアンス設定または診断を適用します。
カタログの利点
| 特徴 | ベネフィット |
|---|---|
| 再 利用 | Teams では、さまざまなプロジェクトにカタログを再利用できます |
| 一貫性 | 標準化されたイメージ、VM サイズ、ツール、ネットワーク |
| ガバナンス | プラットフォーム/IT チームは、開発者が利用できる内容を制御できます |
| セルフサービス | 開発者はこれらのテンプレートを使用して、オンデマンドで環境を起動できます |
Dev Box の Azure リージョン
Microsoft Dev Box サービスは、複数の Azure リージョンでグローバルに利用できます。 待ち時間を短縮するために、開発者が配置されている場所に最も近いリージョンに Dev Box マシンをデプロイするのが理想的です。 デベロッパー センターとプロジェクトは、Dev Box マシンと同じリージョンに存在する必要はありません。
複数の開発者が異なる地理的な場所に配置されている場合、プラットフォーム エンジニアリングまたは IT 管理者チームは、開発者に近い異なる地理的な Azure リージョンを持つ複数の開発ボックス プールを作成できます。 その後、開発者は、Dev Box マシンをデプロイするときに、その場所に最も近い適切な Dev Box プールを選択します。
Dev Box プール
Microsoft Dev Box サービスの Dev Box プールは、同じものを共有する Dev Box マシンのグループです。
- プロジェクト
- イメージ (Windows + 開発者ツール)
- VM サイズ/SKU (CPU、メモリ)
- Azure リージョン (Microsoft ホステッド ネットワーク用)
- ネットワーク接続 (Microsoft ホステッド ネットワークまたはプライベート ネットワーク接続)
- コスト管理機能 (スケジュールに従って自動停止 + 切断時に休止状態)
Dev Box マシン
これは、開発者ポータルまたは CLI ツールを使用して開発者が作成する構成済みの仮想マシンです。 このクラウド仮想マシンは、特定のプロジェクトと Dev Box プールに関連付けられています。 これらのマシンには、開発者がすぐに生産性を高めるのに役立つ、必要なすべてのツール、ライブラリ、および適切な構成があります。 開発者は、異なるプロジェクトまたはタスク専用の複数の Dev Box マシンを作成できます。
すべてをエンドツーエンドで一体化する
サービスのさまざまなコンポーネントについて理解したところで、この図は、サービスのさまざまなコンポーネントがどのように接続され、エンドツーエンドで動作するかを示しています。