Microsoft Dev Box について用語と登場人物の役割を中心にまとめます
Microsoft Dev Box とは
Dev Box とは開発環境をユーザーに提供するサービスです
物理端末を提供する代わりに、Azure VM を提供するイメージです
そのため、通常の端末と同様に管理が必要になります
どんな役割の人が何をするのかを簡単に書いてみます
役割 | 担当内容 |
---|---|
プラットフォーム エンジニア | ネットワークなど Azure のインフラ周りを整備 |
IT 管理者 | Intune や ADDC を使って Dev Box を管理 |
開発のチーム リーダー | 開発者メンバーが利用する VM テンプレートを準備。ユーザーのニーズに合わせていくつか選択肢を提供することも |
開発者 | 上記で準備されたラインナップから 使いたい開発環境を選択 |
参考:Microsoft Dev Box とは - Microsoft Dev Box | Microsoft Learn
用語の整理
Dev Box では用語がややこしいので整理しておきます
開発ボックス (Dev Box)
ユーザーがアクセスする VM です
開発者は好きなタイミングで開発ボックスを作成、停止、削除できます
開発ボックス定義 (Dev box definition)
開発リーダーが開発者に提供する開発ボックスをカタログ化したものです
以下の要素から構成されます
- VM イメージ
- VM サイズ (SKU)
- ストレージ
開発リーダーはこの定義の中から自分のチームで使うカタログを選択します
例えば「つよつよマシン」「そこそこマシン」「win10 マシン」「win11 マシン」などを事前にカタログ化しておきます
開発ボックス プール (Dev Box pool)
開発者が利用する開発ボックス (Dev Box) のテンプレートです
以下の要素から構成されます
- 利用する開発ボックス定義
- 開発ボックスが所属するネットワーク
- 開発ボックス内での OS 権限
- 自動シャットダウンの有無
プロジェクト
実際の開発チームと突き合わせる概念です
「うちのチームでは「つよつよマシン」と「そこそこマシン」テンプレートを開発者に選ばせるんだ」
「うちのチームでは1人当たりマシンは2台までだ」
とプロジェクト内の利用ルールを紐づけます
デベロッパーセンター
プロジェクトや開発ボックス定義や、ネットワーク設定などすべての概念を束ねる親玉グループです
用語を図にしてみる
公開情報にある図はこちらです
誰がどこを管理するのかが わかりずらいので修正してみます
参考:Microsoft Dev Box の主な概念 - Microsoft Dev Box | Microsoft Learn
プラットフォーム エンジニアの役割
プラットフォーム エンジニアは Azure インフラを管理します
今回は以下の要素を管理することとします
- デベロッパー センターの管理
- Network 構成
- プロジェクトの作成
- 開発ボックス定義の作成
graph LR
%% ノード
subgraph DevCenter["デベロッパー センター"]
Project["開発プロジェクトA"]
subgraph devboxdef1["つよつよ開発ボックス定義"]
direction RL
SKU1["VM SKU"]
storage1["VM ストレージ"]
image1["VM イメージ"]
end
subgraph devboxdef2["そこそこ開発ボックス定義"]
direction RL
SKU2["VM SKU"]
storage2["VM ストレージ"]
image2["VM イメージ"]
end
Network1["独立ネットワーク"]
Network2["オンプレ接続
ネットワーク"]
end
%% 関係性
%% 色
classDef manageG fill:#006699,color:#fff,stroke:#fff
class Project,Network1,Network2 manageG
classDef VnetG fill:none,color:#0a0,stroke:#0a0
class DevCenter,devboxdef1,devboxdef2 VnetG
開発のチーム リーダー
開発のチームリーダーはプロジェクトに合わせて自チームで使う開発環境 (開発ボックス プール) を作ります
プラットフォーム エンジニアが作った材料を組み合わせるイメージです
graph TB
%% ノード
subgraph DevCenter["デベロッパー センター"]
direction TB
subgraph devboxdef1["つよつよ開発ボックス定義"]
direction RL
SKU1["VM SKU"]
storage1["VM ストレージ"]
image1["VM イメージ"]
end
subgraph devboxdef2["そこそこ開発ボックス定義"]
direction RL
SKU2["VM SKU"]
storage2["VM ストレージ"]
image2["VM イメージ"]
end
Network1["独立ネットワーク"]
Network2["オンプレ接続
ネットワーク"]
subgraph Project["開発プロジェクトA"]
subgraph pool11["つよつよ開発ボックス プール"]
devboxdef11["開発ボックス定義"]
OS11["OS 内ユーザー権限"]
network11["ネットワーク"]
end
subgraph pool12["そこそこ開発ボックス プール"]
devboxdef12["開発ボックス定義"]
OS12["OS 内ユーザー権限"]
network12["ネットワーク"]
end
end
end
%% 関係性
devboxdef1 --"選択"--> devboxdef11
Network1 --"選択"--> network11
devboxdef2 --"選択"--> devboxdef12
Network2 --"選択"--> network12
%% 色
classDef manageG fill:#006699,color:#fff,stroke:#fff
class devboxdef11,OS11,network11,devboxdef12,OS12,network12 manageG
classDef VnetG fill:none,color:#0a0,stroke:#0a0
class pool11,pool12 VnetG
開発者
開発者は用意されたプールの中から自分が必要なものを選択し、利用します
graph TB
%% ノード
subgraph DevCenter["デベロッパー センター"]
direction TB
subgraph devboxdef1["つよつよ開発ボックス定義"]
direction RL
SKU1["VM SKU"]
storage1["VM ストレージ"]
image1["VM イメージ"]
end
subgraph devboxdef2["そこそこ開発ボックス定義"]
direction RL
SKU2["VM SKU"]
storage2["VM ストレージ"]
image2["VM イメージ"]
end
Network1["独立ネットワーク"]
Network2["オンプレ接続
ネットワーク"]
subgraph Project["開発プロジェクトA"]
subgraph pool11["つよつよ開発ボックス プール"]
devboxdef11["開発ボックス定義"]
OS11["OS 内ユーザー権限"]
network11["ネットワーク"]
end
subgraph pool12["そこそこ開発ボックス プール"]
devboxdef12["開発ボックス定義"]
OS12["OS 内ユーザー権限"]
network12["ネットワーク"]
end
end
DevBox
end
%% 関係性
devboxdef1 --"選択"--> devboxdef11
Network1 --"選択"--> network11
devboxdef2 --"選択"--> devboxdef12
Network2 --"選択"--> network12
pool11 --> DevBox
%% 色
classDef manageG fill:#006699,color:#fff,stroke:#fff
class DevBox manageG
IT 管理者の役割
作成された Dev Box を OS 観点で管理します
Intune や ADDC を使った管理方法になります
graph TB
%% ノード
subgraph DevCenter["デベロッパー センター"]
direction TB
subgraph devboxdef1["つよつよ開発ボックス定義"]
direction RL
SKU1["VM SKU"]
storage1["VM ストレージ"]
image1["VM イメージ"]
end
subgraph devboxdef2["そこそこ開発ボックス定義"]
direction RL
SKU2["VM SKU"]
storage2["VM ストレージ"]
image2["VM イメージ"]
end
Network1["独立ネットワーク"]
Network2["オンプレ接続
ネットワーク"]
subgraph Project["開発プロジェクトA"]
subgraph pool11["つよつよ開発ボックス プール"]
devboxdef11["開発ボックス定義"]
OS11["OS 内ユーザー権限"]
network11["ネットワーク"]
end
subgraph pool12["そこそこ開発ボックス プール"]
devboxdef12["開発ボックス定義"]
OS12["OS 内ユーザー権限"]
network12["ネットワーク"]
end
end
DevBox
end
managed[["Intune または ADDC"]]
%% 関係性
devboxdef1 --"選択"--> devboxdef11
Network1 --"選択"--> network11
devboxdef2 --"選択"--> devboxdef12
Network2 --"選択"--> network12
pool11 --> DevBox
managed --> DevBox
%% 色
classDef manageG fill:#006699,color:#fff,stroke:#fff
class managed manageG
まとめ
今回は用語と登場人物に焦点を当てて Dev Box をまとめてみました
用語はややこしくて複雑ですが、誰が何をするかに焦点を当てると理解が進みました
次回は実際にデプロイをしてみたいと思います