繼SOA、Web 2.0之后,云計(jì)算成為如今最炙手可熱的IT技術(shù)。正如微軟中國掌門人張亞勤博士所說的那樣,云計(jì)算正在改變整個IT產(chǎn)業(yè)。
那么,究竟什么是云計(jì)算?云計(jì)算為何如此強(qiáng)大呢?我們先來引述一下微軟CEO斯蒂夫鮑爾默的話吧,“云是一種革命性的計(jì)算模式,它把用戶手邊的計(jì)算設(shè)備與超大規(guī)模數(shù)據(jù)中心的處理和存儲能力相連接,把計(jì)算從受限的資源轉(zhuǎn)變?yōu)閹缀鯚o限的平臺,而不管身處何地,都能把用戶與他們需要的信息連接起來。”鮑爾默信心滿滿地指出,要在今年投入95億美金,打造以Windows Azure為核心的云計(jì)算技術(shù),與之相對應(yīng)的是70%的員工投入到云相關(guān)的產(chǎn)品與服務(wù),到明年,這一數(shù)字將變?yōu)?0%。
這讓筆者想到了關(guān)于IT巨頭IBM的一個著名商業(yè)案例。48年前,IBM總裁小沃森投入50億美金研發(fā)IBM 主機(jī)System/360,成為IBM 歷史上最大的商業(yè)豪賭。如今,由System/360演化而來的Z系列成了IBM最賺錢的機(jī)器。
為什么微軟會對Windows Azure如此信心滿滿,而Windows Azure究竟是什么呢?
我知道,按照服務(wù)模型分類,云計(jì)算可分為SaaS,IasS,PaaS。SaaS是目前使用最多的一種服務(wù)模式,用戶按照某種協(xié)議SLA,直接通過網(wǎng)絡(luò)從服務(wù)商獲取軟件服務(wù)。IaaS指的是把IT基礎(chǔ)設(shè)施作為一種服務(wù)通過網(wǎng)絡(luò)對外提供。在這種服務(wù)模式下,用戶不用自己構(gòu)建一個數(shù)據(jù)中心,而是通過租用的方式來使用基礎(chǔ)設(shè)施服務(wù),包括服務(wù)器、存儲和網(wǎng)絡(luò)等。PaaS則是指將一個完整的應(yīng)用程序運(yùn)行平臺作為一種服務(wù)提供給客戶。這種服務(wù)模式下,客戶不需要購買底層硬件與平臺軟件,而只需要利用PaaS平臺,就能夠創(chuàng)建,測試與部署應(yīng)用程序。
Windows Azure Platform本身就是一個PaaS解決方案,為應(yīng)用程序提供托管與運(yùn)行服務(wù)。從體系結(jié)構(gòu)上看,Windows Azure Plaform包括一個云計(jì)算操作系統(tǒng)Windows Azure、云關(guān)系數(shù)據(jù)庫SQL Azure,和一個為開發(fā)者提供的服務(wù)集合.NET Services。對于開發(fā)者而言,既可以在開發(fā)創(chuàng)建應(yīng)用,直接部署到Azure平臺運(yùn)行,也可以使用Azure平臺提供的服務(wù)。Windows Azure Platform的目標(biāo)是為了讓開發(fā)人員可以把重點(diǎn)關(guān)注放在業(yè)務(wù)邏輯上,而不是在部署與管理云服務(wù)的基礎(chǔ)架構(gòu)上,從而節(jié)省了開發(fā)部署的時間和費(fèi)用。
從一個較高的角度來看,理解什么是云計(jì)算操作系統(tǒng)Windows Azure,這其實(shí)并不難:它是一個在云端運(yùn)行Windows應(yīng)用與存儲其數(shù)據(jù)的平臺,向外提供計(jì)算服務(wù)與存儲服務(wù)。Windows Azure運(yùn)行在很多機(jī)器上。這些機(jī)器微軟分布在全球各地的數(shù)據(jù)中心,并且能通過互聯(lián)網(wǎng)訪問。Windows Azure通過Fabric控制器將這些數(shù)量巨大的計(jì)算與存儲資源組織成一個整體。而Windows的計(jì)算服務(wù)與存儲服務(wù)就構(gòu)建在這個Fabric架構(gòu)之上。
下面,我們分別討論一下Windows Azure的計(jì)算服務(wù)與存儲服務(wù)。
Windows Azure的計(jì)算服務(wù)
用戶可以通過Visual Studio,Windows Azure for Visual Studio插件,以及Windows Azure SDK開發(fā),調(diào)試,測試,部署應(yīng)用。例如,使用ASP.NET開發(fā)網(wǎng)站,WCF開發(fā)Web Service,WF開發(fā)工作流等。
Windows Azure將運(yùn)行在該平臺的應(yīng)用稱為托管服務(wù),并被分為不同的角色:Web Role與Worker Role。每一個角色可以有多個實(shí)例,每一個實(shí)例對應(yīng)一臺VM。而背后提供虛擬化服務(wù)的技術(shù)核心是Windows Azure Hypervisor。從這個角度來說,Windows Azure運(yùn)行在數(shù)據(jù)中心的多臺Windows 2008服務(wù)器,借助Hyper-V的定制虛擬化服務(wù),提供云計(jì)算服務(wù)。
簡單地,我們可以把Web Role理解為一個Web站點(diǎn)或者Web服務(wù)。而Worker Role則用來托管通用代碼,這些代碼用來執(zhí)行一些長期的,非交互的任務(wù)。比如Worker Role可用來托管Apache Tomcat。
Web Role與Worker Role對應(yīng)的實(shí)例都是獨(dú)立運(yùn)行在不同的虛擬機(jī)上,其通信機(jī)制既可以是同步式的直接網(wǎng)絡(luò)調(diào)用,也可也是消息隊(duì)列服務(wù)式異步傳遞。
關(guān)于Web Role與Worker Role的管理,是通過一個稱為Windows Azure SDK的API實(shí)現(xiàn)的。這些API作為Windows Azure SDK的一部分,可用于在本地開發(fā)Windows Azure 應(yīng)用程序。
Windows Azure的存儲服務(wù)
Windows Azure的存儲服務(wù)是一個可擴(kuò)展的、高可用性的持久化服務(wù),可以存儲任何類型的應(yīng)用程序數(shù)據(jù)。按類型劃分,Windows Azure存儲服務(wù)可分為:
大型二進(jìn)制對象Blob:Blob為存儲大型的二進(jìn)制對象而設(shè)計(jì),例如圖片,視頻,音頻文件等。
Windows Azure Drive:提供了一個存儲在Windows Azure的虛擬硬盤,可讓用戶像操作NTFS硬盤一樣讀寫數(shù)據(jù)。
表:與關(guān)系數(shù)據(jù)庫對應(yīng),用于存儲數(shù)據(jù)巨大而結(jié)構(gòu)相對簡單的數(shù)據(jù)。
消息隊(duì)列:為可靠的異步消息傳遞而設(shè)計(jì)的數(shù)據(jù)類型。
總結(jié)
未來幾月,微軟將重點(diǎn)開發(fā)新一代Windows Azure云平臺,目標(biāo)是促進(jìn)Windows Azure從PaaS向LaaS的云服務(wù)戰(zhàn)略轉(zhuǎn)型,微軟將從三個方面重點(diǎn)發(fā)力,調(diào)整Azure平臺的虛擬機(jī)實(shí)現(xiàn)方式,實(shí)現(xiàn)用戶能夠在Windows和Linux虛擬機(jī)中自由運(yùn)行,實(shí)現(xiàn)SQL Server與SharePoint應(yīng)用;Windows Azure將新增持久化功能;新增虛擬機(jī)運(yùn)行Linux。我們也期待Windows Azure的計(jì)算服務(wù)與存儲服務(wù)越來越好。