2009年10月27日,微軟首席架構(gòu)師Ray Ozzie在洛杉磯的開發(fā)者大會(huì)(PDC)上宣布了Azure Services Platform平臺(tái),2010年1月Windows Azure正式發(fā)布,2010年2月Windows Azure Platform(微軟云計(jì)算平臺(tái))正式開始收費(fèi),這標(biāo)志著微軟云計(jì)算的軟件平臺(tái)已經(jīng)搭建起來(lái)了。
據(jù)研究機(jī)構(gòu)Evans Data最近的云開發(fā)調(diào)查顯示,30%接受調(diào)查的軟件開發(fā)人員表示他們正在面向云環(huán)境開發(fā)應(yīng)用,另有19%指出他們預(yù)計(jì)將在未來(lái)12個(gè)月內(nèi)投入到云開發(fā)工作當(dāng)中。2010年3月,微軟首席執(zhí)行官史蒂夫•鮑爾默在美國(guó)華盛頓大學(xué)發(fā)表演講時(shí)也指出,微軟將舉全公司之力投入云計(jì)算,表示“我們將把賭注押在云計(jì)算領(lǐng)域”。到目前為止,微軟在全球有40000多名員工在從事軟件開發(fā)工作,其中約70%的員工所從事的工作與云有關(guān),與我上面所談到的5個(gè)方面相關(guān),一年以后,這一比例可能會(huì)上升到90%左右。
微軟云計(jì)算平臺(tái)從發(fā)布測(cè)試版本到正式發(fā)布的時(shí)間也不算短了。作為技術(shù)人員就要緊緊跟隨技術(shù)的腳步不斷前進(jìn),并且很多開發(fā)人員已經(jīng)開始嘗試在這個(gè)平臺(tái)之上開發(fā)他們的應(yīng)用了。在本文中,你將了解到配合使用Visual Studio,如何去學(xué)習(xí)和掌握微軟云計(jì)算平臺(tái),本文的主要內(nèi)容包括:微軟云計(jì)算平臺(tái)能做什么、開發(fā)環(huán)境搭建與云應(yīng)用開發(fā)過程。
微軟云計(jì)算平臺(tái)能做什么
根據(jù)官方資料,微軟云計(jì)算平臺(tái)包括三大組成部分:Windows Azure、SQL Azure、Windows Azure Platform AppFabric。Windows Azure 可看成一個(gè)云計(jì)算服務(wù)的
圖1 Windows Azure 平臺(tái)
了解了微軟云計(jì)算平臺(tái)的整體功能后,我們具體來(lái)了解一下微軟云計(jì)算平臺(tái)給用戶提供了什么以及在此平臺(tái)上可以做什么應(yīng)用。微軟的架構(gòu)布道者Bill Zack詳述了微軟云計(jì)算平臺(tái)給用戶提供的功能和服務(wù)主要包括計(jì)算、存儲(chǔ)、通信、管理。如表1所示:
表1 微軟云計(jì)算模式和功能
有了這么多模式和功能后,我們?cè)谠破脚_(tái)上就可以做一些應(yīng)用和開發(fā)了,我們能做的開發(fā)主要包括三類:web應(yīng)用程序、并行計(jì)算、分析應(yīng)用程序,如表2所示:
表2 云應(yīng)用開發(fā)類型
開發(fā)環(huán)境搭建
微軟云計(jì)算平臺(tái)的一大優(yōu)點(diǎn)是能夠有效利用已有的軟件資源,自由選擇是否采用云計(jì)算。對(duì)開發(fā)人員來(lái)說,可以使用熟悉的開發(fā)語(yǔ)言和工具,比如廣大開發(fā)者可以使用Visual Studio在微軟云平臺(tái)上開發(fā)云計(jì)算應(yīng)用程序。這樣開發(fā)人員無(wú)需放棄現(xiàn)有的甚至是多年積累的開發(fā)技能和經(jīng)驗(yàn),無(wú)需重新花費(fèi)時(shí)間成本學(xué)習(xí)全新的開發(fā)語(yǔ)言和工具,而且還可以從傳統(tǒng)編程方式相對(duì)平滑地轉(zhuǎn)移到面向云計(jì)算的編程方式。
除了對(duì)VS平臺(tái)開發(fā)的支持,對(duì)于Java、PHP、Rupy來(lái)說,也可以使用微軟云計(jì)算平臺(tái)來(lái)進(jìn)行云應(yīng)用的開發(fā),而且還提供了開發(fā)的SDK,其地址如下:
圖 2 VS 2010云應(yīng)用項(xiàng)目
具體來(lái)說,VS平臺(tái)下云應(yīng)用的開發(fā)環(huán)境如下所述:
(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
應(yīng)用與案例
VS 2010提供了云應(yīng)用的開發(fā)、調(diào)試、部署、管理的整套工具,如開發(fā)云計(jì)算的程序模式、開發(fā)云計(jì)算的資料模式、開發(fā)云計(jì)算的項(xiàng)目范本、離線測(cè)試云計(jì)算項(xiàng)目、云計(jì)算部署等等。這些功能都縮短了云應(yīng)用的開發(fā)周期。從VS2010平臺(tái)本身來(lái)說包括以下云應(yīng)用開發(fā)工具:
(1)C#以及VB云服務(wù)項(xiàng)目的模版;
(2)更改Service Role設(shè)置的工具;
(3)本地開發(fā)整合Development Fabric以及Development Storage服務(wù);
(4)在Development Fabric下的對(duì)Cloud Service Roles的調(diào)試;
(5)建立云服務(wù)軟件包;
(6)瀏覽Azure Services Developer Portal;
在本文的案例中我們以VS2010為例,創(chuàng)建一個(gè)最簡(jiǎn)單的云應(yīng)用,使用云服務(wù)顯示當(dāng)前時(shí)間,這個(gè)應(yīng)用類似于培訓(xùn)工具包里的HelloWindowsAzure,旨在給大家介紹一下云應(yīng)用開發(fā)和部署的整個(gè)過程。在VS 2010中,云應(yīng)用開發(fā)主要包含5個(gè)步驟:創(chuàng)建云服務(wù)、配置云服務(wù)、生成云服務(wù)、運(yùn)行和調(diào)試服務(wù)、發(fā)布服務(wù),如果有需要使用云存儲(chǔ)的應(yīng)用還包括使用存儲(chǔ)服務(wù)。在這5個(gè)步驟中,前4個(gè)步驟是開發(fā)云應(yīng)用的過程,第5步是部署云應(yīng)用的過程。下面我們分別介紹
(1) 創(chuàng)建云服務(wù)應(yīng)用程序
在這里我們使用VS 2010 創(chuàng)建一個(gè)云應(yīng)用的演示項(xiàng)目TimeAzure項(xiàng)目,如圖3所示:
圖3 創(chuàng)建TimeAzure項(xiàng)目
可以使用VB、C#或F#來(lái)創(chuàng)建 ASP.Net Web Role 、ASP.Net MVC 2 Web Role、WCF Service Web Role 、CGI Web Role、Worker Role這些云應(yīng)用項(xiàng)目,不過ASP.Net MVC 2 Web Role項(xiàng)目在VS 2008的云應(yīng)用項(xiàng)目不能夠被創(chuàng)建。創(chuàng)建完成后,我們的項(xiàng)目組織如圖4所示:
圖 4 云應(yīng)用項(xiàng)目結(jié)構(gòu)
由項(xiàng)目結(jié)構(gòu)圖我們可以看到云應(yīng)用項(xiàng)目和普通的ASP.Net項(xiàng)目的不同,云應(yīng)用項(xiàng)目會(huì)產(chǎn)生一個(gè)云應(yīng)用的項(xiàng)目和一個(gè)ASP.Net的項(xiàng)目,云應(yīng)用項(xiàng)目對(duì)ASP.Net項(xiàng)目進(jìn)行引用,同時(shí)云應(yīng)用項(xiàng)目中還包含服務(wù)定義和服務(wù)配置文件,這兩個(gè)文件在配置、運(yùn)行和部署云應(yīng)用時(shí)將要用到。
在Default.aspx頁(yè)面里拖入一個(gè)Label,命名為L(zhǎng)abel1,并在Default.aspx里輸入如下代碼:
在這里,我們開發(fā)云應(yīng)用的步驟就結(jié)束了,整個(gè)開發(fā)過程和開發(fā)ASP.Net沒有任何區(qū)別,我們無(wú)需從零開始學(xué)習(xí)云應(yīng)用開發(fā),這也是微軟云計(jì)算平臺(tái)的一大優(yōu)勢(shì)。
(2) 配置云服務(wù)
開發(fā)完云應(yīng)用程序后,我們就需要對(duì)應(yīng)用進(jìn)行配置。打開ServiceConfiguration.cscfg文件,修改配置文件如下:
在服務(wù)設(shè)置文件中,我們可以定義角色并對(duì)角色進(jìn)行設(shè)置,這里使用默認(rèn)已經(jīng)創(chuàng)建好的角色,只是設(shè)置了實(shí)例的數(shù)量,由“1”改成了“3”。
(3) 生成云服務(wù)
生成云服務(wù)和生成普通的ASP.Net程序完全一樣,點(diǎn)擊Build |Build Solution即可,編譯的過程中,會(huì)對(duì)云應(yīng)用服務(wù)進(jìn)行打包,生成TimeAzure.csx文件,本地Development Fabric會(huì)使用這個(gè).csx文件。
(4) 調(diào)試和運(yùn)行云服務(wù)
點(diǎn)擊Debug | Start Debugging開始對(duì)云應(yīng)用的測(cè)試,但是出現(xiàn)錯(cuò)誤提示,如圖5所示:
圖5 調(diào)試錯(cuò)誤
此錯(cuò)誤的原因是沒有安裝SQL Server Express,點(diǎn)擊安裝后,再次運(yùn)行調(diào)試,彈出初始化存儲(chǔ)服務(wù)界面,如圖6所示:
圖6 初始化開發(fā)存儲(chǔ)數(shù)據(jù)庫(kù)
設(shè)置TimeAzure為啟動(dòng)項(xiàng)目,點(diǎn)擊運(yùn)行或調(diào)試,運(yùn)行或調(diào)試云應(yīng)用的時(shí)候會(huì)啟動(dòng)本地的Development Fabric,它模擬了Windows Azure的服務(wù)。Development Fabric宿駐了你的服務(wù)中所有的Web Role和Worker Role的實(shí)例。要顯示Development Fabric的用戶界面,雙擊系統(tǒng)任務(wù)欄中的Development Storage圖標(biāo),打開窗口如圖7所示:
圖7 Development Fabric窗口
在上圖中顯示了運(yùn)行的服務(wù)的3個(gè)實(shí)例,這3個(gè)實(shí)例也對(duì)應(yīng)了我們?cè)诜?wù)設(shè)置文件里設(shè)置的實(shí)例數(shù),點(diǎn)擊每一個(gè)實(shí)例的窗口,可以查看實(shí)例的詳細(xì)信息。注意當(dāng)停止服務(wù)運(yùn)行或調(diào)試,本地Development Fabric和Storage元素不會(huì)停止,必須手動(dòng)從系統(tǒng)工具欄中停止才行。
(5) 發(fā)布云服務(wù)
生成解決方案后,對(duì)應(yīng)用程序也進(jìn)行了調(diào)試,這些工作完成后就可以發(fā)布云應(yīng)用。將創(chuàng)建一個(gè)包含了所有的服務(wù)組件的.cspkg文件,之后會(huì)連接到Azure Services Developer Portal。要發(fā)布服務(wù),右鍵單擊TimeAzure項(xiàng)目,然后選擇發(fā)布,如圖8所示:
圖 8 發(fā)布云應(yīng)用
這將打開Windows Explorer到解決方案文件夾中的Publish文件夾,如圖9所示:
圖9 發(fā)布云應(yīng)用
在打開publish文件夾的同時(shí)打開Azure Services Developer Portal。在這里我們使用Live ID來(lái)登錄到Azure Services management portal上進(jìn)行部署,在部署時(shí)需要有一個(gè)邀請(qǐng)碼,關(guān)于邀請(qǐng)碼的獲得,以前的方法是直接在Azure的網(wǎng)站上進(jìn)行申請(qǐng)。然后就可以登錄到Developer Portal并按照向?qū)蟼鲬?yīng)用程序到Windows Azure,有關(guān)上傳的步驟這里就不描述了,這是一個(gè)向?qū)降倪^程,把.cscfg和.cspkg上傳就可以了。注意在部署的時(shí)候我們可以部署到生產(chǎn)環(huán)境或者演示環(huán)境,如果只是做一個(gè)Demo,那我們就把云應(yīng)用部署到演示環(huán)境上。有關(guān)云應(yīng)用部署的更詳細(xì)步驟,感興趣的讀者可以參考MSDN:
圖10 部署云應(yīng)用完成
部署完成后,就可以點(diǎn)擊Run來(lái)運(yùn)行我們的云應(yīng)用,這樣所有的機(jī)器就可以通過Internet來(lái)訪問我們的云應(yīng)用了。
小結(jié)
有了微軟云計(jì)算平臺(tái)的支持,微軟官方提供的各種資源,軟件開發(fā)工具與平臺(tái)的支持,使用現(xiàn)有的.Net平臺(tái)軟件開發(fā)技術(shù),作為一個(gè)有一定VS平臺(tái)開發(fā)經(jīng)驗(yàn)的技術(shù)人員來(lái)說,我們開發(fā)云應(yīng)用或云服務(wù)的過程和開發(fā)普通VS Web應(yīng)用程序差不多,只是在部署的時(shí)候有所不同,在部署的過程中,我們需要把編譯生成的文件上傳上去,進(jìn)行一些必要配置就可以通過Internet進(jìn)行訪問了。整個(gè)過程還是比較容易的,看到這里,你是否已經(jīng)對(duì)開發(fā)云應(yīng)用充滿了期待呢,心動(dòng)不如行動(dòng)!