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