【IT168-微軟雲計算博客徵文活動專稿】2009年10月27日,微軟首席架構師Ray Ozzie在洛杉磯的開發者大會(PDC)上宣布了Azure Services Platform平臺,2010年1月Windows Azure正式發布,2010年2月Windows Azure Platform(微軟雲計算平臺)正式開始收費,這標誌著微軟雲計算的軟體平臺已經搭建起來了。
據研究機構Evans Data最近的雲開發調查顯示,30%接受調查的軟體開發人員表示他們正在面向雲環境開發應用,另有19%指出他們預計將在未來12個月內投入到雲開發工作當中。2010年3月,微軟執行長史蒂夫•鮑爾默在美國華盛頓大學發表演講時也指出,微軟將舉全公司之力投入雲計算,表示「我們將把賭注押在雲計算領域」。到目前為止,微軟在全球有40000多名員工在從事軟體開發工作,其中約70%的員工所從事的工作與雲有關,與我上面所談到的5個方面相關,一年以後,這一比例可能會上升到90%左右。
微軟雲計算平臺從發布測試版本到正式發布的時間也不算短了。作為技術人員就要緊緊跟隨技術的腳步不斷前進,並且很多開發人員已經開始嘗試在這個平臺之上開發他們的應用了。在本文中,你將了解到配合使用Visual Studio,如何去學習和掌握微軟雲計算平臺,本文的主要內容包括:微軟雲計算平臺能做什麼、開發環境搭建與雲應用開發過程。
微軟雲計算平臺能做什麼
根據官方資料,微軟雲計算平臺包括三大組成部分:Windows Azure、SQL Azure、Windows Azure Platform AppFabric。Windows Azure 可看成一個雲計算服務的作業系統,也是雲計算的基礎服務層,主要從事虛擬化計算資源管理和智能化任務分配;SQL Azure是雲中的資料庫,SQL Azure運行雲計算的關係資料庫服務,是一種雲存儲的實現,並提供網絡型的應用程式數據存儲的服務,它的基礎是SQL Server 2008;AppFabric 是一個基於 Web 的開發服務,它可以把現有應用和服務與雲平臺的連接和互操作變得更為簡單,AppFabric作為中間件層,將起到連接非雲端程序與雲端程序的橋梁的功能。它提供了兩大服務,服務總線和訪問控制。AppFabric 讓開發人員可以把精力放在他們的應用邏輯上而不是在部署和管理雲服務的基礎架構上。雲計算平臺在微軟產品線中如圖1所示:
圖1 Windows Azure 平臺
了解了微軟雲計算平臺的整體功能後,我們具體來了解一下微軟雲計算平臺給用戶提供了什麼以及在此平臺上可以做什麼應用。微軟的架構布道者Bill Zack詳述了微軟雲計算平臺給用戶提供的功能和服務主要包括計算、存儲、通信、管理。如表1所示:
表1 微軟雲計算模式和功能
有了這麼多模式和功能後,我們在雲平臺上就可以做一些應用和開發了,我們能做的開發主要包括三類:web應用程式、並行計算、分析應用程式,如表2所示:
表2 雲應用開發類型
開發環境搭建
微軟雲計算平臺的一大優點是能夠有效利用已有的軟體資源,自由選擇是否採用雲計算。對開發人員來說,可以使用熟悉的開發語言和工具,比如廣大開發者可以使用Visual Studio在微軟雲平臺上開發雲計算應用程式。這樣開發人員無需放棄現有的甚至是多年積累的開發技能和經驗,無需重新花費時間成本學習全新的開發語言和工具,而且還可以從傳統編程方式相對平滑地轉移到面向雲計算的編程方式。
除了對VS平臺開發的支持,對於Java、PHP、Rupy來說,也可以使用微軟雲計算平臺來進行雲應用的開發,而且還提供了開發的SDK,其地址如下:
http://msdn.microsoft.com/zh-cn/azure/default.aspx
通過這個頁面,開發人員可以找到微軟官方提供的很多關於雲計算的開發資源,如平臺簡介、VS平臺開發工具包、培訓工具包、實例代碼、SDK、解決方案等等,除此之外,還可以去微軟雲計算中文博客網站,這裡介紹了雲計算的入門知識,其地址是:
http://blogs.msdn.com/b/azchina/
進行微軟雲應用的開發,需要了解開發環境和配置。在這裡我們不打算對JAVA、PHP、RUPY開發環境進行介紹,有關它們的開發環境,感興趣的讀者可以參考SDK裡的相關描述。在VS平臺下,簡單的說,我們只需要在安裝了VS2008、VS2010、SQL Server 2008後,再安裝一個擴展的工具包就可以進行雲應用的開發了,這個擴展工具包是:Windows Azure Tools for Microsoft Visual Studio 1.1,其下載的地址是:
http://www.microsoft.com/downloads/details.aspx?familyid=5664019E-6860-4C33-9843-4EB40B297AB6&displaylang=en
安裝了此工具包後就能創建雲應用項目,如圖2所示:
圖 2 VS 2010雲應用項目
具體來說,VS平臺下雲應用的開發環境如下所述:
(1)Visual Studio .NET 2008/2010
(2).NET Framework 3.5
(3)Windows Communications Foundation
(4)ADO.NET
(5)ADO.NET Data Services
(6)Web services (REST, SOAP)
(7)XML
(8)ASP.NET
(9).NET security
(10)SQL Server database development
應用與案例
VS 2010提供了雲應用的開發、調試、部署、管理的整套工具,如開發雲計算的程序模式、開發雲計算的資料模式、開發雲計算的項目範本、離線測試雲計算項目、雲計算部署等等。這些功能都縮短了雲應用的開發周期。從VS2010平臺本身來說包括以下雲應用開發工具:
(1)C#以及VB雲服務項目的模版;
(2)更改Service Role設置的工具;
(3)本地開發整合Development Fabric以及Development Storage服務;
(4)在Development Fabric下的對Cloud Service Roles的調試;
(5)建立雲服務軟體包;
(6)瀏覽Azure Services Developer Portal;
在本文的案例中我們以VS2010為例,創建一個最簡單的雲應用,使用雲服務顯示當前時間,這個應用類似於培訓工具包裡的HelloWindowsAzure,旨在給大家介紹一下雲應用開發和部署的整個過程。在VS 2010中,雲應用開發主要包含5個步驟:創建雲服務、配置雲服務、生成雲服務、運行和調試服務、發布服務,如果有需要使用雲存儲的應用還包括使用存儲服務。在這5個步驟中,前4個步驟是開發雲應用的過程,第5步是部署雲應用的過程。下面我們分別介紹
(1) 創建雲服務應用程式
在這裡我們使用VS 2010 創建一個雲應用的演示項目TimeAzure項目,如圖3所示:
圖3 創建TimeAzure項目
可以使用VB、C#或F#來創建 ASP.Net Web Role 、ASP.Net MVC 2 Web Role、WCF Service Web Role 、CGI Web Role、Worker Role這些雲應用項目,不過ASP.Net MVC 2 Web Role項目在VS 2008的雲應用項目不能夠被創建。創建完成後,我們的項目組織如圖4所示:
圖 4 雲應用項目結構
由項目結構圖我們可以看到雲應用項目和普通的ASP.Net項目的不同,雲應用項目會產生一個雲應用的項目和一個ASP.Net的項目,雲應用項目對ASP.Net項目進行引用,同時雲應用項目中還包含服務定義和服務配置文件,這兩個文件在配置、運行和部署雲應用時將要用到。
在Default.aspx頁面裡拖入一個Label,命名為Label1,並在Default.aspx裡輸入如下代碼:
protected void Page_Load(object sender, EventArgs e)
{
this.Label1.Text = DateTime.Now.ToString();
}
在這裡,我們開發雲應用的步驟就結束了,整個開發過程和開發ASP.Net沒有任何區別,我們無需從零開始學習雲應用開發,這也是微軟雲計算平臺的一大優勢。
(2) 配置雲服務
開發完雲應用程式後,我們就需要對應用進行配置。打開ServiceConfiguration.cscfg文件,修改配置文件如下:
<?xml version="1.0"?>
<ServiceConfiguration serviceName="TimeAzure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
<Role name="WebRole1">
<Instances count="3" />
<ConfigurationSettings>
<Setting name="DiagnosticsConnectionString" value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
在服務設置文件中,我們可以定義角色並對角色進行設置,這裡使用默認已經創建好的角色,只是設置了實例的數量,由「1」改成了「3」。
(3) 生成雲服務
生成雲服務和生成普通的ASP.Net程序完全一樣,點擊Build |Build Solution即可,編譯的過程中,會對雲應用服務進行打包,生成TimeAzure.csx文件,本地Development Fabric會使用這個.csx文件。
(4) 調試和運行雲服務
點擊Debug | Start Debugging開始對雲應用的測試,但是出現錯誤提示,如圖5所示:
圖5 調試錯誤
此錯誤的原因是沒有安裝SQL Server Express,點擊安裝後,再次運行調試,彈出初始化存儲服務界面,如圖6所示:
圖6 初始化開發存儲資料庫
設置TimeAzure為啟動項目,點擊運行或調試,運行或調試雲應用的時候會啟動本地的Development Fabric,它模擬了Windows Azure的服務。Development Fabric宿駐了你的服務中所有的Web Role和Worker Role的實例。要顯示Development Fabric的用戶界面,雙擊系統任務欄中的Development Storage圖標,打開窗口如圖7所示:
圖7 Development Fabric窗口
在上圖中顯示了運行的服務的3個實例,這3個實例也對應了我們在服務設置文件裡設置的實例數,點擊每一個實例的窗口,可以查看實例的詳細信息。注意當停止服務運行或調試,本地Development Fabric和Storage元素不會停止,必須手動從系統工具欄中停止才行。
(5) 發布雲服務
生成解決方案後,對應用程式也進行了調試,這些工作完成後就可以發布雲應用。將創建一個包含了所有的服務組件的.cspkg文件,之後會連接到Azure Services Developer Portal。要發布服務,右鍵單擊TimeAzure項目,然後選擇發布,如圖8所示:
圖 8 發布雲應用
這將打開Windows Explorer到解決方案文件夾中的Publish文件夾,如圖9所示:
圖9 發布雲應用
在打開publish文件夾的同時打開Azure Services Developer Portal。在這裡我們使用Live ID來登錄到Azure Services management portal上進行部署,在部署時需要有一個邀請碼,關於邀請碼的獲得,以前的方法是直接在Azure的網站上進行申請。然後就可以登錄到Developer Portal並按照嚮導上傳應用程式到Windows Azure,有關上傳的步驟這裡就不描述了,這是一個嚮導式的過程,把.cscfg和.cspkg上傳就可以了。注意在部署的時候我們可以部署到生產環境或者演示環境,如果只是做一個Demo,那我們就把雲應用部署到演示環境上。有關雲應用部署的更詳細步驟,感興趣的讀者可以參考MSDN:
http://blogs.msdn.com/b/azchina/archive/2010/02/18/webrole.aspx
部署完成後,打開界面類似圖10所示:
圖10 部署雲應用完成
部署完成後,就可以點擊Run來運行我們的雲應用,這樣所有的機器就可以通過Internet來訪問我們的雲應用了。
小結
有了微軟雲計算平臺的支持,微軟官方提供的各種資源,軟體開發工具與平臺的支持,使用現有的.Net平臺軟體開發技術,作為一個有一定VS平臺開發經驗的技術人員來說,我們開發雲應用或雲服務的過程和開發普通VS Web應用程式差不多,只是在部署的時候有所不同,在部署的過程中,我們需要把編譯生成的文件上傳上去,進行一些必要配置就可以通過Internet進行訪問了。整個過程還是比較容易的,看到這裡,你是否已經對開發雲應用充滿了期待呢,心動不如行動!