對周圍所有聰明人的問候!Cloud是否準備好用於Enterprise Java Web應用程序?尋求Java EE託管建議
我想問問將Java企業Web應用程序部署到雲如Amazon EC2是否可行或好主意。更確切地說,我正在尋找一款應用程序的基礎架構選項,該應用程序可處理少數幾百個用戶,但無論是CPU還是內存密集型會話。我正在考慮專用服務器,虛擬專用服務器(VPS)和EC2。我注意到有一個名爲JBoss Cloud的項目,所以人們正在致力於實現這樣的部署,但另一方面,它似乎還不成熟,我不確定雲已經準備好了這種類型的應用程序,它不同於典型的基於雲的應用程序,如Twitter。你會推薦將其部署到雲嗎?優缺點都有什麼?
該應用程序是一個Java EE 5 Web應用程序,其主要功能是使用戶能夠通過組合可用部件來組合自己的定製產品。它使用無狀態和有狀態會話bean和JPA將實體持久化到RDBMS,並通過Web服務從公司的庫存系統中提取有關部件的信息。除了外部用戶外,其他少數內部用戶也會使用這些內部用戶,他們會根據公司的LDAP進行身份驗證。應用程序應該處理大約300-400個併發用戶構建他們的產品,並且應該具有合理的可擴展性和可用性,儘管這些特性在這個階段只是中等重要的。我已經提出了一個由防火牆(FW)和支持粘性會話和https的負載平衡器組成的體系結構(在雲中,這將替換爲EC2的Elastic Load Balancing服務和應用服務器上的FW,在物理負載均衡器將是硬件),然後將兩個物理集羣應用程序服務器與Web服務器結合使用(以便在出現故障時用戶不會丟失其長期生成的產品),最後是數據庫服務器。數據庫服務器需要一個從屬備份實例,如果它失敗,可以替換主實例。這應該提供合理的可用性和容錯性,並且只要單個RDBMS能夠與負載保持一致,就可以提供良好的可伸縮性,這應該可以保持一段時間,因爲大部分操作都是在內存中使用有狀態bean完成的,並且只是偶爾存儲或從數據庫中檢索,數據量也很低。有問題的部分可能是依賴於遠程庫存系統web服務,但在應用程序中對其輸出進行很好的緩存時,它應該也可以。
不幸的是,我對系統資源(CPU /內核的內存大小,數量和速度)只有幾百個用戶需要這種「平均Java EE應用程序」的模糊想法。根據亞馬遜的實際情況,我的粗略和基本沒有根據的估計是1.7GB和一個2.5GHz主頻(高CPU中等實例)的單核2核「現代CPU」應該足夠用於兩個應用服務器中的任何一個(因爲我們可以通過提供更多的資源來處理更高的負載)。或者我會考慮使用大型實例(64B,7.5GB RAM,2個核心爲1GHz)
所以我的問題是這樣的部署到雲中是否有技術和經濟上可行或專用/ VPS服務器是否會是一個更好選項以及是否有一些類似的實際經驗。
非常感謝!/Jakub Holy
PS:我發現JBoss EAP in a Cloud Case Study表明可以將真實世界的Java EE應用程序部署到EC2雲中,但不幸的是,沒有關於拓撲,實例類型或任何其他內容的詳細信息: - (
這將更適合Serverfault.com – 2010-04-14 14:19:48
謝謝,邁克爾,我不知道這個服務器。我已經將問題轉貼到了Serverfault.com - http://serverfault.com/questions/132325/is-the-cloud-ready-for-an-enterprise-java-web-application-seeking-a-jee-hosting – 2010-04-14 14:44:22