System Center

透過 Microsoft SoftGrid 將應用程式帶往虛擬之路

Ahmer Sabri and Kedar Shah

 

摘要:

  • 應用程式虛擬化的優點
  • SoftGrid 架構概觀
  • 串流處理軟體封裝

軟體虛擬化的概念自 1960 年代以來就以某種形式存在。然而,IT 產業卻花了幾十年的時間才瞭解到應用程式

虛擬化的潛能。現在人們逐漸跟上腳步,主要的開發也一同跟進。

Microsoft 在 2006 年 7 月併購 Softtricity 時,對應用程式虛擬化投入的一些影響。此次的併購成就了 Microsoft® SoftGrid 這套應用程式虛擬化解決方案。透過 SoftGrid,應用程式可從資料中心或其他網路位置來提供,並可在虛擬環境中的遠端用戶端以本機執行。虛擬化應用程式是在筒倉式系統 (Silo) 內執行,並且獨立於作業系統和本機桌面上的其他應用程式自行操作。

利用 SoftGrid 實作應用程式虛擬化的好數說不盡,礙於篇幅有限無法一一介紹,以下是一些最值得注意且立竿見影的優點:

簡化的迴歸和相容性測試 透過在單一機器上不衝突地平行執行相同應用程式的多個版本,您可動態地減少與測試和部署新應用程式相關聯的複雜度、時間和成本 (見 [圖 1])。

[圖 1] 透過 SoftGrid 使應用程式部署更有效率

[圖 1]** 透過 SoftGrid 使應用程式部署更有效率 **(按影像可放大)

更簡易的系統管理 IT 能夠有力控制這些應用程式執行的環境,使得維護理想的桌面環境更加簡單。

減少技術支援電話 有了更妥善管理的桌面環境,以及更少的衝突 (感謝在控制的筒倉式系統執行的虛擬化應用程式),使用者也就比較不需要打電話求援。

增強的桌面安全性 決不將應用程式安裝在 OS 上,以提高整體 OS 安全性。應用程式只佈建給授權使用者,藉此防止未授權存取。並且大多數應用程式會在標準安全性內容下轉譯。

免費的基座體驗 使用者喜好設定 (設定檔及其他設定) 是存放在網路上,藉以允許使用者從任何 PC 存取其各自的應用程式、喜好設定和控制項。

更完備的容錯和嚴重損壞修復 應用程式會轉換成資料檔案,就像任何企業資料一樣可以儲存及複寫。應用程式及其更新可使用協力廠商工具在即時站台與大量複製工具程式 (Bulk Copy Program,BCP) 站台之間自動進行同步處理,以便萬一發生嚴重損壞時能夠立即存取應用程式。

這些特性最終會減輕系統管理的負擔、降低成本,並允許您的組織更迅速且更可靠地採納新技術。現在讓我們更仔細看看 SoftGrid 到底是如何運作的。

提供虛擬化應用程式的方式

SoftGrid 架構是由大量一起共同運作的元件所組成。它包括 SoftGrid 元件 (如資料存放區、虛擬應用程式伺服器、編序器、管理主控台、管理 Web 服務,以及用戶端應用程式),它們會結合標準基礎結構元件 (如 Active Directory®) 一起運作 (見 [圖 2])。我們會概述 SoftGrid 架構,並說明各種元件搭配運作的方式。

[圖 2] 整體 SoftGrid 架構

[圖 2]** 整體 SoftGrid 架構 **(按影像可放大)

SoftGrid 資料存放區的作用像是整個虛擬化環境的中央儲存機制。資料存放區是安裝在 SQL Server™ (2000 或 2005 版) 或 Microsoft SQL Server Desktop Engine (MSDE) 上,存有記錄、應用程式、組態、授權資料、報告資訊和記錄資訊等。

虛擬化應用程式是提供給使用者的機器,並在用戶端內轉譯。SoftGrid 提供兩種類型 — Microsoft SoftGrid Application Virtualization for Desktops 和 Microsoft SoftGrid Application Virtualization for Terminal Services。每個方法都各有優點,但也有特定的效能取捨,這我們在<設定用戶端>一節會說明。

SoftGrid 環境中最重要的元件之一是 SoftGrid Virtual Application Server (SVAS),是用來處理使用者的應用程式要求,並能視需要將應用程式資料串流處理給使用者。

SVAS 是執行成 Windows® 服務,稱為 Microsoft System Center Virtual Application Server,並且具有非常基本的硬體需求。在預設情況下,所有應用程式資料本身 (我們稍後會討論到) 是位於 \Program Files\Softricity\SoftGrid Server\content 目錄內。

典型的 SoftGrid 體驗是從使用者登入工作站的那一刻開始。SoftGrid 用戶端會擷取使用者的安全性權杖和網域群組成員資格,並將這項資訊透過安全通道傳遞給 SVAS。SVAS 會將使用者存取指派給應用程式 (若使用者的安全識別元 [SID] 存在於應用程式的群組成員資格目錄),並且會在使用者的桌面上放置每個應用程式的捷徑 (或是系統管理員定義的任何其他位置,例如開始功能表,快速啟動工具列等)。

實際交付應用程式一般是當使用者按下捷徑圖示時開始進行,與開放模式軟體說明 (.osd) 檔案相關聯。這是一個以 XML 為主的檔案,包含應用程式封裝的相關資訊。用戶端會從 .osd 檔案擷取虛擬應用程式伺服器名稱,並啟始連線。此時,SVAS 會驗證用戶端,並與資料存放區聯繫,以判斷是否符合授權。使用者一經驗證,SVAS 便會將應用程式資料以資料區塊串流處理到用戶端 — 資料區塊預設每個是 32KB,但可以在編序時設定。

請注意,整個應用程式並沒有串流處理到用戶端。SoftGrid 反而是指串流處理用戶端上立即啟動應用程式所需的應用程式部份。這通常是佔總程式碼的百分之 20 到 40,雖然這當然會因應用程式而異。例如,跟封裝的總大小 800MB 比起來,Microsoft Word 2003 只需要串流處理 15MB 的資料給用戶端就可以啟動。如果使用者存取的應用程式部分尚未存在於用戶端快取內,必要的程式碼接下來會串流處理到用戶端。為了避開「週一午前效應」(過多同時的要求阻塞網路),組織可以選擇在使用者桌面上預先快取常見的應用程式。

Active Directory

SoftGrid 依賴 Active Directory (或 Windows NT® 4.0) 網域使用者和群組以佈建應用程式給授權使用者。在多網域的環境內,可使用適當的群組成員資格 (SoftGrid 支援本機、全域和萬用群組成員資格) 和與安裝的 SVAS 的網域之間的信任關係來佈建使用者。

安裝 SVAS 時,會提示您輸入不同的服務帳戶和群組,不但有助於與 Active Directory 整合,並且之後可用於系統管理目的。因此,在安裝之前有三個您應該建立的群組和帳戶: SoftGrid 瀏覽器帳戶、SoftGrid 系統管理員群組,以及 SoftGrid 使用者群組。

SoftGrid 瀏覽器帳戶負責瀏覽 Active Directory,因此對多網域環境中的所有 Active Directory 網域須具備唯讀權限。SoftGrid 系統管理員群組是用來授與 SoftGrid 管理主控台和 SoftGrid Management Web Service 的系統管理存取權。而 SoftGrid 使用者群組則是用來指派預設的提供者原則,這項原則是用來授權網域內的所有使用者存取透過管理主控台發佈的應用程式。

虛擬環境

SystemGuard 是 SoftGrid 用戶端的核心,它是執行於本機桌面上。SystemGuard 負責提供完全可運作的虛擬環境讓應用程式可以單獨執行。包含在這個筒倉式環境內的有虛擬化 OS 元件 — 登錄、檔案、字型、INI、COM、嵌入式服務,以及環境變數 — 全都是應用程式適當執行的必要元件 (見 [圖 3])。

[圖 3] 供應用程式單獨執行的虛擬化環境

[圖 3]** 供應用程式單獨執行的虛擬化環境 **

SystemGuard 會為它執行的每個應用程式建立虛擬化登錄機碼。本機 OS 上執行的其他應用程式並不能存取這些機碼,像是 regedit 之類的登錄編輯工具也看不到這些機碼。登錄的讀取和寫入必要時會重新導向至虛擬機碼。不過要注意的是,虛擬化應用程式可傳遞給本機登錄來取得未包含在虛擬化登錄機碼中的資訊。

同樣地,SystemGuard 也會建立虛擬化檔案系統,並將絕大部分的應用程式讀取和寫入重新導向至此檔案系統。此虛擬化檔案系統是隔離的,並且如果您想要在單一用戶端執行相同應用程式的多個版本,它還可以提供您所需的環境。

不過要特別註明的是,雖然應用程式與本機 OS 相隔離,但使用者仍然可以存取所有本機服務,例如列印、剪貼和網路磁碟機等。

封裝應用程式

您現在可能會好奇要如何建立完全可運作的獨立環境供虛擬化應用程式執行呢。對於這項工作,您是使用 SoftGrid Sequencer。這個精靈式的工具可讓您將應用程式封裝在虛擬化環境中,之後提供給用戶端,並在上面執行。

編序程序包含三個步驟:安裝、設定和測試,以及執行。在第一個步驟「安裝」當中,SoftGrid Sequencer 使用主動監看處理序來監視應用程式的安裝,並評估應用程式依存性。一旦完成,便會使用設定和測試階段對預設組態進行任何必要的變更,以確保達成所要的首次執行體驗。最後,在執行階段,SoftGrid Sequencer 會編譯和排序啟動應用程式所需的程式碼區塊。Feature Block 1 (FB1) 是啟動應用程式所需的必要程式碼,它允許使用者在不需要下載整個封裝檔的情況下執行應用程式。

應用程式一經編序,便會建立四個檔案:啟用虛擬化的應用程式檔 (.sft)、開放模式軟體說明檔 (.osd)、圖示檔 (.ico),以及專案檔 (.sprj)。這些檔案接著會被複製到 SVAS 的內容目錄。或者,系統管理員也可以選擇使用 HTTP 伺服器發佈 .ico 和 .osd 檔案給用戶端。

雖然 SoftGrid 一般是佈建應用程式讓它們在隔離的環境內彼此獨立執行,但 SystemGuard 還是容許一些應用程式互動。如果它們有賴於彼此互動則將應用程式編序在一起,您應該仔細檢查應用程式彼此間的依存性。這個程序一般稱為調和 (Suiting)。請注意,並非所有需要彼此互動的應用程式都可以編序在一起。調和的程序非常錯綜複雜,只應該在審慎檢查依存性之後進行,因為有時候編序兩個或以上的應用程式便無法達到虛擬化的目的。

簡化系統管理

SoftGrid 管理主控台提供單一工具執行所有系統管理工作。管理主控台預設是安裝在 SVAS 上,並且可以安裝在任何其他伺服器或工作站上。它是一種 MMC 3.0 嵌入式管理單元,並且使用 SoftGrid Management Web Service 連線至 SoftGrid DataStore (見 [圖 4]),讓經過授權的系統管理員完整存取存放在資料庫中的資料,以達管理目的。管理主控台與 SoftGrid Management Web Service 之間的連線是使用 Microsoft .NET Framework 遠端功能,透過這項功能可將管理主控台和 Web 服務安裝在相同或不同的伺服器上。[圖 2] 說明各個不同的部分如何彼此配合,並提供對整個 SoftGrid 實作的存取。請注意,規模較大的組織應該執行一個以上的 SoftGrid Management Web Service 執行個體。

[圖 4] SoftGrid Management Web Service 提供與資料存放區的連線

[圖 4]** SoftGrid Management Web Service 提供與資料存放區的連線 **(按影像可放大)

SoftGrid Management Web Service 是執行於裝有 IIS 5.0 或之後版本的 Windows 2000 或更新版本上。進行資料存放區連線需要有 .NET Framework 2.0 或之後版本,以及 Microsoft Data Access Components (MDAC) 2.7 或之後版本。

管理主控台提供單一系統管理工具,讓您從中發佈、終止應用程式等。工作是分成九大類別或容器,如 [圖 5] 中的功能表所示。

[圖 5] 從單一管理主控台管理 SoftGrid

[圖 5]** 從單一管理主控台管理 SoftGrid **(按影像可放大)

這裡簡單介紹每個容器中所含的管理工作的類型。「應用程式 (Applications)」容器是系統管理員進行各項作業的地方,例如匯入 .sprj 檔案以發佈較新版的應用程式,指定 .osd 位置,移除應用程式等等。此容器預設會包含一個已發佈的封裝,讓您用來測試用戶端與應用程式伺服器的連線能力。

編序應用程式時,會建立一個檔案類型關聯。一旦將封裝匯入後,就可以在管理主控台內使用該檔案類型關聯。「檔案類型關聯 (File Type Associations)」容器提供系統管理員一個地方修改所有檔案類型關聯。

「封裝 (Packages)」容器則控制著封裝的版本以進行主動升級,這些應用程式升級不需要使用者中斷連線或關閉伺服器就可以完成。系統管理員也可以使用此容器從管理主控台刪除封裝。請注意,從「封裝 (Packages)」容器刪除封裝將會從管理主控台和資料存放區移除 .sft 檔案,但並不會從應用程式伺服器上的內容目錄刪除此檔案。

如稍早所述,當使用者啟動應用程式時,SoftGrid Client 會檢查授權可用性,並只會在資料存放區中有提供授權時才啟動應用程式。「應用程式授權 (Application Licenses)」容器是系統管理員使授權與應用程式產生關聯的地方 — 無限授權、並行授權和具名的授權皆有支援。

「伺服器群組 (Server Groups)」容器包含了應用程式虛擬化伺服器和記錄資訊的邏輯群組。系統管理員可加入新伺服器群組,或修改現有群組的屬性 (例如用於通訊的連接埠,或配置的記憶體及處理序)。

在「提供者原則 (Provider Policies)」容器中,系統管理員可以建立一組稱為原則的規則。自訂提供者原則是用來授權使用者在不同的條件集合下,存取許多的應用程式。您可以使用「帳戶授權單位 (Account Authorities)」容器來指定當 SoftGrid 需要存取權以讀取網域的目錄資訊時,要使用的網域和認證。「SoftGrid 系統管理員 (SoftGrid Administrators)」容器包含負責管理 SoftGrid 環境的使用者群組。在此容器中,系統管理員可以新增或移除群組來控制存取權限。

最後,「報告 (Reports)」容器,正如其名,允許系統管理員產生報告來檢查 SoftGrid 環境的整體健康狀況。提供下列的報告:應用程式使用狀況 (Application Utilization)、軟體稽核 (Software Audit)、系統使用狀況 (System Utilization)、使用者/群組活動 (User/Group Activity),以及系統錯誤 (System Error)。

設定用戶端

SoftGrid Client 是安裝在使用者用來存取虛擬化應用程式之電腦的作業系統上。如前文所述,支援兩種用戶端類型:Microsoft SoftGrid for Desktops 或 Microsoft SoftGrid for Terminal Services。每個方法都各有優點,但在網路延遲、伺服器陣列整併和方便管理方面也有特定的效能取捨。

在桌面實作中,可從本機使用應用程式,並且多少會依賴網路可用性和輸送量。這種方法建議用於像是分公司的 IT 基礎結構有限的組織。對於已經有執行終端機伺服器的組織來說,終端機服務是個不錯的選項。此種案例能有效利用軟硬體,進而大大減少必要的伺服器數目。而且,想當然爾,它也提供一個真正免費的基座環境。大型組織一般會有桌面和終端機伺服器基礎結構的組合。當您設定 SoftGrid 部署時,針對兩種方法安裝和設定各種元件的方式很類似。

用戶端可以使用任何標準方法來部署,例如手動安裝或使用像是 Systems Management Server 2003 的工具進行自動部署。[圖 6] 列出安裝這些用戶端所需的最小軟硬體需求。

Figure 6 SoftGrid 用戶端的系統需求如下:

用戶端 處理器 記憶體 磁碟空間 作業系統
Microsoft SoftGrid for Terminal Services PIII 850MHz 1GB RAM (最小 256MB,實際視使用者和應用程式的數量而定 12MB 用於安裝,而 4096MB 用於快取 • Windows 2000 Server 或啟用終端機服務的 Advanced Server
• 啟用終端機服務的 Windows Server 2003
Microsoft SoftGrid for Desktops PIII 600MHz 128MB 12MB 用於安裝,而 2048MB 用於快取 • Windows 2000 Professional 或 Windows XP
• Windows 2000 Server 或 Windows Server 2003

雖然安裝用戶端很簡單明瞭,安裝時還是有一些您必須提供的屬性 — 例如安裝位置、快取大小、用於虛擬磁碟機的磁碟機代號,應用程式資料檔案的位置等等。一旦安裝好用戶端,便可以使用用戶端管理主控台來指定或變更其他設定。

若要啟動用戶端管理主控台,請至控制台,並從系統管理工具啟動 SoftGrid Client Management。您可以選擇是要連線到本機機器或是遠端機器。

[圖 7] 顯示用戶端管理主控台包含根容器與三個子系容器。localhost 根索引標籤上的 SoftGrid 是您設定大多數功能性參數的地方,包括記錄目錄、應用程式資料目錄、用戶端執行和顯示設定、錯誤和資訊性訊息快顯頻率、最大快取大小、虛擬化磁碟機、當從 SoftGrid 伺服器中斷連線的網路與連線選項,以及權限等等。

[圖 7] 用戶端管理主控台

[圖 7]** 用戶端管理主控台 **

您可以在「應用程式 (Applications)」容器中檢視和變更應用程式。「應用程式 (Applications)」容器提供關於本機應用程式的狀態資訊,例如應用程式是否正在執行中,應用程式是否鎖定在快取中,以及應用程式串流處理至本機快取的百分比 (.sft 檔案) 等。

「檔案類型關聯 (File Type Associations)」容器可讓您檢視、變更和移除檔案類型關聯。如需詳細資料,請參閱上一節討論的「檔案類型關聯」內容。

「桌面組態 (Desktop Configuration)」容器可讓您指定、變更和手動重新整理在安裝期間指定的應用程式伺服器設定。您也可以在這裡選擇是否應該在使用者登入時進行用戶端重新整理 (這是預設選項),以及自動重新整理間隔的長度。

結論

使用 Microosft SoftGrid 將應用程式虛擬化,不失為改進系統穩定性、簡化管理工作的好方法。雖然它需要許多部份一起搭配運作,但整個架構實際上可毫無障礙地融合至 IT 基礎結構中。

Microsoft SoftGrid for Desktops 已作為 Microsoft Desktop Optimization Pack 的一部份提供給軟體保證客戶使用。如需詳細資訊,請參閱 windowsvista.com/optimizeddesktop。Microsoft SoftGrid for Terminal Services 已作為獨立用戶端存取授權提供給 Microosft 大量授權合約的企業客戶使用。若要下載試用版本,請登入您的大量授權帳戶,網址為 https://licensing.microsoft.com,並在 [產品下載] 下選擇 [Desktop Optimization Pack for SA]。

Ahmer Sabri 在 Microsoft 的金融服務小組 (Financial Services Group)擔任技術專家一職。您可以透過電子郵件與 Ahmer 連絡: ahmers@microsoft.com

Kedar Shah 在 Microosft 的金融服務小組 (Financial Services Group) 擔任技術專家一職。您可以透過電子郵件與 Kedar 連絡: kedars@microsoft.com

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.