【IT168 專(zhuān)稿】微軟的Windows Azure云計算平臺自從2月份發(fā)布收費版以來(lái),使用的人數正在膨脹。就在上周達到了1000個(gè)收費用戶(hù);而且,Azure正在不斷改進(jìn),目的是成為剛起步的云計算市場(chǎng)的有力競爭者。

盡管Google、Amazon和微軟提供的云計算產(chǎn)品大體上比較相似——他們分別提供各自的“計算(例如應用軟件)”和“存儲”塊——但是這些服務(wù)的提供方式確實(shí)截然不同的。當然,除了這三家,還有一些其他的廠(chǎng)商,但是這三個(gè)家喻戶(hù)曉的名字是這個(gè)市場(chǎng)上具有很大的代表性的,并且,事實(shí)證明,這三家廠(chǎng)商在市場(chǎng)采用和影響方面都是最重要的。
云計算入門(mén)
云計算領(lǐng)域的一大重頭產(chǎn)品是Amazon的彈性計算云(Elastic Compute Cloud http://aws.amazon.com/ec2/,EC2),EC2可以讓用戶(hù)選擇他們虛擬機上的操作系統,并對所選的操作系統進(jìn)行配置??蛻?hù)甚至可以創(chuàng )建并上傳自己的鏡像。軟件可以在任何可以在鏡像上運行的環(huán)境中運行。這些鏡像可以使用SSH,遠程桌面或其他更好的機制進(jìn)行管理和配置。想在虛擬機上安裝軟件么?只需運行安裝程序就可以了。
云計算領(lǐng)域的另一典型代表是Google的App Engine。App Engine軟件運行在沙盒中,僅僅提供有限的底層操系統的訪(fǎng)問(wèn)。應用程序的編寫(xiě)語(yǔ)言只能是java(至少是JVM的目標語(yǔ)言)或者是Python2.5。沙盒阻止了一些基本的操作,如寫(xiě)磁盤(pán)或打開(kāi)網(wǎng)絡(luò )socket。
處于EC2和Google App Engine之間的是微軟的Window Azure。在A(yíng)zure中,沒(méi)有對操作系統的直接訪(fǎng)問(wèn),也不能直接訪(fǎng)問(wèn)運行在OS之上的軟件——它就像是Windows的變種,它優(yōu)化了可擴展性,在.NET的運行時(shí)環(huán)境下運行類(lèi)似IIS的Web服務(wù)卻沒(méi)有Google環(huán)境下那么多限制,盡管.NET是更好的開(kāi)發(fā)平臺,它支持PHP、Java、有必要的時(shí)候還可以采用本地編碼。唯一的限制是軟件必須是無(wú)需安裝就可以部署,即它不支持簡(jiǎn)單的復制到目錄然后運行。
存儲系統是十分多變的。Amazon有四個(gè)存儲系統,第一個(gè)是使用最廣泛的簡(jiǎn)單存儲服務(wù)(Simple Storage Service,S3),S3提供了簡(jiǎn)單的名字值匹配,這個(gè)值可以是一個(gè)大小高達5GB的BLOB(Binary Large Object,二進(jìn)制大對象)。第二個(gè)是彈性塊存儲(Elastic Block Store,EBS),EBS提供的是虛擬的塊設備,這些設備可以像硬盤(pán)一樣被格式化,并用來(lái)存儲有規律的文件。Amazon的第三個(gè)存儲系統是關(guān)系數據服務(wù)(Relational Database Service ,RDS),RDS提供的是MySQL數據庫。最后一個(gè)是數據庫系統是SimpleDB。
SimpleDB是一個(gè)非關(guān)系型數據庫;它采用一種非關(guān)系形的表格存儲數據。與常規的關(guān)系型數據庫相類(lèi)似,這些表格所存儲的每一個(gè)條目(客戶(hù)、訂單、地址等等)都有自己的屬性(因此,一個(gè)客戶(hù)可能會(huì )有一個(gè)姓名、地址和一個(gè)電話(huà)號碼)。與典型的數據庫不同的是,SimpleDB可以不刷新表格中現有的記錄就可以添加新的屬性。表與表之間沒(méi)有關(guān)系,也不支持關(guān)系型數據庫中的連接。如果應用程序要訪(fǎng)問(wèn)與另一個(gè)表相對應的一個(gè)表中的數據,他們將不得不進(jìn)行手工的查找。
刪減掉這些特征的原因是通過(guò)減少關(guān)系型數據庫的所有限制,運供應商就可以更靈活地實(shí)現查詢(xún)優(yōu)化和數據存儲。盡管限制這些特征,對一些有過(guò)關(guān)系數據庫開(kāi)發(fā)背景的人來(lái)說(shuō)很艱難,但是對許多應用來(lái)說(shuō)還是足夠豐富了。
Google提供的主要存儲方案是它的datastore【http://code.google.com/intl/zh-CN/appengine/docs/python/datastore/overview.html】,datastore和SimpleDB一樣廣泛。Google還提供另外一種服務(wù),叫做blobstore,類(lèi)似于S3的服務(wù)。這家公司的標準的App Engine服務(wù)不支持SQL數據庫的特征,但是,Google打算為商業(yè)版的App Engine平臺的客戶(hù)提供關(guān)系型數據庫服務(wù),現在預覽版已經(jīng)上線(xiàn)。
微軟的存儲產(chǎn)品線(xiàn)與Amazon的大體差不多。Azure Storage既包括類(lèi)似S3的專(zhuān)用二進(jìn)制存儲,又有類(lèi)似SimpleDB的類(lèi)似表單的存儲。它還提供了特殊的VHD磁盤(pán)印象的支持,這些磁盤(pán)印象可以像驅動(dòng)一樣掛載,這類(lèi)似于Elastic Block Store。最后,微軟還有一個(gè)叫做SQL Azure的SQL服務(wù)器,SQL Azure為云端應用提供了幾乎所有的SQL Server的特性。
除了常規的存儲選擇之外,Amazon和Microsoft都提供了隊列服務(wù)。隊列服務(wù)允許信息以一種可靠地、不同時(shí)的方式在應用軟件間被交換。應用軟件編輯者將信息導入列隊,然后應用軟件使用者能這空閑時(shí)很快的從列隊中讀出這些信息。
由于設計決策不同,不同的平臺所優(yōu)化的應用也不同。EC2使得在云環(huán)境中部署“常規”軟件變得簡(jiǎn)單:將軟件安裝到鏡像中,使用EBS磁盤(pán)存儲數據,甚至可以對應用一無(wú)所知。相反,App Engine平臺上的應用,必須是為該平臺專(zhuān)門(mén)創(chuàng )建的。
Azure處于兩者之間?,F有的Web應用,特別是使用ASP.NET創(chuàng )建的應用,可以很容易地遷移到Azure上。他們可以使用常規的SQL 服務(wù)器(或類(lèi)似的其他服務(wù)器),有必要的話(huà),他們還可以使用本地遺留的代碼,但是這個(gè)平臺去掉了許多傳統的管理任務(wù),如操作服務(wù)器、管理數據庫等。
Azure似乎也吸引了許多微軟的用戶(hù),盡管可擴展性是人們最常說(shuō)的云計算的優(yōu)勢,但是大約有一半的Azure設備都是單實(shí)例的。這意味著(zhù),一個(gè)應用程序僅僅部署在一個(gè)虛擬機上,Azure被用作一種減少常規應用的運營(yíng)成本,而不是用來(lái)多機器的快速簡(jiǎn)單擴展。
這對我來(lái)說(shuō)當然也很有吸引力。雖然我不能算是一個(gè)真正的Web app開(kāi)發(fā)者,但是Azure使得我能夠使用現有的.NET技術(shù),并且不用管系統管理,確實(shí)是很有誘惑力。所以,讓我們一起來(lái)體會(huì )Azure的開(kāi)發(fā)細節吧!
聯(lián)系客服