本博客遷移到部署在jae上的獨立博客系統wordpress,博客地址:點擊打開獨立博客。歡迎你們一塊兒來討論IT技術。算法
如今不少企業都在搭建本身的私有PAAS平臺,固然也有不少大型互聯網公司搭建共有PAAS平臺(例如SAE/BAE/JAE(jae.jd.com))。那麼使用PAAS平臺來部署SAAS應用有哪些好處呢?除了你們都知道方便部署管理,節約資源和成本,今天我主要給你們介紹另外一個好處就是讓部署在PAAS平臺上的應用很容易作到7×24小時不服務器運行(哪怕須要從新部署和更新應用),這個對於通常的企業和普通開發者來講是很難辦到的。固然若是要在PAAS平臺作到其實也不是那麼簡單的,須要很強的技術力量。下面就主要介紹一下在PAAS平臺怎樣實現讓部署在PAAS平臺上的應用達到7×24小時運行的方案。服務器
在介紹方案設計以前須要強調一下,這個前提是PAAS平臺自己是7×24小時高可靠的。網絡
本方案設計主要涉及下面幾方面的改進:app
(1)應用運行調度模塊:可以將應用的多個實例調度到不一樣的服務器和機架上進行運行;wordpress
(2)應用運行狀態的監控模塊:對應用的運行情況進行監控;設計
(3)優雅重啓應用模塊:可以在應用從新部署和升級時不停服務;blog
一,首先咱們來看看調度模塊內存
調度模塊應該是PAAS平臺(不論是私有仍是共有的)標配,只是不一樣的PAAS平臺有本身特點的調度方法和策略,例如根據服務器資源使用來調度(這個裏面有涉及到各類資源的調度,例如根據CPU或者內存等),或者根據部署的應用個數來調度。固然好的調度策略絕對不僅使用一種評判標準來做爲調度的策略,確定是結合各類狀況考慮。由於今天主要介紹的是應用的高可靠性,因此主要介紹怎樣經過調度算法保證應用的高可靠性。假如應用爲了提升本身的服務能力和可靠性運行了3個實例,那麼怎麼的調度算法是最佳的(僅僅針對高可靠性這一點來講的)?咱們都知道設計一個高可靠性系統都會考慮到服務器出問題和網絡(交換機)出問題,因此調度模塊爲了保證這個應用的高可靠性應該須要保證這三個實例應用不在同一個服務器上運行,同時保證三個實例不該該在同一個機架下運行,固然若是有條件的PAAS平臺能夠考慮跨數據中心調度(不過應該沒有幾個PAAS平臺可以作到跨數據中心部署PAAS平臺上的應用)。資源
要作到上面說的調度結果,調度模塊應該可以知道全部部署應用的服務器的部署狀況,或者至少可以經過某種方法查詢到。我相信全部的PAAS都應該有資源管理模塊(或者叫作PAAS平臺的服務器監控模塊)可以提供這些信息。除了知道服務器的部署狀況,調度模塊應該還須要可以知道或者查詢到某一個應用實例運行在哪一臺服務器上,由於只有這樣調度模塊纔可以保證不會把後面的實例調度到同一個服務器上。例如應用啓動三個實例,已經啓動2個實例了,還須要啓動第三個實例,那麼調度模塊啓動第三個實例以前須要知道其餘連個實例運行的服務器和機架,這樣才能保證把第三個實例調度到其餘機架上去運行。一樣若是應用運行的三個實例,忽然某個時候其中一個實例掛掉了,那麼須要把第三個實例從新運行起來,仍是須要使用調度模塊來完成不一樣服務器和不一樣機架的調度。至於調度模塊怎麼知道掛掉了一個實例,這個不是調度模塊關心的事情,下面介紹的應用運行狀態監控模塊會很好的解決這個問題。開發
預知方案設計完整詳情,請移步本人獨立博客,謝謝。這篇博客的地址是:點擊打開這篇文章