2010-04-14 12 views
14

對周圍所有聰明人的問候!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雲中,但不幸的是,沒有關於拓撲,實例類型或任何其他內容的詳細信息: - (

+0

這將更適合Serverfault.com – 2010-04-14 14:19:48

+0

謝謝,邁克爾,我不知道這個服務器。我已經將問題轉貼到了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

回答

12

我服「幾百個用戶的」從單一的EC2高CPU中實例沒有負載均衡,沒有專門的數據庫服務器,沒有什麼花哨都只需一個盒子。另外我使用的一些服務:

正如我所說,沒有什麼幻想 - 至少在亞馬遜的雲環境中。而一切低於200美元/月。關於定價,你應該小心。亞馬遜在模糊主要成本方面做得很好。例如,在看CloudFront定價時,您可能會看每GB 0,15美元,但忽略每10,000美元0.01美元 - 對於很多請求來說這是一個可笑的小价格,不是嗎?大驚喜:2/3的CloudFront費用是針對請求的(每個請求大約3 KB)。對EBS的I/O請求是一個類似的故事。因爲這將是非常容易的規模(使用更大的實例,移動數據庫Relational Database Service)我建議你開始使用相同的設置。正如你所說,扔更多的盒子非常簡單(假設你的設置支持動態添加/刪除節點)。這使得通過反覆試驗選擇適當的設置變得簡單可行 - 一些徹底的負載測試應該能夠完成這項工作。選擇適合您的預期負載(加上一些額外功率)的功能,並在您有生產數據後立即增加/減少。

這樣的結論:是的,這當然是可能的主辦EC2 :)的Java EE應用程序

編輯:作爲一個側面說明:比較EC2的定價與傳統的主機是比較蘋果和桔子 - 至少長達因爲您沒有爲您的網絡獲得SLA,幾乎無限的可擴展性,沒有硬件問題,幾乎無限的冗餘存儲,不同的可用區域以及一系列額外的服務。如果有人告訴你,傳統託管更便宜,他可能是一個系統管理員擔心他的工作;)不要誤會我的意思,它更便宜 - 但你少一點錢就少得多。

順便說一下,我與亞馬遜沒有任何關係......但我覺得我應該因爲做一名好的發言人而獲得回報,不是嗎? :D

+0

非常感謝您提供寶貴的見解和關於定價的附註!你幫了我很多。 – 2010-04-19 07:39:19

+0

@Jakub我很高興能幫上忙。另一件事是:只要你開始使用亞馬遜的雲服務,在很多情況下投入EC2,S3和更多,這是非常誘人的 - 只是因爲你可以。因此,另一個風險很可能導致成本開支;) – sfussenegger 2010-04-19 10:15:05

+0

還有一件事:如果您的服務不需要100%的正常運行時間,那麼您可能會從現場實例中受益。您通常支付與保留實例類似的小時費用,但沒有初始付款 - 您應該能夠處理(主要是理論上)停機風險。它非常適合將任務提交給SQS隊列的後臺處理(例如數字計算)。我們將結果發佈到S3並使用XMPP PubSub通知訂戶(我們正在考慮轉向SNS)。真的很酷的東西:) – sfussenegger 2010-04-19 10:19:27