簡體   English   中英

使用Cloud PaaS會自動解決可擴展性問題嗎?

[英]Will using a Cloud PaaS automatically solve scalability issues?

我目前正在尋找一個Cloud PaaS,它允許我擴展應用程序以處理1個用戶和1千萬+用戶之間的任何事情......我從來沒有做過任何這么大的事情,而且我似乎無法做到的大問題得到一個明確的答案是,如果你開發,讓我們說一個標准的應用程序與關系數據庫和soap-webservices,這個應用程序將部署在Paas解決方案時自動擴展,還是你仍然需要構建應用程序與秋天,冗余和所有這些事情?

假設我將一個Spring Hibernate應用程序部署到Amazon EC2並且我創建了安裝了Tomcat的單個Ubuntu Server實例,這個應用程序是無限擴展還是需要更多Ubuntu實例? 如果需要多個Ubuntu實例,亞馬遜是否會負責在兩個實例上運行應用程序,或者這是開發人員的責任嗎? 那么數據庫存儲呢,我可以在EC2上安裝一個隨着數據庫的增長而擴展的數據庫,或者我是否需要使用其中一個API而不是無限期擴展?

CloudFoundry允許您在本地構建並直接部署到他們的PaaS,但由於它處於測試階段,因此我可以使用的資源數量有限制,如果我沒記錯的話,數據庫限制為128MB,所以現在暫不行。 有人建議在Amazon EC2上安裝CloudFoundry,它如何擴展以及如何處理數據庫層?

GAE(谷歌應用引擎),這將允許我只是部署一個應用程序,而不必擔心它如何擴展和實現冗余? 你可以和不能在GAE上運行的東西似乎存在一些限制,而且他們的價格上漲最近讓很多開發人員感到不安,與其他提供商相比,它真的那么昂貴嗎?

所以基本上,它會擴展嗎?需要做些什么才能使其擴展?

對於一篇文章來說,這是很多問題。 無論如何:

  1. Amazon EC2無法隨負載自動擴展。 EC2基本上只是一個虛擬機。 您可以使用Auto ScalingElastic Load Balancing實現EC2實例的擴展

  2. SQL數據庫的擴展性很差。 這就是人們首先開始使用NoSQL數據庫的原因。 最好看看您的雲提供商提供哪個數據庫作為托管服務:GAE上的數據存儲區和亞馬遜上的DynamoDB

  3. 在EC2實例上安裝自己的數據庫是非常不切實際的,因為EC2具有臨時存儲 (它在重新啟動時會丟失“磁盤”上的所有數據)。

  4. GAE數據存儲實際上是運行在其上的所有應用程序的一個大數據庫。 所以它具有相當的可擴展性 - 您的百萬用戶不應該成為它的問題。 http://highscalability.com/blog/2011/1/11/google-megastore-3-billion-writes-and-20-billion-read-transa.html

  5. 是App Engine自動擴展,前端實例和數據庫。 沒有什么特別的,你需要做它才能擴展,只需使用他們的API。

  6. 您可以使用AppEngine進行限制:

    A.沒有本地存儲(文件系統) - 您需要使用數據存儲區或Blobstore。

    B. Comet僅通過其專有的Channels API支持

    C.數據存儲區是一個NoSQL數據庫:沒有JOIN,有限的查詢,有限的事務。

  7. GAE的成本也不錯。 我們每天要做大約5美元的1M請求。 最大的節省來自於您不需要GAE上的系統管理員(但您確實需要一個EC2)。 與人力成本相比,GAE非常便宜。

省錢的一些提示(加快速度)GAE:

A.在數據存儲區中使用get而不是查詢(需要仔細制作natiral鍵)。

B.使用memcache緩存從數據存儲區獲得的數據。 這可以通過objectify自動完成,它是@Cached注釋

C.非規范化數據。 這意味着您在各個地方冗余地寫入數據,以便盡可能少地進行操作。

D.如果您有很多來自設備的REST請求,那么您不使用cookie,那么請關閉會話支持(或者像我們一樣滾動自己的會話支持)。 會話使用引擎蓋下的數據存儲區以及它所獲取和放置的每個請求。

E.閱讀有關調整應用設置的信息 嘗試不同的設置(取決於您的應用程序對請求延遲和流量模式/峰值的容忍程度)。 我們能夠將前端實例減少70%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM