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