天天看點

Technet:Microsoft Application Virtualization 入門

[url]http://technet.microsoft.com/zh-cn/magazine/cc904189.aspx[/url]

Microsoft Application Virtualization 入門

Anthony Kinney

本文基于 App-V 的預釋出版本。文中的所有資訊均有可能發生變更。

概覽:

  • App-V 體系結構
  • 管理虛拟應用程式
  • 使用 App-V 排序器
  • 将 App-V 與 Configuration Manager 內建
Technet:Microsoft Application Virtualization 入門

 目錄

App-V 體系結構

App-V 完整基礎結構的工作原理

更新虛拟應用程式

排序

版本 4.5

Microsoft Application Virtualization(或 App-V)現在與我是心心相印了。App-V 過去稱為 SoftGrid,我是在 Microsoft 收購建立 SoftGrid 的公司 Softricity 之後加入 Microsoft 的。現在,我為有機會為《TechNet 雜志》撰寫本文倍感興奮,因為在收購之後發生了很多變化。

要了解 App-V,最好先探讨一下 IT 專業人員在企業管理方面面臨的挑戰。如今的商用桌上型電腦遭到了應用程式的沖擊。在安裝某個應用程式之前,它必須要經過一個漫長的回歸測試,以確定它能與系統中安裝的其他應用程式共存,且不會影響它們正常運作的能力。然後應用程式必須在其投入生産之前完成一系列的部署流程。由于應用程式基本上隻能在安裝位置使用,是以您的使用者将被限制到特定的計算機。這使複雜而又關鍵的項目(例如,OS 和應用程式遷移、安全重新整理和災難恢複計劃)更為複雜。

App-V 徹底改變了這一局面。有了 App-V,桌上型電腦管理變成了一個自動化的便捷流程,而不是一系列複雜、耗時而又占用資源的步驟。您可以更加輕松地部署、修補、更新和終止應用程式,同時獲得更好的結果。

通過 App-V,使用者可以坐在任何桌上型電腦前通路其應用程式。應用程式會按需傳遞,但運作起來與實際在本地安裝并無二緻。是以,沒有必要安裝應用程式元件或改變主機裝置。

這種虛拟化的使用使 IT 專業人員對桌上型電腦的管理方式發生了巨大變化。不用改變主機裝置,代之以運作虛拟化應用程式,這會帶來諸多益處,包括:

  • 減少了應用程式的沖突
  • 應用程式更新更快、更友善
  • 可以并行運作同一應用程式的多個版本
  • 應用程式能靈活适應線上和離線使用者
  • 減少了應用程式到應用程式的回歸測試

現在讓我們來看一下在 App-V 平台的背景實際上發生了什麼。此平台由幾個主要元件組成:排序器、資料庫、用戶端、管理伺服器、流式伺服器和管理控制台(請參見圖 1)。

Technet:Microsoft Application Virtualization 入門

圖 1 App-V 環境的布局(單擊圖像可檢視大圖)

App-V 系統的核心是 App-V 用戶端。可以使用兩種類型的用戶端,即終端伺服器用戶端和桌面用戶端。無論哪種情況,您計劃在其上部署虛拟應用程式的每個桌面和終端伺服器上均應安裝用戶端。此用戶端占用的磁盤空間很少。它将安裝一個驅動程式和可見的使用者運作時元件(顯示為工作列訓示器)。

此用戶端将從 App-V 管理伺服器收集虛拟應用程式的清單并顯示可用的虛拟應用程式。它負責啟動這些應用程式(由使用者啟動時)并管理用戶端緩存。用戶端還負責管理虛拟運作時環境的建立并確定各個環境在其自己的虛拟裝置中運作。這種虛拟環境有多個元件,包括虛拟系統資料庫、虛拟檔案系統和虛拟服務管理器。

App-V 4.5 中提供了三個基礎結構部署選項:完整基礎結構、輕型基礎結構和獨立模式。部署完整基礎結構時,後端包括 App-V Management Server 和 App-V Streaming Server(這是一個新元件,我稍後會加以介紹)。App-V Management Server 将托管和傳遞集中式虛拟應用程式,并會在應用更新或修補程式時更新虛拟應用程式。

此管理伺服器依靠 SQL Server 來托管 App-V 資料庫,該資料庫包含虛拟應用程式的配置和設定。您應使用 Active Directory 組作為中央管理工具來置備和控制虛拟應用程式的權限。

為管理設定和配置,App-V 平台提供了一項 Microsoft .NET Framework Web 服務,隻要安裝了 IIS,便可在同一伺服器上加載此服務。此 Web 服務充當 App-V 管理控制台(Microsoft 管理控制台 (MMC) 管理單元)與 App-V 資料庫之間的聯系人。管理者可以使用此控制台來釋出和管理虛拟應用程式、配置設定 Active Directory 組、控制伺服器設定以及運作虛拟化應用程式使用情況報告(請參見圖 2)。

Technet:Microsoft Application Virtualization 入門

圖 2 管理控制台(單擊圖像可檢視大圖)

輕型基礎結構包括 App-V 流式伺服器,它可執行活動/軟體包更新等流功能。此選項不需要 Active Directory 或 SQL Server,它沒有桌面配置服務,而且不具備許可和計量功能。不過,輕型基礎結構允許将流功能添加到 System Center Configuration Manager (SCCM) 和其他第三方企業軟體部署 (ESD) 解決方案。

在獨立模式下,App-V 排序器可以建立 MSI 檔案,用它自動添加虛拟應用程式(請參見圖 3)。MSI 檔案包含中繼資料,任何 ESD 系統都可以識别該資料并控制虛拟化應用程式。此模式要求用戶端處于獨立模式,這樣隻允許虛拟應用程式有基于 MSI 的更新,不允許出現流。此模式允許組織利用 App-V 隔離功能。

Technet:Microsoft Application Virtualization 入門

圖 3 App-V 排序器(單擊圖像可檢視大圖)

MSI 檔案非常靈活,隻要有 App-V 用戶端,它們就可以完全獨立運作,而不需要任何伺服器元件。這意味着它們可以手動部署(使用磁盤),也可以通過任何傳統部署工具部署。

在 App-V 4.5 中,HTTP 和 HTTPS 是目前支援流的協定。這樣就可以獲得更好的流性能,采用更廣泛的協定,尤其對于跨安全廣域網 (WAN) 和跨 Internet 的流更是如此。

App-V 完整基礎結構的工作原理

使用者登入到裝有用戶端(App-V 終端服務或桌面用戶端)的裝置,用戶端會向伺服器請求配置設定給目前使用者的應用程式清單。伺服器将與 Active Directory 進行通信,以确定此使用者所屬的組,然後将應用程式的清單重新傳回給用戶端。用戶端便開始針對已配置設定給該特定使用者的虛拟應用程式建構公告。

在此釋出過程中,要執行多個操作:

  • 複制配置檔案
  • 建立桌面圖示
  • 建立“發送到”連結
  • 建立開始菜單檔案夾
  • 配置檔案類型

此過程非常快速,最重要的是,它可確定環境看起來與使用者預期的一樣,沒有什麼直覺變化。虛拟應用程式會像它們在本地安裝那樣運作,當然,它們不會改變主機。圖示指向 App-V 用戶端(它依賴于啟動程式檔案 (OSD 檔案) 進行配置),而不是指向駐留在程式檔案目錄中的可執行檔案。

特别要注意,此過程對網絡的影響非常小,因為與傳統軟體部署不同,不需要安裝任何東西。這有極大的好處,尤其是在漫遊使用者環境中,因為應用程式可供使用者使用,但在應用程式啟動之前不會實際傳遞任何内容。這種公告方法還提供了 App-V 的按需和漫遊應用程式功能。

當使用者啟動虛拟應用程式時,用戶端會讀取 OSD 配置檔案,此檔案存儲在本地計算機中。這将告訴用戶端與 App-V 管理伺服器進行通信時使用哪個協定以及該應用程式駐留在哪台伺服器上。

相應的伺服器會向下傳送初始啟動門檻值(通常為完整應用程式的 20–40%)以響應用戶端。整個啟動門檻值傳送完成後(再次重申,隻是應用程式的 20–40%),虛拟應用程式便可以運作了。

這種流實際上是随 App-V 引入的模式轉變的關鍵元素之一。它隻發送足量的應用程式,以使應用程式在運作時不會浪費寶貴的網絡寬帶。發送給用戶端的所有資料均駐留在裝置上的本地緩存檔案中,可從本地緩存啟動此應用程式的所有後續啟動,進而消除額外的網絡流量。

虛拟應用程式完成流操作後,用戶端會建構一個隔離環境,以防止此應用程式改變本地計算機(也就是說,應用程式不占用用戶端空間)。但是儲存和編輯檔案時,用戶端允許虛拟應用程式通路本地檔案系統,隻要使用者在本地系統中具有相應的權限,它還允許應用程式與本地服務(如列印)進行互動。但虛拟應用程式對本地系統的檔案和系統資料庫所做的任何更改都将被重定向到虛拟化環境,以便主機裝置保持不變。

當應用程式運作時,之前沒有使用的所有功能都将根據需要傳遞并緩存以備後續使用。這樣做的好處是初始啟動時隻會加載使用者需要的元件,不需要的功能不會消耗網絡資源。(新版本提供了一些用戶端緩存方面的改進,使緩存使用率和背景流更加智能化。)

以 Microsoft Office Word 為例。幾乎所有使用者都使用拼寫檢查器(沒有它我根本無法撰寫本文!);是以,它是初始啟動的一部分。但 Word 中的“幫助”功能又是怎麼樣呢?沒有那麼多的使用者使用此功能,是以,不需要在初始啟動中傳遞。它會在某個使用者對其進行首次通路時被發送給該使用者。

當使用者完成操作後關閉應用程式時,用戶端會消除虛拟環境并将所有使用者設定存儲在使用者特定的位置,以保留該環境并在下一次啟動時重新建構。虛拟應用程式已被傳送的部分(百分比)均保留在本地緩存中,可供下一次啟動使用。如果其他使用者登入到同一主機系統并啟動同一虛拟應用程式,則此新使用者将從已存儲在緩存中的應用程式受益。

要删除虛拟應用程式公告,隻需将此使用者從相應的 Active Directory 組中删除即可。要将虛拟應用程式從桌上型電腦中完全解除安裝,隻需清除緩存即可。由于應用程式永遠不會真正安裝在本地,是以不會出現詢問您“您是否要删除此共享元件?”這樣煩人的提示。

請注意,即使虛拟應用程式存儲在緩存中,也并不意味着所有使用者都有權通路它。與本地安裝的應用程式不同(使用者隻需搜尋或浏覽他們無權通路的可執行檔案),虛拟應用程式的存在沒有直覺或實體表示,除非 Active Directory 組向此使用者授予了相應的顯式權限。

更新虛拟應用程式

更新是使用排序器來完成的。應用程式經過修訂包括更新後,便可将其置于下一版本的 App-V 管理伺服器上。該伺服器随後會在下一次啟動時通知用戶端發生了更改。如果仍使用前一版本,則使用者依舊可以通路該版本,直到虛拟應用程式關閉。下一次啟動時,構成更新的變化量将被向下傳送到用戶端并載入緩存,進而形成了應用程式的更新版本。

假設您有 1,000 名使用者在運作 Word 2000。管理者需要将 Word 2000 (word2K.sft) 更新為 Word 2000 SP3,是以她将 word2K.sft 檔案複制到排序站并在排序器中選擇“Open for Package Upgrade”(打開軟體包更新)。選擇該選項後,管理者便可從上一軟體包狀态開始工作。然後她可以複制 DLL,運作更新,或在虛拟應用程式内執行修補程式以将其更新為 Word 2000 SP3。之後,管理者将儲存這個已更新的軟體包。

排序器會自動配置設定一個新檔案名 (word2K_2.sft),以防止檔案重名并訓示排序的版本。将此新軟體包與舊軟體包置于 App-V 管理伺服器的同一目錄中,以使 Word 2000 (word2K.sft) 和 Word 2000 SP3 (word2K_2.sft) 最終駐留在相同目錄中。管理者之後會使用 App-V 管理控制台将這兩個 SFT 檔案連接配接在一起。

在用戶端,打開 Word 2000(不帶 SP3)的活動會話的使用者将繼續正常工作。在管理者完成上述連結操作之後啟動應用程式新會話的使用者将會收到一條消息,訓示已檢測到更改。然後用戶端開始僅向下傳送 word2K.sft 與 word2K_2.sft 之間的變化量,并将應用程式自動更新為 Word 2000 SP3。

由于虛拟應用程式具備動态特性,是以復原操作也是非常容易的。隻需傳回到 App-V 管理控制台并删除新添加的版本。這會使用戶端在重新啟動時復原到上一版本。為確定軟體包資料無交叉,用戶端會自動清除緩存并重新傳送正确的 SFT 檔案。當您考慮必須要執行哪些操作才能復原使用更加傳統的軟體部署工具實際安裝的應用程式更新時,這是一個值得考慮的權衡。

要發揮 App-V 的優勢,您必須建立虛拟應用程式包。App-V 排序器在這裡就派上用場了。您為傳統軟體部署工具編寫腳本和建立軟體包時獲得的任何知識和體驗都會幫您輕松向排序過渡。(應該指出的是,要闡述排序需要用一整篇文章。)

大多數軟體部署解決方案依靠腳本捕獲應用程式自行安裝的方式,然後在其他計算機上重複此過程,無需再通路每台計算機來安裝或更新應用程式。應用程式安裝完成後,正常軟體部署工具會徹底擦除軟體包。然後您必須安裝該應用程式可能依賴的所有依賴關系、運作其他腳本或執行手動步驟以根據需要配置應用程式。

App-V 中的根本改變是排序過程生成了一個已安裝應用程式的映像,包含它的所有依賴關系和配置。App-V 用戶端可“完成”這一任務,而無需改變該映像的處理裝置。

排序器會生成多種多樣的檔案,其中最重要的是 SFT 檔案,它包含所有應用程式資産、依賴關系和配置資訊。在某些情況下,它還可能包含多個應用程式。毫無疑問,此檔案可能會非常大。可以對其應用一些壓縮選項,但對您網絡和裝置性能的充分了解是必不可少的。排序器建立的圖示檔案 (.ico) 用于通告虛拟應用程式,以使其像在本地安裝一樣運作。

OSD 檔案也非常重要,其選項是無窮盡的。預設情況下,這是一個基于 XML 的檔案,用于告知 App-V 用戶端如何啟動虛拟應用程式。也可以對 OSD 檔案進行修改,以配置和控制虛拟應用程式的啟動和運作方式。我強烈建議您閱讀“排序管理指南”和“排序最佳方法”文檔,以熟悉通過 OSD 檔案提供的屬性和值。

最後,新的 manifest.xml 檔案包含基于軟體包的配置資訊,可用于與第三方 ESD 解決方案和 MSI 部署內建。排序器還可以為虛拟應用程式包生成一個 MSI 檔案。可使用此檔案将虛拟應用程式加載到獨立(無伺服器)用戶端或 ESD 系統。

排序器本身是一個基于向導的工具,可引導您完成應用程式安裝并将其轉換成虛拟應用程式(請參見圖 4)。第一步是配置軟體包的預設屬性。這些屬性存儲在 OSD 檔案中,包括軟體包名稱和注釋。一些進階設定允許您指定從中進行傳送的伺服器、内容目錄和軟體包應支援的作業系統。

Technet:Microsoft Application Virtualization 入門

圖 4 排序向導(單擊圖像可檢視大圖)

第二步是安裝、配置和測試應用程式。在安裝期間,排序器會捕獲對本地系統所做的全部更改,包括檔案系統、系統資料庫和系統。此向導中還有幾個實用工具,可用于完成 Windows Update 內建等操作。

下一步是配置檔案類型關聯并指定應将快捷方式放置在什麼位置。标準位置包括“開始”菜單、桌面和快速啟動欄,但也可以建立自定義位置。

然後您需要啟動此應用程式并配置初始啟動門檻值。App-V 在此步驟中确定需要傳遞給用戶端以使應用程式開始運作的應用程式初始部分。

要配置這一初始代碼(通常稱為 Feature Block 1 或 FB1),隻需啟動應用程式并使用使用者所需的最常見功能。例如,啟動 Word,然後啟動拼寫檢查器。應用程式在此階段調用的任何 DLL、檔案或系統資料庫項會被自動指定為 FB1 的一部分。此時未使用的所有檔案、設定或元件均被添加到 FB2 中。之後使用此應用程式時,用戶端将會收到一個 SFT 檔案的映射,訓示 FB1 開始和停止位置以及 FB2 中存在的其他檔案的位置,以便用戶端可以在應用程式需要時檢索這些檔案。

排序過程的最後一步是確定所有内容正确配置。排序器顯示的對話框如圖 5 所示,它表示 SFT 并允許您對軟體包做出任何最後添加或更改。

Technet:Microsoft Application Virtualization 入門

圖 5 确認和調整最終軟體包(單擊圖像可檢視大圖)

版本 4.5

經過兩年的準備,App-V 4.5 計劃在今年晚些時候釋出。這是 Microsoft 這一産品首次面世,它通過引入幾項重要的增強功能(例如,動态虛拟應用程式互動、擴充可伸縮性和更為符合 Microsoft 國際化與安全的要求)推動了應用程式虛拟化。

動态虛拟應用程式互動允許虛拟化應用程式彼此進行互動。這種互動稱為動态套件合成 (DSC)。 DSC 不是為取代将多個應用程式添加到同一軟體包的功能。而是提供了一種新方法來內建在各虛拟應用程式之間共享的依賴關系、中間件和插件。

管理者可以指定哪些虛拟化應用程式可彼此互動。例如,假設您有五個 Web 應用程式,它們需要同一 Java 版本。在 App-V 4.1 中,您必須将此相同的 Java 版本添加到五個單獨軟體包中的每一個。假設 Java 版本需要一個更新檔。管理者稍後必須為五個不同的軟體包提供更新檔。如使用 DSC,Java 隻需打包一次,即可配置為能供所有五個 Web 應用程式使用的軟體包。是以,修補 Java 隻需要管理者為 Java 軟體包提供一次更新檔。

對于中間件和插件也是如此。随着 Microsoft 釋出的臨近以及最終确定所有最新添加的内容,我打算在部落格中寫一篇有關其他使用案例方案的文章。

可伸縮性的增強功能包括流式基礎結構和後端基礎結構。後端元件已進行了修改,它可以更好地支援群集和故障轉移方案,而且更适合 WAN 和 LAN。增強功能源自幾個關鍵的添加項。

第一個是全新的流式伺服器元件,它允許進行流化,而無需 Active Directory 和 SQL Server 後端基礎結構。您仍然會得到按需傳遞和集中更新軟體包的所有巨大益處,而沒有苛刻的後端要求。它可廣泛用于分支機構方案和與第三方 ESD 解決方案的內建。

App-V 用戶端也進行了一些改進。例如,用戶端現在将所有使用情況資訊存儲在本地,以便可以跟蹤此資訊,無論用戶端資訊與網絡是連接配接的還是斷開的。用戶端緩存也進行了擴充和改善,可以在有限的磁盤空間中提供更好的性能。現在還支援排序非英語應用程式、在非英語作業系統中運作 App-V 以及本地化為其他多種語言。

App-V 4.5 中的許多增強功能和新功能都是針對将 App-V 內建到 SCCM 2007 R2 而設計的。正像我之前所探讨的,虛拟化和流化可傳遞傳統軟體部署工具未提供的應用程式。我并不是說 App-V 将取代這些工具,而是說 App-V 可以對其進行補充和擴充。

通過這種內建,您可以擷取 SCCM 的所有可伸縮性、報告、裝置識别和 WAN 功能以及 App-V 的所有流化和隔離功能。下面列出了會從這兩項技術內建中受益的領域:

應用程式釋出,SCCM R2 內建支援按需傳遞、漫遊應用程式、初始啟動門檻值和應用程式部署的所有功能,無需改變用戶端 PC。

更新 SCCM,分發點 (DP) 可以在軟體包更新時僅部署虛拟應用程式的變化量。它引入了集中式功能,隻需單擊一次便可将虛拟化應用程式還原為以前版本。

管理,版本 R2 引入了一項全新的虛拟應用程式公告向導,允許管理者從單個控制台部署虛拟化應用程式以及傳統軟體包和公告。

打包,将 App-V 與 SCCM 內建後不需要将應用程式重新打包。必須從 SCCM 外部使用 App-V 序列完成應用程式的初始排序,但管理者可以使用 SCCM 更新現有軟體包。

授權許可,可以使用 SCCM 中的現有工具跟蹤虛拟應用程式的授權許可和計量。

BITS,SCCM 提供了一種全新的方法來使用行業标準的 BITS 協定将虛拟化應用程式部署到 App-V。雖然 SCCM DP 可以流化,但有些時候流化并不是部署虛拟化應用程式的理想方法。通過 SCCM 進行部署時,有兩個選項可以使用。您可以使用标準流,也可以使用 BITS 的服務品質 (QoS) 功能來以更加可控的方式進行部署。如果您想在使用者啟動虛拟應用程式之前預加載緩存,這也是非常有用的。

計算機部署,SCCM 可以将虛拟化應用程式部署到指定計算機并繼續支援基于使用者的 App-V 目标平台方法。當您将虛拟應用程式部署到便攜式計算機、網亭和實驗室計算機時,這會很有用。如果軟體由裝置授權(而非指定使用者),這還為協助實施許可證控制提供了友善。

可伸縮性,需要部署兩個具有大量重疊的單獨工具是一個常見問題。通過将 SCCM 的可伸縮性、WAN 優勢與 APP-V 的隔離和流化優勢相內建,您可以使用現有的 SCCM 處理管理和部署,進而簡化處理過程。

Anthony Kinney 是一位技術銷售專業人員,負責 Microsoft 桌面優化包。Anthony 是在 2006 年 Microsoft 收購 Softricity 後加入 Microsoft 的。在 Softricity 工作時,Anthony 編寫并設計了 SoftGrid(現在為 App-V)的第一個教育訓練程式。可通過 [email][email protected][/email] 與他聯系。

繼續閱讀