在本文中,您將了解規劃和實作 Microsoft 開發箱部署的程序、組態選項和考量事項。
部署 Microsoft 開發箱需要組織內不同角色的參與。 每個角色都有特定的責任和需求。 開始實作 Microsoft 開發箱之前,請務必從不同的角色收集所有需求,因為它們會影響 Microsoft 開發箱中不同元件的組態設定。 概述需求之後,您就可以完成部署步驟以在您的組織中推出開發箱。
概覽:Dev Box 部署檢查清單
- 設定 Azure 訂用帳戶,並確認租用戶與 Microsoft Entra 和 Intune 的一致性。
- 規劃和設定網路 (Microsoft 裝載或 Azure 網路連線,視需要混合)。
- 設定系統管理員和使用者的 Azure RBAC 群組/角色。
- 建立開發人員中心。
- 設定開發人員中心或專案的網路連線。
- 建立或附加 Azure 計算庫 (選擇性) 以進行映像控管。
- 附加自訂目錄 (選用) 以進行設定工作。
- 建立開發箱定義 (映像 + 計算大小)。
- 建立專案並設定開發箱限制。
- 建立開發者環境集區(選擇網路連線模式與自動停止功能)。
- 設定 Microsoft Intune (裝置設定、條件式存取、許可權管理) 。
組織角色和責任
開發箱服務的設計以三個組織角色為考量:平台工程師、開發小組負責人以及開發人員。 視組織的大小和結構而定,其中一些角色可能會由人員或小組合併。
在組織中部署 Microsoft 開發箱時,每個角色都有特定責任:
平台工程師:與 IT 系統管理員合作,為開發人員小組設定開發人員基礎結構和工具。 這包含下列工作:
- 設定 Microsoft Entra ID,以啟用開發小組負責人和開發人員的身分識別和驗證
- 在組織的 Azure 訂用帳戶中建立和管理開發人員中心
- 在開發人員中心內建立和管理網路連線、開發箱定義和計算資源庫
- 在開發人員中心內建立和管理專案
- 在組織的 Azure 訂用帳戶中建立及設定其他 Azure 資源
- 為開發箱設定 Microsoft Intune 裝置組態,並將授權指派給開發箱使用者
- 設定網路設定,以啟用對組織資源的安全存取和連線
- 設定安全性設定,以授權存取開發箱
開發小組負責人:協助建立和管理開發人員體驗。 這包括下列工作:
- 在專案內建立和管理開發箱集區
- 定義影像定義和自訂的團隊特定需求
- 向平台工程師提供輸入,以建立映像定義和設定運算庫
開發人員:在其指派的專案內自助管理一或多個開發箱。
- 從開發人員入口網站連線到開發方塊
- 從開發人員入口網站建立和管理開發方塊
定義 Microsoft 開發箱的需求
當您準備在組織中進行 Microsoft 開發箱部署時,請務必先定義使用者和 IT 治理需求。 例如,開發小組是否在地理上分散、是否已設定安全性原則、標準化特定計算資源等等。
Microsoft 開發箱提供每個不同元件的各種組態選項,以針對您的特定需求最佳化部署。 根據這些需求,您可以微調組織的具體開發箱部署計劃和實作步驟。
例如,如果您的開發小組需要存取公司資源,例如中央資料庫,則這會影響開發箱集區的網路設定,且可能需要額外的 Azure 網路元件。
下表列出在設定開發箱元件時可能會影響您 Microsoft 開發箱部署和考量事項的需求。
| 類別 | 需求 | 考量 |
|---|---|---|
| 開發小組設定 | 地理位置分散的小組。 | 開發箱集區網路連線的 Azure 區域會決定裝載開發箱的位置。 若要將開發人員機器與其開發箱之間的延遲最佳化,請裝載最接近開發箱使用者位置的開發箱。 如果您有多個地理位置分散的小組,則可以建立多個網路連線和相關聯的開發箱集區,以容納每個區域。 |
| 具有不同小組負責人和權限的多個專案。 | 開發專案的權限會控制在開發人員中心內的專案層級。 當您需要跨不同開發小組進行控制時,請考慮建立新的專案。 | |
| 開發箱設定 | 不同的小組對於其開發箱有不同的軟體需求。 | 建立映像定義、自訂映像,或使用市集映像來代表整個組織的不同作業系統/軟體需求。 映像定義使用以 YAML 為基礎的自訂檔案,並允許獨立選取計算和儲存體。 例如,使用資料科學工具為資料科學家建立影像定義。 當您在專案內建立開發箱集區時,您可以從可用的映像來源中選取,並獨立選擇計算大小和儲存體。 |
| 多個計算/資源組態。 | 新式開發箱集區允許獨立選取計算大小和儲存體,提供比舊版開發箱定義更大的彈性。 根據小組需求建立開發箱集區時,選擇適當的計算和儲存體設定。 | |
| 開發人員可以自訂其開發箱。 | 針對個別開發人員自訂,例如設定原始檔控制存放庫或開發人員工具設定,您可以啟用開發箱的自訂。 | |
| 在組織特定的 VM 映像上標準化。 | 當您設定開發人員中心時,可以指定一或多個 Azure 計算資源庫,其中包含您組織專屬的 VM 映像。 使用計算資源庫,您可以確保只使用核准的 VM 映像來建立開發箱。 | |
| 身分識別和存取 | 具有 Microsoft Entra ID 的僅限雲端使用者管理。 | 您的使用者管理解決方案會影響建立開發箱集區的網路選項。 當您使用 Microsoft Entra ID 時,可以選擇裝載 Microsoft 和使用自己的網路功能。 |
| 使用 Azure Active Directory 帳戶登入。 | 如果您在 Active Directory Domain Services 中管理使用者,則必須使用 Microsoft Entra 混合式聯結來與 Microsoft 開發箱整合。 因此,您無法在建立開發箱集區時使用 Microsoft 裝載的網路選項,且必須使用 Azure 網路來啟用混合式網路連線。 | |
| 網路與連線 | 其他 Azure 資源的存取權。 | 當您需要存取其他 Azure 資源時,必須設定 Azure 網路連線。 因此,您無法在建立開發箱集區時使用 Microsoft 裝載的網路選項。 |
| 公司資源的存取權 (混合式連線)。 | 若要存取公司資源,您必須設定 Azure 網路連線,然後使用第三方 VPN、Azure VPN 或 Azure ExpressRoute 來設定混合式連線。 因此,您無法在建立開發箱集區時使用 Microsoft 裝載的網路選項。 | |
| 自訂路由。 | 當您需要自訂路由時,必須設定 Azure 網路連線。 因此,您無法在建立開發箱集區時使用 Microsoft 裝載的網路選項。 | |
| 網路安全性 | 使用網路安全性群組 (NSG) 設定流量限制。 | 當您要求網路安全性群組限制輸入和輸出流量時,必須設定 Azure 網路連線。 因此,您無法在建立開發箱集區時使用 Microsoft 裝載的網路選項。 |
| 使用防火牆。 | 若要使用防火牆或應用程式閘道,您必須設定 Azure 網路連線。 因此,您無法在建立開發箱集區時使用 Microsoft 裝載的網路選項。 | |
| 裝置管理 | 將開發箱的存取限制為僅限受管理的裝置,或根據地理位置。 | 您可以使用 Microsoft Intune 來建立動態裝置群組和條件式存取原則。 了解如何設定 Intune 條件式存取原則。 |
| 在不同的裝置上設定裝置設定和功能。 | 佈建開發箱之後,您可以像 Microsoft Intune 中的任何其他裝置一樣進行管理。 您可以建立裝置組態設定檔來開啟和關閉不同的設定。 |
另請參閱: Microsoft Dev Box 自定義。
先決條件
- 連結至您的 Microsoft Entra 租用戶的 Azure 訂用帳戶。 Dev Box 資源和 Microsoft Intune 必須位於相同的租用戶中。
- 每個開發箱使用者都有一個 Microsoft Intune 授權。
- 用於存取的 Azure RBAC 群組/角色:透過 Microsoft Entra 群組指派的專案系統管理員和開發箱使用者。
- 必須滿足的網路前置條件(例如,為混合式案例連接內部部署資源)。
部署 Microsoft 開發箱
定義需求之後,您可以開始部署 Microsoft 開發箱。 Microsoft 開發箱是由多個 Azure 資源所組成,例如開發人員中心、專案、開發箱定義等等。 開發箱也與其他 Azure 服務和 Microsoft Intune 具有相依性。 深入了解 Microsoft 開發箱結構。
部署 Microsoft 開發箱牽涉到跨 Azure、Intune 和基礎結構建立和設定多個服務。 下列各節提供在組織中部署 Microsoft 開發箱的不同步驟。 某些步驟是選擇性的,取決於您的特定組織設定。
步驟 1:設定 Azure 訂用帳戶
訂用帳戶是 Azure 中管理、計費和縮放的單位。 您可以使用一或多個訂用帳戶來支援組織的結構、治理模型、資源配額和成本控制。 Dev Box 可讓您將不同的訂用帳戶指派給不同的小組或部門,以啟用彈性計費。 這有助於使雲端成本與您的業務營運方式保持一致。 深入了解建立 Azure 訂用帳戶的考量事項。
每個 Azure 訂用帳戶都會連結到單一 Microsoft Entra 租用戶,作為 Azure 訂用帳戶 (IdP) 的識別提供者。 Microsoft Entra 租用戶會用來驗證使用者、服務和裝置。
每個開發箱使用者都需要 Microsoft Intune 授權。 包含開發箱 Azure 資源的 Azure 訂用帳戶 (開發人員中心、專案等) 必須位於與 intune Microsoft 相同的租用戶中。
步驟 2:設定網路元件
開發箱需要網路連線才能存取資源。 選擇 Microsoft 裝載的網路連線或您在訂用帳戶中建立的 Azure 網路連線。 當您使用 Azure 網路連線時,請在 Azure 中設定對應的網路元件,並視需要在組織的網路中設定對應的網路元件。
您可能需要設定的網路元件範例:
- Azure 虛擬網路 (VNet)
- 虛擬網路對等互連
- 網路安全性群組 (NSG)
- 防火牆,例如 Azure 防火牆或其他防火牆解決方案
- Azure ExpressRoute
- VPN 或閘道
當您有下列需求時,必須使用 Azure 網路連線並據以設定您的網路:
- 從開發箱存取內部部署資源,例如授權伺服器、印表機或版本控制系統
- 存取其他 Azure 資源,例如 Azure Cosmos DB 和 Azure Kubernetes Service (AKS) 叢集
- 限制透過防火牆或網路安全性群組 (NSG) 的存取
- 定義自訂網路路由規則
- 管理 Microsoft Entra ID 外部的使用者
當您透過 Microsoft Entra 混合式聯結連線到內部部署資源時,請與您的 Azure 網路拓撲專家合作。 實作 中樞和輪輻網路拓撲。 集線器是連線到內部部署網路的中心點。 使用 ExpressRoute、站對站 VPN 或點對站 VPN。 輪輻是包含開發箱的虛擬網路。 將開發箱虛擬網路與連線到內部部署資源的虛擬網路對等互連,以提供存取權。 中心輻射拓撲可協助您管理網路流量和安全性。
網路規劃應該包含您需要的 IP 位址數目的估計值,以及它們在 VNet 之間的分佈。 Azure 網路連線健康情況檢查需要額外的免費 IP 位址。 規劃每個開發盒一個額外的 IP 位址,以及為健康檢查與開發盒基礎結構準備兩個 IP 位址。
深入了解 Microsoft 開發箱網路需求。
規劃開發箱架構時,請同時選擇主要區域和備份區域。 選擇靠近開發人員的主要區域,以最佳化延遲並避免配額問題。 備份區域可讓您為災難復原案例做好準備,並讓您在需要時快速移轉。 將開發人員中心放在分散式小組的中心位置 (例如,印度和美國之間),並將集區放置在最接近每個開發群組的區域中。 例如,美國西部非常適合雷德蒙德的開發人員,而美國中部作為保持服務連續性的備援方案。 為每個區域設定兩個網路連線。
步驟 3:設定角色型存取控制的安全性群組
Microsoft 開發箱使用 Azure 角色型存取控制 (Azure RBAC) 來授與服務中功能的存取權:
- 授與專案管理員對 Microsoft 開發箱專案執行系統管理工作的存取權 (專案管理員角色)
- 授與開發箱使用者存取權,以在開發箱專案中建立和管理其開發箱 (開發箱使用者角色)
請考慮在 Microsoft Entra ID 中建立安全性群組,以授與或撤銷每個專案的系統管理員和使用者存取權。 藉由使用安全性群組,您可以委派在 Azure 資源上針對其權限獨立授與存取權的工作。 例如,您可以將開發箱使用者的存取權授與該專案的開發小組主管。
深入了解 Microsoft Entra ID 群組。
步驟 4:建立開發人員中心
若要開始使用 Microsoft 開發箱,請先建立開發人員中心。 Microsoft 開發箱中的開發人員中心提供集中的位置來管理專案集合、可用開發箱映像和大小的設定,以及網路設定,讓您可以存取組織資源。
在下列情況下,您可能會考慮建立多個開發人員中心:
如果您希望特定組態可供專案的子集使用。 開發人員中心中的所有專案都會共用相同的開發箱定義、網路連線、目錄和計算資源庫。
如果不同的人員需要在 Azure 中擁有和維護開發人員中心資源。
附註
開發人員中心所在的 Azure 區域不會判斷開發箱的位置。
深入了解如何建立適用於 Microsoft 開發箱的開發人員中心。
步驟 5:設定網路連線
網路連線可控制開發箱的建立和託管位置,並可讓您連線到其他 Azure 或公司資源。 視您的控制層級而定,您可以使用 Microsoft 託管的網路連線或自己的 Azure 網路連線。
Microsoft 託管的網路連線會以 SaaS 方式提供網路連線。 Microsoft 會管理您開發箱的網路基礎結構和相關服務。 Microsoft 託管的網路是僅限雲端的部署,可支援加入 Microsoft Entra。 此選項與 Microsoft Entra 混合式聯結模型不相容。
系統會建立 Microsoft 裝載的網路連線,並指派給特定的開發人員中心專案。 您可以為每個專案建立多個網路連線。 在專案中建立的網路連線不會與其他專案共用。
您也可以使用 Azure 網路連線 (自己的網路) 來連線到 Azure 虛擬網路,並選擇性地連線到公司資源。 透過 Azure 網路連線,您可以管理和控制整個網路設定和設定。 您可以搭配 Microsoft Entra 聯結或 Microsoft Entra 混合式聯結選項搭配 Azure 網路連線,讓您能夠連線到內部部署 Active Directory 網域服務 (AD DS)。
您可以建立 Azure 網路連線,並將其指派給開發人員中心。 開發人員中心中的所有專案都會共用開發人員中心的網路連線。
請考慮在下列案例中建立個別的網路連線:
- 開發人員或小組位於不同的地理區域。 網路連線區域會決定裝載開發箱的位置。
- 開發人員或小組需要存取 Azure 資源。 請考慮為每個使用案例建立個別的 Azure 網路連線 (例如,原始檔控制伺服器的存取權,或 Web 應用程式和資料庫伺服器的存取權)。
- 開發人員或小組需要存取公司與內部部署資源。 建立 Azure 網路連線,並將其設定為混合式連線。
- 開發箱使用者必須使用其 Active Directory 帳戶進行驗證。 建立 Azure 網路連線,並將其設定為混合式連線。
步驟 6:建立計算資源庫
根據預設,開發箱定義可以使用任何與 Azure Marketplace 中開發箱相容的虛擬機器 (VM) 映像。 您可以將一或多個 Azure 計算資源庫指派給開發人員中心,以控制所有開發人員中心專案可用的 VM 映像。
Azure 計算資源庫是管理及共用映像的服務。 資源庫是儲存在 Azure 訂用帳戶中的存放庫,可協助您建置映像資源周圍的結構和組織。
在下列情況下,請考慮使用 Azure 計算資源庫:
- 開發小組可以將支援的映像版本標準化,直到完成更新版本的驗證為止。
- 開發小組可以使用映像定義的最新版本,以確保他們一律會在建立開發箱時收到最新的映像。
- 開發小組可以從預先設定其專案或使用案例之軟體元件和組態的映像中選擇。 例如,資料科學專案的映像、前端 Web 開發等等。
- 您會在單一位置維護映像,並跨開發人員中心、專案和集區使用這些映像。
當您建立自訂 VM 映像時,也請考慮使用開發箱自訂工作來限制 VM 映像變體的數目,並讓開發人員自行微調其開發箱組態。 例如,您可以建立一般用途的開發映像,並使用自訂來讓開發人員針對特定開發工作進行設定,以及預先設定其原始程式碼存放庫。
深入了解如何設定開發人員中心的計算資源庫。
步驟 7:附加目錄
開發箱使用者可以使用安裝工作來自訂其開發箱,例如安裝其他軟體、複製存放庫等等。 這些工作會在開發箱建立程序期間執行。 藉由使用開發箱自訂和設定工作,您可以減少專案維護所需的 VM 映像數目。
安裝工作定義於目錄中,可以是 GitHub 存放庫或 Azure DevOps 存放庫。 將一或多個目錄附加至開發人員中心。 所有工作都可供跨開發人員中心內所有專案建立的所有開發箱使用。
Microsoft 提供快速入門目錄,協助您開始使用自訂內容。 此目錄包含一組預設工作,可定義一般安裝工作,例如使用 WinGet 或 Chocolatey 安裝軟體、複製存放庫、設定應用程式或執行 PowerShell 指令碼。
請考慮在下列情況下附加目錄:
- 開發箱使用者具有其開發箱的個別自訂需求
- 您想要為開發小組提供一組標準化選項以自訂其開發箱
- 您想要限制要維護的 VM 映像和開發箱定義數目
如果快速入門目錄中的工作不足,請考慮建立新的目錄。 您可以將快速入門目錄和您自己的目錄附加至開發人員中心。
了解如何建立開發箱自訂。
步驟 8:建立開發箱定義
開發箱定義包含開發箱的設定,方法是指定 VM 映像、計算資源,例如記憶體和 CPU 以及儲存體。
您可以在開發人員中心層級設定開發箱定義。 所有開發人員中心專案都會共用開發人員中心內的開發箱定義。
請考慮在下列案例中建立一或多個開發箱定義:
- 開發小組需要不同的 VM 映像,因為它們需要另一個作業系統版本或其他應用程式。
- 開發小組有不同的計算資源需求。 例如,資料庫管理員可能需要具有大量儲存體和記憶體的機器。
請考慮與開發箱定義相關聯的計算資源成本,以評估部署的總成本。
決策摘要
- 需要存取內部部署/公司資源:搭配 Microsoft Entra 混合式聯結使用 Azure 網路連線。
- 需要嚴格的輸出控制 (NSG/防火牆/自訂路由):使用 Azure 網路連線。
- 僅限雲端和最低管理:透過 Microsoft Entra 聯結使用 Microsoft 託管的網路連線。
- 異地分散式小組:為每個區域建立網路連線和開發箱集區;視需要透過 Azure Compute Gallery 複寫映像。
- 減少圖像蔓延:首選自定義任務和目錄;僅在必要時建立專用映像。
步驟 9:建立專案
在 Microsoft 開發箱中,您會建立專案並與開發人員中心建立關聯。 專案通常會對應到您組織內的開發專案。 例如,您可以建立用於開發企業營運應用程式的專案,以及用於開發公司網站的另一個專案。
在專案中,您可以定義可供開發箱使用者用來建立開發箱的開發箱集區清單。 在專案層級,您可以指定開發箱使用者可以建立的開發箱數目限制。
Microsoft 開發箱使用 Azure 角色型存取控制 (Azure RBAC) 來授與專案層級中功能的存取權:
- 授與專案管理員對 Microsoft 開發箱專案執行系統管理工作的存取權 (專案管理員角色)
- 授與開發箱使用者存取權,以在開發箱專案中建立和管理其開發箱 (開發箱使用者角色)
請考慮使用 Microsoft Entra ID 群組來管理專案開發箱使用者和系統管理員的存取權。
請考慮在下列情況下建立開發人員中心專案:
- 您想要針對軟體開發專案為開發小組提供一組標準化雲端開發人員工作站
- 您有多個具有個別專案管理員和存取權限的開發專案
深入了解如何建立和管理專案。
步驟 10:建立開發箱集區
在專案中,專案管理員可以建立一或多個開發箱集區。 開發箱使用者使用開發人員入口網站來選取開發箱集區來建立其開發箱。
開發箱集區會連結具有網路連線的開發方塊定義。 您可以選擇 Microsoft 裝載的連線或自己的 Azure 網路連線。 網路連線的位置會決定裝載開發箱的位置。 請考慮使用最接近開發箱使用者的網路連線來建立開發箱集區。
若要降低執行開發箱的成本,您可以在開發箱集區中設定開發箱,以在預先定義的時間每天關閉。
請考慮在下列情況下建立開發箱集區:
- 為開發小組所需的每個開發箱定義建立開發箱集區。
- 若要減少網路延遲,請針對您擁有開發箱使用者的每個地理位置建立開發箱集區。 選擇最接近開發箱使用者的網路連線。
- 為需要存取其他 Azure 資源或內部部署資源的開發人員建立開發箱集區。 當您設定開發箱集區時,請從開發人員中心中的 Azure 網路連線清單中選取。
深入了解如何建立和管理開發箱集區。
步驟 11:設定 Microsoft Intune
Microsoft 開發箱會使用 Microsoft Intune 來管理您的開發箱。 使用 Microsoft Intune 系統管理中心來設定與開發箱部署相關的 Intune 設定。
附註
每個開發箱使用者都需要一個 Microsoft Intune 授權,而且可以建立多個開發箱。
裝置設定
佈建開發箱之後,您可以像 Microsoft Intune 中的任何其他 Windows 裝置一樣進行管理。 例如,您可以建立裝置組態配置檔,在 Windows 中開啟和關閉不同的設定,或將應用程式和更新推送至您的使用者開發箱。
設定條件式存取原則
您可以使用 Intune 來設定條件式存取原則,以控制開發箱的存取。 針對開發箱,設定條件式存取原則來限制誰可以存取開發箱、其用途,以及他們可以從何處存取。 若要設定條件式存取原則,可以使用 Microsoft Intune 來建立動態裝置群組和條件式存取原則。
Microsoft 開發箱中條件式存取的一些使用案例包括:
- 將開發箱的存取限制為受控裝置
- 限制從開發箱複製/貼上的能力
- 僅限制特定地理位置對開發箱的存取
了解如何設定開發箱的條件式存取原則。
權限管理
您可以針對開發箱設定 Microsoft Intune 端點權限管理 (EPM),讓開發箱使用者不需要本機系統管理權限。 「Microsoft Intune 端點權限管理」可讓您的組織的使用者以標準使用者身分執行 (沒有系統管理員權限),並完成需要提高權限的工作。 通常需要系統管理權限的工作包含應用程式安裝 (例如 Microsoft 365 應用程式)、更新裝置驅動程式,以及執行特定 Windows 診斷。
深入了解如何設定 Microsoft 開發箱的 Microsoft Intune 端點權限。
成本和營運考量
- 在開發箱集區上設定自動停止排程,以降低成本。
- 在開發箱定義中選擇符合工作負載需求的 VM 大小,以避免過度佈建。
- 使用映像時定義映像版本設定和驗證步調。
- 使用自訂工作來保持基礎映像的通用性;如果建立時間變得至關重要,請考慮在驗證後產生可重複使用的映像。
監控和故障排除
- 使用 Azure 活動記錄來稽核開發人員中心和專案資源的變更。
- 檢視 Microsoft Entra 登入記錄,以了解開發系統和開發人員入口網站的存取問題。
- 使用 Intune 報告來取得開發箱上的裝置合規性、設定和應用程式部署狀態。
- 診斷連線問題時,請檢查 Azure 網路連線健康情況和必要的可用 IP。