全方位比拼 Windows Azure VS VMware vFabric
原創(chuàng)VMware vFabric云應(yīng)用程序平臺(tái):
最近,VMware推出了它自己的云應(yīng)用程序平臺(tái)策略和解決方案,讓開發(fā)者可以更輕松地構(gòu)建和運(yùn)行的現(xiàn)代的應(yīng)用程序,這些現(xiàn)代的應(yīng)用程序可以智能地把工作分配到底層的基礎(chǔ)設(shè)施上,讓應(yīng)用程序的性能達(dá)到最優(yōu),更好地利用服務(wù)和基礎(chǔ)設(shè)施。
這個(gè)云應(yīng)用程序平臺(tái)由Spring Java開發(fā)框架和一些平臺(tái)服務(wù)(其中包括輕量級(jí)的應(yīng)用程序服務(wù)器,全局?jǐn)?shù)據(jù)管理,支持云的消息傳遞,動(dòng)態(tài)的負(fù)載均衡和應(yīng)用程序性能管理)組成。
對(duì)于云來說,更多PaaS(Platform as a Service)解決方案的出現(xiàn)絕對(duì)是一個(gè)利好消息,因?yàn)镻aaS可以給那些想要采用云技術(shù)的組織提供必要的可擴(kuò)展性。
雖然我們對(duì)此表示歡迎,但是我們已經(jīng)有微軟的PaaS平臺(tái)Windows Azure了,它在云應(yīng)用程序開發(fā)領(lǐng)域已經(jīng)根深蒂固了,因此,對(duì)于走在云應(yīng)用程序開發(fā)之路上的企業(yè)來說,對(duì)VMware vFabric和Windows Azure的常見特性做一個(gè)對(duì)比分析是很有現(xiàn)實(shí)意義的。
Windows Azure VS VMware vFabric
多層應(yīng)用程序的設(shè)計(jì)模式
Windows Azure:
Windows Azure目前支持下面這兩種類型的角色:
Web角色:Web角色是專門為編寫IIS7和ASP.NET支持的Web應(yīng)用程序而定制的一種角色。
Worker角色:Worker角色主要用于一般性開發(fā),或者為一個(gè)Web角色執(zhí)行后臺(tái)任務(wù)。
在我的文章《Windows Azure Design Patterns》中解釋了如何使用這個(gè)平臺(tái)來構(gòu)建多層的應(yīng)用程序。
VMware vFabric:
vFabric Enterprise Ready Server(ERS)是VMware vFabric云應(yīng)用程序平臺(tái)的Web服務(wù)器和負(fù)載均衡組件。
vFabric tc Server是VMware vFabric云應(yīng)用程序平臺(tái)核心的運(yùn)行時(shí)服務(wù)器。
從某種意義上來說,ERS和tc Server也可以扮演Web角色和Worker角色那樣的角色。但是我們必需要了解一下它們?cè)趘Fabric可能會(huì)被部署于其上的各種平臺(tái)(例如:force.com)上的按需分配功能。
#p#
開發(fā)平臺(tái)
Windows Azure :
Windows Azure目前支持下面這些編程語(yǔ)言:
因?yàn)閃indows Azure內(nèi)置了.NET Framework,所以它全面支持像C#,VB.NET那樣的主流語(yǔ)言。
不只是編程語(yǔ)言,在Windows Azure上構(gòu)建應(yīng)用程序,開發(fā)者還可以利用上他們現(xiàn)有的Visual Studio經(jīng)驗(yàn)。
大多數(shù)復(fù)雜的任務(wù)(例如:針對(duì)云的發(fā)布,部署)都可以在Visual Studio這個(gè)IDE中,通過簡(jiǎn)單的右擊方式來完成。
VMware vFabric:
如上所述,vFabric是一個(gè)100%的Spring Java開發(fā)框架,目前還不支持其他的編程語(yǔ)言。
SpringSource Tool Suite(STS)為構(gòu)建基于Spring的企業(yè)級(jí)應(yīng)用程序提供了最好的,基于Eclipse的開發(fā)環(huán)境。STS提供的工具支持所有最新的企業(yè)級(jí)Java,基于Spring,Groovy和Grails的技術(shù),以及最先進(jìn)的工具都可以用于企業(yè)級(jí)的OSGi開發(fā)。
但是我們必須要了解這些用于開發(fā)的IDE是怎樣和目標(biāo)云平臺(tái)(例如:vmforce,EC2)進(jìn)行集成的。
#p#
關(guān)系數(shù)據(jù)庫(kù)和NOSQL支持
Windows Azure:
SQL Azure是流行的SQL Server關(guān)系數(shù)據(jù)庫(kù)的云變種,由于具有以下這些特性,它會(huì)繼續(xù)處于領(lǐng)導(dǎo)地位的:
更短的學(xué)習(xí)周期,或者根本就不需要學(xué)習(xí)周期
繼續(xù)使用現(xiàn)有的工具
對(duì)云的支持
豐富的界面和開發(fā)工具支持。
SQL Azure提供了同樣的Tabular Data
和這個(gè)數(shù)據(jù)庫(kù)進(jìn)行通信的Stream interface(TDS)也可以用來訪問內(nèi)部(on-premise)的SQL Server數(shù)據(jù)庫(kù)。因此,使用SQL Azure,開發(fā)者可以使用和構(gòu)建SQL Server客戶端應(yīng)用程序一樣的工具和庫(kù)。
Windows Azure還為非結(jié)構(gòu)化的數(shù)據(jù)提供了NOSQL存儲(chǔ)選項(xiàng):
Binary Large Object(BLOB)Service是使用Windows Azure來存儲(chǔ)文本或二進(jìn)制數(shù)據(jù)的最簡(jiǎn)單方法。
對(duì)于需要附加結(jié)構(gòu)的大量數(shù)據(jù)來說,Table Service會(huì)更合適一些,如果應(yīng)用程序需要使用的數(shù)據(jù)的查詢方式很復(fù)雜,那么它可以很好的發(fā)揮作用。
VMware vFabric:
vFabric GemFire是vFabric云應(yīng)用程序平臺(tái)的數(shù)據(jù)管理組件。
VMware的官方主頁(yè)的說明如下,GemFire融合了各種先進(jìn)的技術(shù)(例如:復(fù)制,分區(qū),數(shù)據(jù)感知路由,連續(xù)查詢),它可以提供一般數(shù)據(jù)庫(kù)無法提供特性:實(shí)時(shí)的,可以靈活擴(kuò)展的數(shù)據(jù)訪問。
使用GemFire,你可以獲得橫向的擴(kuò)展,更快的數(shù)據(jù)吞吐,最小的延遲和持續(xù)可用性,以及一個(gè)數(shù)據(jù)庫(kù)具有的可靠性和數(shù)據(jù)管理能力。
因?yàn)樗且粋€(gè)“內(nèi)存”數(shù)據(jù)庫(kù),并且構(gòu)建在JVM之上,所以,它想要大型數(shù)據(jù)集和數(shù)據(jù)庫(kù)編程便利性(這需要強(qiáng)大的,面向過程的,第4代語(yǔ)言(例如:PL/SQL或TSQL)的支持)方面一鳴驚人還需要一定的時(shí)日。
但是,Gemfire的架構(gòu)展示了許多可擴(kuò)展性方面的特性(如果配置合理的話)。它需要花費(fèi)一定的時(shí)間才能進(jìn)入主流的數(shù)據(jù)庫(kù)編程領(lǐng)域。。我們可能需要密切地關(guān)注新的應(yīng)用案例和這個(gè)模型支持的設(shè)計(jì)模式。
#p#
“內(nèi)部(on-premise)”的整合
Windows Azure :
Windows Azure Appfabric Service Bus提供了安全的消息傳遞和連接功能,讓開發(fā)者可以在云中構(gòu)建分布式的,離散的應(yīng)用程序和跨越“內(nèi)部”(on-premise)和云的混合式應(yīng)用程序。它可以使用各種通信和消息傳遞協(xié)議和模式,讓開發(fā)者完全不用為傳送保障,可靠的消息傳遞和擴(kuò)展而擔(dān)心。
Access Control可以讓你用更簡(jiǎn)單的方式來提供針對(duì)Web應(yīng)用程序和服務(wù)的身份標(biāo)識(shí)和訪問控制,它集成了標(biāo)準(zhǔn)的身份標(biāo)識(shí)提供程序,其中包括各種企業(yè)目錄服務(wù)(例如:Active Directory),和各種Web身份標(biāo)識(shí)(例如:Windows Live ID,Google,Yahoo!和Facebook)。
Microsoft SQL Azure Data Sync目前還處于CTP(Community Technology Preview)階段,它是一個(gè)構(gòu)建在Microsoft Sync Framework之上的,基于云的數(shù)據(jù)同步服務(wù)。它提供了雙向的數(shù)據(jù)同步和數(shù)據(jù)管理功能,有了這些功能,我們可以更加輕松地在多個(gè)SQL Azure數(shù)據(jù)庫(kù)之間共享數(shù)據(jù),或者更加輕松地在內(nèi)部數(shù)據(jù)庫(kù)和SQL Azure數(shù)據(jù)庫(kù)之間共享數(shù)據(jù)。
VMware vFabric:
在現(xiàn)階段,vFabric在這方面的所有屬性都比較差。
RabbitMQ提供了健壯而可靠的跨系統(tǒng)消息傳遞功能,對(duì)于基于云的應(yīng)用程序來說,這是至關(guān)重要的。一個(gè)支持云的消息傳遞服務(wù)可以讓應(yīng)用程序和內(nèi)部(或外部)數(shù)據(jù)中心之間的通信變得更加容易。
但是,在這個(gè)平臺(tái)上,缺少至關(guān)重要的數(shù)據(jù)集成工具。
目前來說,應(yīng)用程序服務(wù)器tcServer可以100%地和Tomcat服務(wù)器兼容。但是,要遷移企業(yè)級(jí)的應(yīng)用程序,企業(yè)級(jí)的應(yīng)用程序服務(wù)器(例如:Web Logic,Web Sphere)的支持是必不可少的。
我們還需要和內(nèi)部的目錄服務(wù),訪問管理程序進(jìn)行安全方面的整合。
#p#
總結(jié)
Java EE是一個(gè)主流的企業(yè)級(jí)平臺(tái),像vFabric這樣的PaaS平臺(tái)的出現(xiàn)是非常令人興奮的。這給現(xiàn)有的,基于Java EE的應(yīng)用程序遷移到云中提供了多種選擇。這里所做的和Windows Azure的對(duì)比分析只針對(duì)新的云應(yīng)用程序或構(gòu)建新的SaaS。我們希望這些平臺(tái)可以添加更多的新特性來推動(dòng)SaaS市場(chǎng)向前發(fā)展。目前,對(duì)于一個(gè)新的應(yīng)用程序來說,Windows Azure才是首選,但是,對(duì)于把現(xiàn)有的Java EE應(yīng)用程序遷移到云中來說,vFabric是一個(gè)更好的選擇。對(duì)于優(yōu)秀的企業(yè)來說,我們一定可以看到它們之間進(jìn)行整合的一面。
原文名:Windows Azure vs VMware vFabric 作者:Srinivasan Sundara Rajan
【本文乃51CTO精選譯文,轉(zhuǎn)載請(qǐng)標(biāo)明出處!】
【編輯推薦】