將開發/測試環境移轉至 Azure DevTest Labs
本文示範虛構公司 Contoso 如何將其開發/測試環境移轉至Azure DevTest Labs。
移轉選項
Contoso 有數個選項可用來將其開發/測試環境移至 Azure。
移轉選項 | 結果 |
---|---|
Azure Migrate | 評估 並 移轉 內部部署虛擬機器 (VM) 。 使用 Azure 基礎結構即服務 (IaaS),執行開發/測試伺服器。 使用 Azure Resource Manager 管理 VM。 |
DevTest Labs | 快速準備開發和測試環境。 使用配額和原則將浪費減至最低。 設定自動關機,將成本降至最低。 建置 Windows 和 Linux 環境。 |
注意
本文說明如何使用 DevTest Labs 將內部部署開發/測試環境移至 Azure。 閱讀 Contoso 如何使用 Azure Migrate 將開發/測試移至 Azure IaaS。
商業動機
透過此移轉,開發領導小組想要:
- 讓開發人員能夠存取 DevOps 工具和自助環境。
- 為持續整合/持續傳遞 (CI/CD) 管線,以及用於開發/測試的雲端原生工具 (例如 AI、機器學習服務和無伺服器) 提供 DevOps 工具的存取權。
- 確保開發/測試環境中的治理和合規性。
- 將所有開發/測試環境移出資料中心,不再購買硬體來開發軟體,以節省成本。
注意
Contoso 會針對其環境使用 隨用隨付開發/測試訂 用帳戶供應專案。 小組上每個作用中的 Visual Studio 訂閱者,都可以使用 Azure 虛擬機器上訂用帳戶隨附的 Microsoft 軟體,進行開發/測試,無需額外付費。 Contoso 只會針對其執行的 VM 支付 Linux 費率。 這包括具有SQL Server、SharePoint Server 或其他通常以較高費率計費之軟體的 VM。
注意
具有 Enterprise 合約的 Azure 客戶也可受益於 Azure 開發/測試訂用帳戶供應項目。 若要深入了解,請檢閱影片以透過 EA 入口網站啟用和建立 Enterprise 開發/測試訂用帳戶。
移轉目標
Contoso 開發小組已釘選此移轉的目標。 這些目標是用來判斷最合適的移轉方法:
- 快速準備開發和測試環境。 建置開發人員撰寫或測試軟體所需的基礎結構,應該需要幾分鐘的時間,而不是幾個月的時間。
- 移轉之後,Contoso 在 Azure 中的開發/測試環境應該具有目前內部部署系統的增強功能。
- 作業模型會使用自助式布建,從 IT 布建的 VM 移至 DevOps。
- Contoso 希望能快速移出其內部部署的開發/測試環境。
- 開發人員可以從遠端連線到開發/測試環境。
解決方案設計
Contoso 釘選目標和需求之後,他們會設計和檢閱部署解決方案。 此解決方案包含用於開發/測試的 Azure 服務。
目前架構
- 適用於 Contoso 應用程式的開發/測試 VM 正在內部部署資料中心的 VMware 上執行。
- 在將程式碼升階至生產 VM 之前,這些 VM 用於開發和測試。
- 開發人員會維護自己的工作站,但需要新的解決方案,才能從辦公室遠端連線。
建議的架構
- Contoso 會使用 Azure 開發/測試訂 用帳戶來降低成本。 此訂用帳戶可節省大量費用,包括不會產生 Microsoft 軟體授權費用的 VM。
- Contoso 會使用 DevTest Labs 來管理環境。 在 DevTest Labs 中建立新的 VM,以支援移至雲端中開發和測試的新工具。
- 移轉完成後,Contoso 資料中心的內部部署開發/測試 VM 會解除委任。
- 開發人員和測試人員可以存取其工作站的 Azure 虛擬桌面。
資料庫考量
為了支援持續開發,Contoso 決定繼續使用在 VM 上執行的資料庫。 目前的 VM 會取代為在 DevTest Labs 中執行的新 VM。 未來,Contoso 會使用平臺即服務, (PaaS) 服務,例如Azure SQL Database和適用於 MySQL 的 Azure 資料庫。
目前的 VMware 資料庫 VM 已解除委任,並以 DevTest Labs 中的 Azure VM 取代。 現有的資料庫會使用簡單的備份和還原來移轉。 Azure 開發/測試訂用帳戶供應專案不會對 Windows Server 和SQL Server實例產生授權費用,這會將計算成本降到最低。
解決方案檢閱
Contoso 會透過比較一份優缺點清單,來評估建議的設計。
考量 | 詳細資料 |
---|---|
優點 | 所有目前的開發 VM、應用程式和資料庫都會取代為在 DevTest Labs 中執行的新 VM。 Contoso 可以利用用途建置雲端開發環境的功能。 Contoso 可以善用其 Azure 開發/測試訂閱的投資,省下授權費用。 Contoso 會保留 Azure 中應用程式 VM 的完整控制權。 開發人員會提供訂用帳戶的許可權,讓他們不必等待 IT 回應其要求,即可建立新的資源。 |
缺點 | 移轉只會將開發移至雲端。 開發人員不會在其開發中使用 PaaS 服務,因為它們仍在使用 VM。 Contoso 必須開始支援其 VM 的作業,包括安全性修補程式。 IT 在過去維護的 VM,Contoso 必須尋找此新作業工作的解決方案。 Contoso 必須建置新的應用程式和資料庫 VM,才能將程式自動化。 Contoso 可以利用在 DevTest Labs 所提供的雲端和工具中建置 VM。 雖然此程式是缺點,但它有正面的結果。 |
移轉程序
Contoso 會使用 DevTest Labs 將其開發應用程式和資料庫 VM 遷移至新的 Azure VM。
- Contoso 已備妥 Azure 基礎結構,包括開發虛擬網路。
- 備妥所有專案後,Contoso 會布建並設定 DevTest Labs。
- Contoso 會設定開發虛擬網路、指派資源群組,以及設定原則。
- Contoso 會建立 Azure 虛擬桌面實例,供開發人員在遠端位置使用。
- Contoso 會在 DevTest Labs 內建立 VM,以便開發和移轉資料庫。
必要條件
若要讓 Contoso 執行此案例,他們需要這些必要條件。
需求 | 詳細資料 |
---|---|
Azure 開發/測試訂用帳戶 | Contoso 會建立 Azure 開發/測試訂用帳戶,以降低最高 80% 的成本。 如果您沒有 Azure 訂用帳戶,請建立免費帳戶。 如果建立了免費帳戶,您就是該訂閱的系統管理員,可執行所有動作。 如果您使用現有的訂用帳戶,而且您不是系統管理員,請與系統管理員合作來指派擁有者或參與者許可權。 如果您需要更細微的權限,請參閱使用 Azure 角色型存取控制。 |
Azure 基礎結構 | 了解 Contoso 如何設定 Azure 基礎結構。 |
案例步驟
Contoso 系統管理員會遵循此程式來執行移轉:
- 步驟1:佈建新的 Azure 開發/測試訂用帳戶,並建立 DevTest Labs 執行個體。
- 步驟 2:設定開發虛擬網路、指派資源群組,以及設定原則。
- 步驟 3:建立 Windows 10 企業版多重工作階段虛擬桌面,讓開發人員從遠端位置使用。
- 步驟 4:在 DevTest Labs 內建立公式和 VM,進行資料庫開發和移轉。
步驟 1:佈建新的 Azure 開發/測試訂用帳戶,並建立 DevTest Labs 執行個體
Contoso 管理員必須先使用 Azure 開發/測試供應項目來佈建新的訂用帳戶,然後再建立 DevTest Labs 執行個體。
管理員會遵循 Azure 開發/測試訂用帳戶供應項目的連結,並佈建新的訂用帳戶,其會在系統上節省最高 80% 的費用。 此供應項目可讓他們在 Azure 上執行 Windows 10 映像,以進行開發/測試。 系統管理員可存取 Azure 虛擬桌面 ,以簡化遠端開發人員的管理體驗。
圖 3:Azure 開發/測試訂用帳戶供應項目。佈建了新的訂用帳戶之後,Contoso 管理員會使用 Azure 入口網站,建立新的 DevTest Labs 執行個體。 新的實驗室是在
ContosoDevRG
資源群組中建立。
圖 4:建立新的 DevTest Labs 執行個體。
步驟 2:設定開發虛擬網路、指派資源群組,以及設定原則
建立了 DevTest Labs 執行個體之後,Contoso 會執行下列設定:
設定虛擬網路
在入口網站中,Contoso 會開啟 DevTest Labs 執行個體,並選取 [設定和原則]。
圖 5: DevTest Labs 執行個體:設定和原則。Contoso 會選取 [虛擬網路]>[+新增]、選擇
vnet-dev-eus2
,然後選取 [儲存]。 開發虛擬網路可用於 VM 部署。 部署 DevTest Labs 執行個體期間,也會建立虛擬網路。
圖 6:虛擬網路。
指派資源群組
為了確保資源部署至 ContosoDevRG
資源群組,Contoso 會在實驗室設定中設定此配置。 其也會將參與者角色指派給其開發人員。
注意
參與者角色是具有擁有權限的系統管理員層級角色,但無法提供其他使用者的存取權。 如需詳細資訊,請參閱 Azure 角色型存取控制。
設定實驗室原則
Contoso 必須確保其開發人員正在小群組原則內使用 DevTest Labs。 Contoso 會使用這些原則來設定 DevTest Labs。
Contoso 會啟用當地時間 7:00:00 PM 與正確時區的自動關機。
圖 8:自動關機。Contoso 會啟用自動啟動,讓 VM 在開發人員連線工作時處於執行中狀態。 其會設定為當地時區,以及開發人員一週工作的天數。
圖 9:自動啟動。Contoso 會設定允許的 VM 大小,確保無法啟動大又昂貴的 VM。
圖 10:允許的 VM 大小。Contoso 會設定支援訊息。
步驟 3:建立 Windows 10 企業版多重工作階段虛擬桌面,讓開發人員從遠端位置使用
Contoso 必須為遠端開發人員建立 Azure 虛擬桌面基礎映像。
Contoso 會選取 [所有虛擬機器]>[+ 新增],然後為 VM 選擇 Windows 10 企業版多重工作階段基礎映像。
圖 12: Windows 10 企業版多重工作階段基礎映像。Contoso 會設定 VM 的大小以及要安裝的成品。 在此情況下,開發人員可以存取常見的開發工具,例如 Visual Studio Code、Git 和 Chocolatey。
圖 13:成品。Contoso 會檢閱 VM 設定是否正確。
在建立 VM 之後,Contoso 的遠端開發人員可以連線到此開發工作站,並使用此工作站進行其工作。 已安裝選取的成品,可節省開發人員在設定工作站時的時間。
步驟 4:在 DevTest Labs 內建立公式和 VM,進行資料庫開發和移轉
在設定了 DevTest Labs 以及遠端開發人員的工作站啟動並執行後,Contoso 會著重於建置其 VM 以進行開發。
Contoso 會針對應用程式和資料庫 VM 建立公式 (可重複使用的基礎映像),並使用這些公式佈建應用程式和資料庫 VM。
Contoso 會選取[公式>+ 新增],然後選取Windows Server 2012 R2 Datacenter基底。
圖 16:Windows 2012 R2 基礎映像。Contoso 會設定 VM 的大小,以及要安裝的成品。 在此情況下,開發人員可以存取常見的開發工具,例如 Visual Studio Code、Git 和 Chocolatey。
圖 17:Windows 2012 R2 基礎映像設定。若要建立資料庫 VM 公式,Contoso 會遵循相同的基本步驟。 目前,其會選取 SQL Server 2012 映像作為基礎映像。
圖 18:SQL Server 2012 映像。Contoso 會使用大小和成品來設定公式。 這些成品包含此資料庫開發 VM 公式所需的 SQL Server Management Studio。
圖 19:SQL 2020 R2 基礎映像設定。深入了解如何使用公式搭配 Azure DevTest Labs。
Contoso 現在已為其開發人員建立 Windows 基礎映像公式,以用於應用程式和資料庫。
接下來的步驟會透過公式佈建應用程式和資料庫 VM:
建立公式後,Contoso 會選取 [所有虛擬機器 ],然後
Windows2012AppDevVmBase
選取公式以符合其目前應用程式開發 VM 的組態。
圖 21:應用程式開發 VM。Contoso 會使用此應用程式 VM 所需的大小和成品來設定 VM。
圖 22:VM 的大小和成品設定。Contoso 會使用
SQLDbDevVmBase
公式佈建資料庫 VM,以符合其目前資料庫開發 VM 的設定。
圖 23:資料庫 VM。Contoso 會使用所需的大小和成品來設定 VM。
圖 24:VM 的資料庫設定。使用遠端開發人員的工作站單獨建立了第一個 VM 後,Contoso 的開發人員就可以開始在 Azure 中撰寫程式碼。
圖 25:Contoso VM。Contoso 現在可以從備份還原其開發資料庫,或使用程式碼產生程式在 VM 上建置架構。 透過成品安裝SQL Server Management Studio,這些工作很簡單,而且不需要安裝任何工具。
移轉之後進行清除
Contoso 會繼續使用下列步驟,使用 DevTest Labs 將其 VM 遷移至 Azure。 完成每個移轉之後,所有開發 VM 現在都會在 DevTest Labs 中執行。
現在,Contoso 必須完成以下的清除步驟:
- 從 vCenter 清查中移除 VM。
- 從本機備份作業中移除所有 VM。
- 更新內部文件以顯示 VM 的新位置和 IP 位址。
- 檢閱與 VM 互動的任何資源,並更新任何相關的設定或文件,以反映新的組態。
安全性
Contoso 安全性小組會審查 Azure VM,判斷是否有任何安全疑慮。 若要控制存取權,小組會檢閱 VM 的網路安全性群組 (NSG)。 NSG 可確保只有允許傳送至應用程式的流量才能連線到該應用程式。 該小組也會考慮使用 Azure 磁碟加密與 Azure Key Vault,來保護磁碟上的資料。 如需詳細資訊,請參閱 Azure 中 IaaS 工作負載的安全性最佳做法。
授權和成本最佳化
- Contoso 可確保所有開發 Azure 資源都是透過 Azure 開發/測試訂用帳戶建立,以充分利用 80% 的節省成本。
- 系統會針對 VM 的所有 DevTest Labs 實例和原則檢閱預算,以確保不會發生成本並過度布建。
- Contoso 可讓 Azure 成本管理 + 計費 協助監視和管理 Azure 資源。
結論
在本文中,Contoso 會將其開發環境移至 DevTest Labs。 也會實作 Azure 虛擬桌面,作為遠端和合約開發人員的平台。
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將推出:在 2024 年,我們將隨著內容的意見反應機制逐步淘汰 GitHub 問題,並以新的意見反應系統來取代。 如需詳細資訊,請參閱提交並檢視相關的意見反應