將開發/測試環境移轉至 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 虛擬桌面。

建議案例架構的圖表。圖 1:案例架構。

資料庫考量

為了支援持續開發,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,以便開發和移轉資料庫。

說明移轉程式的圖表。圖 2:移轉程式。

必要條件

若要讓 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 執行個體。

  1. 管理員會遵循 Azure 開發/測試訂用帳戶供應項目的連結,並佈建新的訂用帳戶,其會在系統上節省最高 80% 的費用。 此供應項目可讓他們在 Azure 上執行 Windows 10 映像,以進行開發/測試。 系統管理員可存取 Azure 虛擬桌面 ,以簡化遠端開發人員的管理體驗。

    隨用隨付開發/測試供應專案的螢幕擷取畫面,其中包含 [啟用] 按鈕。
    圖 3:Azure 開發/測試訂用帳戶供應項目。

  2. 佈建了新的訂用帳戶之後,Contoso 管理員會使用 Azure 入口網站,建立新的 DevTest Labs 執行個體。 新的實驗室是在 ContosoDevRG 資源群組中建立。

    入口網站上 DevTest Labs 的 [建立] 按鈕螢幕擷取畫面。
    圖 4:建立新的 DevTest Labs 執行個體。

步驟 2:設定開發虛擬網路、指派資源群組,以及設定原則

建立了 DevTest Labs 執行個體之後,Contoso 會執行下列設定:

設定虛擬網路

  1. 在入口網站中,Contoso 會開啟 DevTest Labs 執行個體,並選取 [設定和原則]。

    ContosoDevTestLabs 設定中的組態和原則螢幕擷取畫面。
    圖 5: DevTest Labs 執行個體:設定和原則。

  2. Contoso 會選取 [虛擬網路]>[+新增]、選擇 vnet-dev-eus2,然後選取 [儲存]。 開發虛擬網路可用於 VM 部署。 部署 DevTest Labs 執行個體期間,也會建立虛擬網路。

    新增虛擬網路之選取專案的螢幕擷取畫面。
    圖 6:虛擬網路。

指派資源群組

為了確保資源部署至 ContosoDevRG 資源群組,Contoso 會在實驗室設定中設定此配置。 其也會將參與者角色指派給其開發人員。

要指派資源群組之選取專案的螢幕擷取畫面。
圖 7:指派資源群組。

注意

參與者角色是具有擁有權限的系統管理員層級角色,但無法提供其他使用者的存取權。 如需詳細資訊,請參閱 Azure 角色型存取控制

設定實驗室原則

Contoso 必須確保其開發人員正在小群組原則內使用 DevTest Labs。 Contoso 會使用這些原則來設定 DevTest Labs。

  1. Contoso 會啟用當地時間 7:00:00 PM 與正確時區的自動關機。

    設定自動關機之選取專案的螢幕擷取畫面。
    圖 8:自動關機。

  2. Contoso 會啟用自動啟動,讓 VM 在開發人員連線工作時處於執行中狀態。 其會設定為當地時區,以及開發人員一週工作的天數。

    設定自動啟動之選取專案的螢幕擷取畫面。
    圖 9:自動啟動。

  3. Contoso 會設定允許的 VM 大小,確保無法啟動大又昂貴的 VM。

    設定允許 VM 大小的選取專案螢幕擷取畫面。
    圖 10:允許的 VM 大小。

  4. Contoso 會設定支援訊息。

    設定支援訊息之選取專案的螢幕擷取畫面。
    圖 11:支援訊息。

步驟 3:建立 Windows 10 企業版多重工作階段虛擬桌面,讓開發人員從遠端位置使用

Contoso 必須為遠端開發人員建立 Azure 虛擬桌面基礎映像。

  1. Contoso 會選取 [所有虛擬機器]>[+ 新增],然後為 VM 選擇 Windows 10 企業版多重工作階段基礎映像。

    顯示選取Windows 10基底的螢幕擷取畫面。
    圖 12: Windows 10 企業版多重工作階段基礎映像。

  2. Contoso 會設定 VM 的大小以及要安裝的成品。 在此情況下,開發人員可以存取常見的開發工具,例如 Visual Studio Code、Git 和 Chocolatey。

    顯示所選成品的螢幕擷取畫面。
    圖 13:成品。

  3. Contoso 會檢閱 VM 設定是否正確。

    此螢幕擷取畫面顯示從基底建立虛擬機器的選項。
    圖 14:從基礎映像建立虛擬機器。

  4. 在建立 VM 之後,Contoso 的遠端開發人員可以連線到此開發工作站,並使用此工作站進行其工作。 已安裝選取的成品,可節省開發人員在設定工作站時的時間。

    顯示 RemoteDevs 虛擬機器相關資訊的螢幕擷取畫面。
    圖 15:遠端開發人員 VM。

步驟 4:在 DevTest Labs 內建立公式和 VM,進行資料庫開發和移轉

在設定了 DevTest Labs 以及遠端開發人員的工作站啟動並執行後,Contoso 會著重於建置其 VM 以進行開發。

Contoso 會針對應用程式和資料庫 VM 建立公式 (可重複使用的基礎映像),並使用這些公式佈建應用程式和資料庫 VM。

  1. Contoso 會選取[公式>+ 新增],然後選取Windows Server 2012 R2 Datacenter基底。

    顯示 Windows 2012 R2 基底選取專案的螢幕擷取畫面。
    圖 16:Windows 2012 R2 基礎映像。

  2. Contoso 會設定 VM 的大小,以及要安裝的成品。 在此情況下,開發人員可以存取常見的開發工具,例如 Visual Studio Code、Git 和 Chocolatey。

    顯示 Windows 2012 R2 基底組態所選 VM 大小和成品的螢幕擷取畫面。
    圖 17:Windows 2012 R2 基礎映像設定。

  3. 若要建立資料庫 VM 公式,Contoso 會遵循相同的基本步驟。 目前,其會選取 SQL Server 2012 映像作為基礎映像。

    顯示選取 SQL Server 2012 R2 基底的螢幕擷取畫面。
    圖 18:SQL Server 2012 映像。

  4. Contoso 會使用大小和成品來設定公式。 這些成品包含此資料庫開發 VM 公式所需的 SQL Server Management Studio。

    顯示 SQL 2012 R2 基底設定的螢幕擷取畫面。
    圖 19:SQL 2020 R2 基礎映像設定。

    深入了解如何使用公式搭配 Azure DevTest Labs

  5. Contoso 現在已為其開發人員建立 Windows 基礎映像公式,以用於應用程式和資料庫。

    顯示已設定資料庫 VM 的螢幕擷取畫面。
    圖 20:Windows 基礎映像公式。

接下來的步驟會透過公式佈建應用程式和資料庫 VM:

  1. 建立公式後,Contoso 會選取 [所有虛擬機器 ],然後 Windows2012AppDevVmBase 選取公式以符合其目前應用程式開發 VM 的組態。

    顯示應用程式 VM 選取專案作為基底的螢幕擷取畫面。
    圖 21:應用程式開發 VM。

  2. Contoso 會使用此應用程式 VM 所需的大小和成品來設定 VM。

    顯示應用程式 VM 大小和成品選取專案的螢幕擷取畫面。
    圖 22:VM 的大小和成品設定。

  3. Contoso 會使用 SQLDbDevVmBase 公式佈建資料庫 VM,以符合其目前資料庫開發 VM 的設定。

    顯示資料庫 VM 布建的螢幕擷取畫面。
    圖 23:資料庫 VM。

  4. Contoso 會使用所需的大小和成品來設定 VM。

    顯示資料庫 VM 大小和成品選取專案的螢幕擷取畫面。
    圖 24:VM 的資料庫設定。

  5. 使用遠端開發人員的工作站單獨建立了第一個 VM 後,Contoso 的開發人員就可以開始在 Azure 中撰寫程式碼。

    顯示 Contoso 虛擬機器的螢幕擷取畫面。
    圖 25:Contoso VM。

  6. 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 虛擬桌面,作為遠端和合約開發人員的平台。

下一步

在 Azure 入口網站 中建立實驗室
Azure DevTest Labs 情節