共用方式為


Azure 虛擬桌面的平臺自動化和 DevOps 考慮

Azure 虛擬桌面是受控服務,可為桌面虛擬化環境提供Microsoft控制平面。

本文著重於執行 Azure 虛擬桌面環境所需的作業工作。 您可以個別套用本文中的每個建議。 您不需要實作每個建議,自動化就值得。

設計考量

規劃及設計 Azure 虛擬桌面環境時,請檢閱下列考慮。

與 DevOps 整合

自動化不需要表示與 DevOps 的整合,但整合確實提供許多優點。 將黃金映射的建置程式自動化,基於多種原因值得投資:

  • 當您使用DevOps管線時,可以更妥善地管理自動化流程。
  • 您可以從 DevOps 管線接收有關部署的報告和警示。
  • 您可以設定管線來與測試架構整合,併為自動化程式中的階段建立核准網關。
  • 您可以從許多預先定義的事件啟動管線,例如發行新的資源庫映射、應用程式或使用設定排程。
  • 當您將主機集區建立自動化時,當有新的位置可供使用時,很容易將主機集區元數據移至新的地理位置。

基礎結構即程式碼

當您開始採用 DevOps 做法時,您必須選擇工具來部署 Azure 資源。 有兩種不同的 IaC 工具類別。 慣用的選項是宣告式 IaC 工具。

Azure 提供 ARM 範本Azure Bicep 的原生選項。

您也可以找到第三方 IaC 工具,例如 HashiCorp 的 Terraform

集區與個人

隨著組織相應放大其環境,大部分的工作負載都落在集區設定之下,而不是個人設定。

個人組態的執行成本通常比集區組態更昂貴。 它們適用於特定工作負載使用者,例如通常需要更高許可權的開發人員。 如果您在個人模式中執行主機集區,請嘗試像維護實體桌面一樣維護機器,以減少環境中所需的工具數量。

集區組態是桌面虛擬化最受歡迎的設定,這就是為什麼它們是本文的重點。 集區環境必須以不同於傳統環境的方式更新。 以組織正確步調從黃金映射更新虛擬機(VM)(通常是每 1-3 個月)。 如果您的組織高度自動化,您可以視需要將頻率提高到每周或甚至每晚。

映像建立

當您相應增加 Azure 虛擬桌面環境時,您會從黃金映射建立主機集區,在理想情況下會透過自動化程式建立。

您也可以使用組建檢查清單來相應增加。 如果您有大型環境,檢查清單程式應該只會是初始開發/測試設定的一部分。 您越能自動建立黃金映射,您就越有信心在建置和環境穩定性的精確度。

我們不建議您使用現有的映像來建立使用新應用程式和組態變更更新的 VM,然後擷取以作為「新」金映像。 維護此案例牽涉到重大風險,是桌面虛擬化環境變得靜態且脆弱的主要因素。

有許多自動化工具可用來建立金映射,包括本文稍後所述的Packer程式。 使用最適合您組織的工具集。 無論您選擇哪種工具,盡可能自動化建立金映像,以便更輕鬆地維護 Azure 虛擬桌面環境的健康情況。

應用程式安裝

應用程式可以透過兩種方式提供給使用者:安裝在映像中,或以動態方式傳送給每位使用者。

安裝在映像中的應用程式應該適用於您的使用者,以及自動化映像建立程式的一部分。 映像安裝的應用程式可以包含安全性產品和 Microsoft 365 套件。

以動態方式傳送給每位使用者的應用程式應該包含其他需要更有彈性的方法。 動態傳遞的應用程式可以包含受限於特定群組的應用程式,以及與其他應用程式不相容的應用程式。

語言部署

當您的 Azure 虛擬桌面環境開始向外延展時,您可能需要將映像當地語系化為使用者的原生語言。 如果您想要的話,您可以從本機語言開始,也可以在組建時將更多語言新增至映像。 選取您的基底映射時,請考慮這項需求。 預先優化的 Windows 10 資源庫映像,例如,無論是否使用 Microsoft 365,都只提供 美國 英文 (en-US)。

注意

如果您使用 Windows 10 企業版 多會話,就無法使用不同的語言來建置它。 在此情況下,您必須調整所提供的資源庫映像。 若要調整現有的 en-US 資源庫映像,請先安裝其他語言,再安裝其他應用程式。

部署位置

Azure 虛擬桌面提供比傳統桌面環境更多的主機集區地理位置自由。 此自由存在,因為所有 Azure 位置都支援 Azure 虛擬桌面。 避免從跨廣域網 (WAN) 的映像建立 VM,方法是在與使用者相同的每個位置中提供您的金映射。

主機集區黃金映像更新

有兩種方式可以更新特定主機集區中 VM 的金級映像。

方法一:

  • 部署第二個主機集區,然後在準備好時將使用者移轉至新的主機集區。
  • 如果需要復原,請讓舊的主機集區可供使用。
  • 一旦組織滿意新的主機集區正常運作,您就可以移除舊的主機集區。

方法 2:

  • 將現有的 VM 設定為主機集區中的清空模式。
  • 將新 VM 從更新的黃金映射部署到相同的主機集區。
  • 當您將單一主機集區中的 VM 數目加倍時,請小心不要達到資源限制或 API 節流限制。

設計建議

當您設計組織的 Azure 虛擬桌面環境時,請檢閱下列建議。

原始程式碼管理

我們建議使用 Git 來管理原始程式碼,並 保留簡單的分支策略。 為您的環境使用 Git 時:

  • 除非您的公司原則指定存放庫必須公開,否則請保留 Git 存放庫和 Azure DevOps 專案私用。
  • 使用自述檔初始化存放庫,以便開始填入專案的相關信息。
  • 修改您的項目許可權以允許其他小組成員存取。
  • 採用基本的工作專案程序來開發管線,並讓您的工作負載保持簡化。
  • 您至少應該維護兩個存放庫:一個存放庫來管理您的金映射組建,另一個存放庫用於管理 Azure 虛擬桌面部署。

管線

您的管線部署系統是由您選擇的原始程式碼管理系統所決定。

如果您的組織已在 Azure DevOps 上標準化,請使用 Azure Pipelines。 如果您的組織已在 GitHub 上標準化,請使用 GitHub Actions。 任一選項都可讓您在網路中部署自我裝載代理程式,其有數個優點,包括:

  • 較長建置時間的津貼
  • 能夠存取您網路內的資源

網關部署管線,使其可以自動觸發以部署至驗證主機集區,但不會在未經明確核准的情況下自動推送至您的生產主機集區。

變數和 Azure 金鑰保存庫

在 Azure Pipelines 中工作時,請使用變數群組。

  • 變數群組可讓您在管線中擁有可重複的參數,例如秘密和檔案位置。
  • 變數群組內的變數可以儲存為索引鍵/值組,但建議的方法是將變數群組連結至 Azure 金鑰保存庫,以提取秘密以用於部署管線。

建立 Azure 虛擬桌面映像

使用 Azure Image Builder (AIB) 服務,將黃金映像的建置、更新、sysprep 和散發程式自動化。 此服務可以從 Azure Marketplace 針對每個組建使用支援的基底映像,以確保您有最新的更新。

注意

Azure Image Builder 目前可在選取區域內使用,但您可以在這些區域之外散發映射。

在黃金映像建置程式中,請考慮您需要安裝的所有應用程式,並判斷是否可以透過腳本安裝它們。 請確定您已在 PowerShell 中編寫腳本的應用程式安裝命令,並認可至您的 Git 存放庫。 如果您無法透過公用因特網下載應用程式安裝程式,請考慮將應用程式放在 Azure Blob 儲存體。 如果您的應用程式安裝程式需要秘密,請考慮將它們放在 Azure 金鑰保存庫。

若要開始使用 Azure Image Builder,請參閱 使用 Azure VM 映射產生器和 PowerShell 建立 Azure 虛擬桌面映像

若要使用 CI/CD 管線叫用 Azure Image Builder,請使用適用於 Azure Pipelines 的 Azure Image Builder Service DevOps 工作 ,或使用 適用於 GitHub Actions 的建置 Azure 虛擬機映射動作

HashiCorp Packer 是 開放原始碼 替代方案。 它提供與 Azure Image Builder 相同的功能(建置在 HashiCorp Packer 之上),包括散發至 Azure 計算資源庫的能力。

如需Packer的詳細資訊,請參閱 Packer網站

Packer 方法具有下列必要條件:

  • Azure DevOps 授權必須使用完整的 Packer 工具套件。
  • 您必須在 Microsoft Entra ID 中指派適當的角色給使用者。
  • 您必須為服務主體提供訂用帳戶的參與者存取權。
  • 您必須有 Azure 金鑰保存庫,才能將秘密儲存在 中,並提供存取原則中的服務主體秘密管理

在部署管線中使用Packer時:

  • 在您將在部署管線中使用的組建代理程式上安裝Packer工具。
  • 在您的管線中建立驗證階段,以驗證組建是否正常運作。
  • 驗證之後,請複製您的驗證階段,並將部署模式設定為 累加式。

Packer 檔案記憶體的其他考慮:

  • 將您的 Packer 檔案和布建儲存在 Azure Pipelines 可以存取的集中式位置。 我們建議使用 Azure 檔案共用安全地儲存這些檔案。
  • 在 金鑰保存庫 中儲存 Azure 檔案儲存體 的存取認證。 您可以使用管線變數,從建置 金鑰保存庫 提取存取認證。
  • 此外,請將您的 Packer 檔名和帳戶金鑰儲存在連結至 Azure DevOps 中變數群組的金鑰保存庫中。 管線會存取這些認證,以將Packer檔案下載到用來建立映像的 VM。
  • 將 UNC 路徑儲存為 Azure DevOps 變數群組中的變數。

儲存 Azure 虛擬桌面映像

Azure 計算資源庫服務是建置黃金映射結構和組織的最簡單方式。 提供:

  • 將映像全域復寫至不同的 Azure 區域。
    • 請確定您已在 Azure 虛擬桌面工作階段主機 (VM) 部署所在的區域中部署映像。
  • 對映像進行版本控制和分組,以便管理。 版本設定和群組有助於將 Azure 虛擬桌面主機集區復原至舊版映像。
  • 支援 可用性區域 區域中具有區域備援記憶體 (ZRS) 帳戶的高可用性映像。 ZRS 針對區域失敗提供更好的復原能力。
  • 跨訂用帳戶的 Azure 虛擬桌面映像共用,甚至是透過角色型訪問控制(RBAC)在Microsoft Entra 租用戶之間共用。
  • 使用每個區域中的映像複本進行部署調整。
    • 規劃針對您計劃同時部署的每個 20 部 VM 部署一個複本。

如需詳細資訊,請參閱 Azure 計算資源 庫服務概觀

Azure 虛擬桌面映像中的應用程式安裝

  • 針對安裝在金映像中的通用應用程式,請使用本文稍早所述的Packer方法。
  • App-V 目前是每個使用者串流應用程式Microsoft支援的方法。
  • 當這些應用程式不適用於 App-V 時,使用 FSLogix 應用程式遮罩 來隱藏或顯示應用程式或外掛程式。
  • 盡可能使用 MSIX 應用程式附加 ,以動態方式將應用程式傳遞給使用者,並減少金像的整體大小。 您也可以使用 CI/CD 管線,將應用程式封裝成 MSIX 格式的程式自動化。 若要深入瞭解,請參閱概

在 Azure 虛擬桌面映像中部署語言

Microsoft有手動或自動安裝語言套件的程式。 建議您儘可能減少系統管理額外負荷,並將語言安裝程序自動化。

此程式牽涉到將轉換成映射的 VM 上下載 PowerShell 腳本。 您可以在 Microsoft 檔中找到範例自動化腳本。 如果您遵循 Packer 管線的建議,您可以將此程式納入為額外的建置工作。

如需在 Windows 10 企業版 多會話中安裝語言套件的詳細資訊,請參閱在 Azure 虛擬桌面的 Windows 10 VM 上安裝語言套件。

使用基礎結構即程式代碼 (IaC) 方法來部署和自定義 Azure 虛擬桌面資源。 應盡可能使用它們來確保部署中的一致性。 ARM 範本可用來將 Azure 虛擬桌面資源部署為 CI/CD 管線工作的一部分。 您也可以在使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 時使用它們。

以下是建議的主機集區更新策略:

  • 設定 CI/CD 管線,以建置和散發金映射至 Azure 計算資源庫。
  • 指定驗證主機集區,並使用 CI/CD 管線將新的工作階段主機部署至驗證主機集區。
  • 使用驗證主機集區測試您的自動化。
  • 使用組建編號或映像版本標記您的會話主機,以識別其正在執行的映像版本。
  • 在部署之前,請驗證 (或檢查) 以確保您的訂用帳戶內有足夠的計算配額。
  • 在驗證集區中成功測試時,將現有的會話主機置於清空模式中 - 標記的 VM 很容易識別。
  • 部署新的工作階段主機,並允許用戶連線。
  • 在生產環境中成功測試之後,開始解除分配舊的會話主機,而不會產生任何更多的計算費用,最後刪除,而不會再產生受控磁碟費用。
  • 已刪除的會話主機只會從 Azure 中移除。 計算機物件會保留在AD中,因此必須手動或透過腳本刪除這些計算機物件。

上述範例顯示一種使用 Azure DevOps 的映射自動化方法,以及持續整合和持續傳遞 (CI/CD) 管線。 這是雲端原生方法,可提供較不具干擾性的新會話主機推出,且不會停機。 請務必注意,當您逐步淘汰舊映射並讓新映射上線時,您應該考慮虛擬機的激增。

如上所述,Azure 計算資源庫是一項服務,可協助您建置映射周圍的結構和組織。 您可以在 Azure 虛擬桌面工作階段主機的 IaC 部署中參考這些映像。 此服務允許映像的版本設定、群組和複寫。

當您使用 ARM 範本Terraform 部署工作階段主機時,建議您使用您在資源庫中建立的映像資源識別碼作為 VM 自定義映射來源識別碼。 您使用的映像必須透過 Azure 計算資源庫服務複寫到您要部署 Azure 虛擬桌面主機集區的 Azure 區域。

下一步

瞭解如何使用企業級案例的登陸區域加速器來部署 Azure 虛擬桌面。