桌面虛擬化 (Desktop Virtualization) 是虛擬化的一個分支,它著重的是在將使用者執行環境的虛擬化,讓它可以在本地端電腦資源不足的情況下還能執行應用程式,例如當本地顯示卡 GPU 不夠力時還能玩需要高檔 GPU 才能執行的遊戲,或是在等級低的電腦上執行等級高的應用程式等....
桌面虛擬化 (Desktop Virtualization) 是虛擬化的一個分支,它著重的是在將使用者執行環境的虛擬化,讓它可以在本地端電腦資源不足的情況下還能執行應用程式,例如當本地顯示卡 GPU 不夠力時還能玩需要高檔 GPU 才能執行的遊戲,或是在等級低的電腦上執行等級高的應用程式等。
(Source: http://en.wikipedia.org/wiki/Application_virtualization)
桌面虛擬化的原理是讓使用者在遠端執行作業時,但感覺是在自己的電腦上工作。因為真正執行程式的地方不在本地,而是在遠端的電腦,遠端電腦上配有足夠的 CPU/GPU 等資源,由遠端電腦負責執行,應用程式的畫面則是透過網路傳輸到本地端顯示,因此本地端一定會安裝用戶端軟體,以接收來自遠端電腦的畫面資訊,以及使用者操作的指令,像是滑鼠游標的移動,鍵盤的輸入與焦點的位置等,都要送回遠端電腦做處理後,將畫面回傳到本地端。而這之中會有一個關鍵:網路速度,所以或多或少都會有些延遲,不過在網路頻寬愈來愈大且應用程式虛擬化技術的進步 (如畫面壓縮加快網路速度) 之下,桌面虛擬化的應用將會愈來愈多。
Amazon EC2 平台在桌面虛擬化上有提供 AppStream 服務 以支援應用程式虛擬化,當然微軟也不能落後太多,在 TechEd 2014 NA 大會中,微軟宣布了 Azure 上的應用程式虛擬化服務,稱為 RemoteApp,其實這個技術早就有了,它是 Windows 遠端桌面服務的一支,特別的地方是它在使用者的電腦上只是一個捷徑,使用者執行程式時背後會開啟一個特製的 Remote Desktop 用戶端,畫面會由這個用戶端帶給使用者,使用者也不會看到一般的 Remote Desktop 的程式畫面 (電腦設定,帳戶設定之類的),而是看到應用程式執行的畫面,就像在本地端執行應用程式一樣。
Azure RemoteApp 是基於 Azure 所提供的運算資源所建置的 RemoteApp 服務,在預覽階段提供了 Office 2013 Professional Plus + Project + Visio 等用戶端軟體的 RemoteApp 影像,而企業也可以在 Windows Server 2012 R2 的影像架構下,安裝部署自己的企業應用程式,並利用 RemoteApp 方式對企業用戶端發行。這個服務目前是預覽階段,需要申請核准才可以使用。
當申請核准後,在新增功能表的 RemoteApp 功能即可使用,它分成兩種模式,一種是經過 Internet 的 RemoteApp,另一種是經過 VPN 的 RemoteApp,目前 Internet-based RemoteApp 只能使用微軟提供的影像,若想要發行自己的影像,必須要使用 VPN-based RemoteApp。
新增的時間會比較長 (大約 30 分鐘內),因為這是新的服務,架構還在試行中,未來 GA 時相信會更快。
建立完成後,進入它的數位儀表板介面:
我們可以選擇要不要發行特定應用程式,點選 RemoteApp Programs,即可看到應用程式清單,可選擇其中一個應用程式選擇發行與否,或是編輯它的啟動參數:
當然,我們一樣可以決定使用者能不能用,目前 Internet-based RemoteApp 可支援 Microsoft Account 以及 Azure AD 的使用者驗證 (若要用企業的 AD 帳戶則是要先做 Azure AD 的 Directory Sync)。
當我們要連線這個 RemoteApp 前,要先下載 RemoteApp Client,這可在 https://www.remoteapp.windowsazure.com/ 中找到,選擇右上角的 Install Client,然後選擇 Download 'RemoteApp' client for Windows,即可下載。
下載安裝完成後 (它是 ClickOnce Application,不用特別的手續),它會指引你進行登入:
然後就會列出可用的 RemoteApp 的應用程式資源:
這時只要點選其中的一個應用程式,就會啟動遠端桌面 (RemoteApp Session),將應用程式執行起來。
若 Show Details 可展開時,展開它會看到遠端桌面的登入過程:
當入完成後,遠端桌面會隱藏起來,並開啟指定的應用程式 (本例是開啟 Visio):
管理人員可在使用者上線工作時看到連入的使用者狀態,也可以傳送訊息,終止連線階段或是強制登出。
這是使用 Send Message 給使用者時,使用者桌面的畫面:
管理者若將使用者加到別的 RemoteApp 時,使用者可用工具列上的 App Invitiations 取得使用的邀請。
現階段 Internet-based 上的 RemoteApp 內的 Office 2013 只有英文版 ,每個 RemoteApp 可容納 10 個使用者連線,並且可建立 2 個 RemoteApp 執行個體,用戶端程式可支援 Windows 8、Windows 7、iOS、Android、Mac OS X 等作業系統,且目前預覽為免費,重點是網路頻寛是含在服務費用內 (也就是預覽階段免費)。詳細的規格資訊可參考:http://azure.microsoft.com/zh-tw/pricing/details/remoteapp/