PAAS平台構建7×24小時高可用應用的方案設計


本博客遷移到部署在jae上的獨立博客系統wordpress,博客地址:點擊打開獨立博客。歡迎大家一起來討論IT技術。

 

現在很多企業都在搭建自己的私有PAAS平台,當然也有很多大型互聯網公司搭建共有PAAS平台(例如SAE/BAE/JAE(jae.jd.com))。那么使用PAAS平台來部署SAAS應用有哪些好處呢?除了大家都知道方便部署管理,節約資源和成本,今天我主要給大家介紹另一個好處就是讓部署在PAAS平台上的應用很容易做到7×24小時不服務器運行(哪怕需要重新部署和更新應用),這個對於一般的企業和普通開發者來說是很難辦到的。當然如果要在PAAS平台做到其實也不是那么簡單的,需要很強的技術力量。下面就主要介紹一下在PAAS平台怎樣實現讓部署在PAAS平台上的應用達到7×24小時運行的方案。

在介紹方案設計之前需要強調一下,這個前提是PAAS平台本身是7×24小時高可靠的。

本方案設計主要涉及下面幾方面的改進:

(1)應用運行調度模塊:能夠將應用的多個實例調度到不同的服務器和機架上進行運行;

(2)應用運行狀態的監控模塊:對應用的運行狀況進行監控;

(3)優雅重啟應用模塊:能夠在應用重新部署和升級時不停服務;

一,首先我們來看看調度模塊

調度模塊應該是PAAS平台(不管是私有還是共有的)標配,只是不同的PAAS平台有自己特色的調度方法和策略,例如根據服務器資源使用來調度(這個里面有涉及到各種資源的調度,例如根據CPU或者內存等),或者根據部署的應用個數來調度。當然好的調度策略絕對不只使用一種評判標准來作為調度的策略,肯定是結合各種情況考慮。因為今天主要介紹的是應用的高可靠性,所以主要介紹怎樣通過調度算法保證應用的高可靠性。假如應用為了提高自己的服務能力和可靠性運行了3個實例,那么怎么的調度算法是最佳的(僅僅針對高可靠性這一點來說的)?我們都知道設計一個高可靠性系統都會考慮到服務器出問題和網絡(交換機)出問題,所以調度模塊為了保證這個應用的高可靠性應該需要保證這三個實例應用不在同一個服務器上運行,同時保證三個實例不應該在同一個機架下運行,當然如果有條件的PAAS平台可以考慮跨數據中心調度(不過應該沒有幾個PAAS平台能夠做到跨數據中心部署PAAS平台上的應用)。

要做到上面說的調度結果,調度模塊應該能夠知道所有部署應用的服務器的部署情況,或者至少能夠通過某種方法查詢到。我相信所有的PAAS都應該有資源管理模塊(或者叫做PAAS平台的服務器監控模塊)能夠提供這些信息。除了知道服務器的部署情況,調度模塊應該還需要能夠知道或者查詢到某一個應用實例運行在哪一台服務器上,因為只有這樣調度模塊才能夠保證不會把后面的實例調度到同一個服務器上。例如應用啟動三個實例,已經啟動2個實例了,還需要啟動第三個實例,那么調度模塊啟動第三個實例之前需要知道其他連個實例運行的服務器和機架,這樣才能保證把第三個實例調度到其他機架上去運行。同樣如果應用運行的三個實例,突然某個時候其中一個實例掛掉了,那么需要把第三個實例重新運行起來,還是需要使用調度模塊來完成不同服務器和不同機架的調度。至於調度模塊怎么知道掛掉了一個實例,這個不是調度模塊關心的事情,下面介紹的應用運行狀態監控模塊會很好的解決這個問題。

 

預知方案設計完整詳情,請移步本人獨立博客,謝謝。這篇博客的地址是:點擊打開這篇文章


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM