專利名稱:提高PaaS平臺可用性的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及云計算平臺領(lǐng)域,具體來說涉及一種私有云的實現(xiàn)方法,尤其涉及一種提高PaaS平臺可用性的方法。
背景技術(shù):
云計算(CloudComputing)是虛擬化(Virtualization)、效用計算(UtilityComputing)、IaaS (基礎(chǔ)設(shè)施即服務(wù))> PaaS (平臺即服務(wù)),SaaS (軟件即服務(wù))等概念混合演進并躍升的結(jié)果,云計算是一種按照用戶需求、便利地通過網(wǎng)絡(luò)獲取計算資源的計算模式,這些資源可以來自一個共享的、可配置的資源池,并能夠快速地獲取和釋放,它提供了一個全新的互聯(lián)網(wǎng)商業(yè)服務(wù)模型,即用戶可以通過網(wǎng)絡(luò)以按需、易擴展的方式租用所需的服務(wù)。云計算技術(shù)利用高速互聯(lián)網(wǎng)的傳輸能力,將計算、存儲、軟件、服務(wù)等資源從分散的個人計算機或服務(wù)器移植到互聯(lián)網(wǎng)中集中管理的大規(guī)模高性能計算機、個人計算機、虛擬計算機中,從而使用戶像使用電力一樣使用這些資源。采用云計算的模式能夠提高計算效率和資源的可用性。云計算有三個顯著特點一是按需租用;二是在廣大范圍的用戶廣泛協(xié)同及資源共享;三是資源有效的調(diào)配。目前,云計算按照數(shù)據(jù)的面向?qū)ο罂梢苑譃楣性?、私有云、混合云。公有云是為公共普通客戶使用而?gòu)建的,計算資源為所有的人共享。私有云是為一個客戶或者企業(yè)單獨使用而構(gòu)建的,因而提供對數(shù)據(jù)、安全性和服務(wù)質(zhì)量有更高的要求?;旌显剖枪性坪退接性频幕旌戏?wù)模式。目前云計算領(lǐng)域主要分為下面三種,即SaaS(Software-as-a_Service)軟件即服務(wù);PaaS (Plartform—as-a—Service)平臺即月艮務(wù);IaaS (Infrastructure-as-a-Service)基礎(chǔ)設(shè)施即服務(wù)。SaaS是Software-as-a-service (軟件即服務(wù))的簡稱,是隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展開始出現(xiàn)并興起的一種全新的軟件應(yīng)用模式,是云計算領(lǐng)域發(fā)展最成熟、應(yīng)用最廣泛的服務(wù)。它本質(zhì)上只是應(yīng)用軟件的傳送/按需式利用,例如,由數(shù)千顧客通過瀏覽器同時訪問的電子郵件應(yīng)用程序。通過SaaS軟件用戶只需要可以訪問互聯(lián)網(wǎng)就能使用軟件?;赟aaS的軟件大大降低了軟件,尤其是大型軟件的安裝使用成本。軟件托管在服務(wù)提供商服務(wù)器上,減少了客戶的管理維護成本,可靠性也更高。Salesforce. com是SaaS模式的典型代表。PaaS是Platform-as-a-Service(平臺即服務(wù))的簡稱,是把應(yīng)用服務(wù)器、數(shù)據(jù)庫等基礎(chǔ)平臺作為一種服務(wù)提供的模式。PaaS平臺可以將操作系統(tǒng)、應(yīng)用開發(fā)環(huán)境等平臺級產(chǎn)品服務(wù)的方式提供給用戶,用于允許開發(fā)人員部署在基于云的基礎(chǔ)設(shè)施上托管的應(yīng)用。通過PaaS服務(wù),應(yīng)用開發(fā)人員在無需關(guān)注底層的中間件平臺與其他資源的前提下就可以開發(fā)程序。并且不需關(guān)注底層中間平臺的運營維護。PaaS降低了應(yīng)用開發(fā)團隊的維護成本,提升了企業(yè)內(nèi)部的資源的利用率。PaaS平臺對應(yīng)用開發(fā)團隊提供了強大而穩(wěn)定的基礎(chǔ)運營平臺,以及專業(yè)的技術(shù)支持隊伍,優(yōu)質(zhì)的平臺級服務(wù)保證支撐應(yīng)用系統(tǒng)長時間、穩(wěn)定的運行。IaaS是Infrastructure-as-a-Service (基礎(chǔ)設(shè)施即服務(wù))的簡稱,是把數(shù)據(jù)中心、基礎(chǔ)設(shè)施硬件資源通過Web分配給用戶使用的商業(yè)模式。其中為客戶端提供虛擬服務(wù)器和/或按需式資源、如存儲裝置,根據(jù)需要對它們付費,與消費實用程序資源相似。通常的PaaS平臺架構(gòu)如圖I所示,主要組件中的負載均衡器對于平臺中的每一個應(yīng)用程序,來自客戶端的請求將會被其根據(jù)一定的規(guī)則轉(zhuǎn)發(fā)到其后的Web服務(wù)器或者應(yīng)用服務(wù)器;Web服務(wù)器,用于平臺上應(yīng)用程序的部署。對于基于Java/Ruby的應(yīng)用程序,這部分通常使用應(yīng)用程序服務(wù)器,在本文中不區(qū)分這兩者,因為他們之間的區(qū)別并不影響我們的描述。數(shù)據(jù)庫服務(wù)器,用來存儲應(yīng)用的數(shù)據(jù)。一般的網(wǎng)站或者基于web多層應(yīng)用程序架構(gòu)如圖I所示,這個架構(gòu)在大多數(shù)情況下表現(xiàn)良好。盡管圖中只描述一個負載均衡服務(wù)器,但在實際中目前有大量成熟的集群方式來解決高可用性,以及負載均衡的問題。傳統(tǒng)的PaaS平臺架構(gòu)中,所有的應(yīng)用程序均部署于該平臺上,對于每一個應(yīng)用的新增,刪除以及變 更,通常都由管理員去手工配置相關(guān)服務(wù)器的配置文件,然后使其生效,這就造成了大量的管理負擔(dān)。申請?zhí)枮?01110219673. 2的中國專利文獻公開了一種PaaS云平臺的資源調(diào)度方法,PaaS云平臺中管理節(jié)點檢測各子節(jié)點的負載情況,對于負載超過閾值的子節(jié)點,將所述子節(jié)點中負載開銷最大的應(yīng)用,重新部署到負載最輕且未部署所述應(yīng)用的子節(jié)點,該申請能夠在資源調(diào)度時保證應(yīng)用服務(wù)質(zhì)量,減少應(yīng)用副本遷移的信令開銷,實現(xiàn)PaaS云平臺的負載均衡。但是該技術(shù)未解決服務(wù)器配置文件的自動化處理問題,對于實例的增刪都需要手工進行配置,造成了大量的資源浪費。申請?zhí)枮?01110453030. 4的中國專利文獻公開了一種基于云計算的PaaS平臺系統(tǒng)及其實現(xiàn)方法,該系統(tǒng)統(tǒng)包括有服務(wù)請求管理模塊、SaaS應(yīng)用系統(tǒng)、服務(wù)發(fā)布系統(tǒng)、云操作系統(tǒng)、市場銷售管理系統(tǒng)、云計算服務(wù)和云計算硬件虛擬化框架;利用云操作系統(tǒng)對服務(wù)器集群進行硬件虛擬化,然后根據(jù)應(yīng)用系統(tǒng)不同要求配置不同的操作系統(tǒng),對硬件資源進行動態(tài)、統(tǒng)一地分配管理;同時使不同系統(tǒng)的用戶綁定不同的用戶認證證書,采用實時加解密的主動加密防泄密,對集成在PaaS平臺上的應(yīng)用系統(tǒng)權(quán)限進行控制。本發(fā)明解決個系統(tǒng)獨立性、安全性和資源高效利用問題,可以應(yīng)用于云計算的PaaS平臺系統(tǒng)中。該技術(shù)也未解決服務(wù)器配置文件的自動化處理問題。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)中的上述不足,本發(fā)明的目的在于提供一種自動處理PaaS平臺中應(yīng)用程序的方法,提出一種自動處理PaaS平臺中應(yīng)用程序的增刪改查而無需平臺管理員參與的方法,從而提供一種可以為公司或者組織內(nèi)部的PaaS平臺提供高可用性的方法。為了達到上述目的,本發(fā)明提出的方法包括應(yīng)用實例初次啟動,增加應(yīng)用實例和移除應(yīng)用實例,其特征在于該方法具體包括以下步驟確定應(yīng)用部署的實例的數(shù)目以及應(yīng)用的域名;當開發(fā)者將該應(yīng)用上傳到PaaS平臺的某一個共享存儲器上時,PaaS系統(tǒng)會向平臺內(nèi)的所有服務(wù)器資源池發(fā)布消息,PaaS平臺上的服務(wù)器收到消息后,判斷其是否滿足應(yīng)用所需要的軟件環(huán)境、硬件資源,以及是否已經(jīng)部署過該實例;如果收到消息的服務(wù)器滿足應(yīng)用需要的條件,該服務(wù)器通知PaaS平臺將應(yīng)用部署在該服務(wù)器上,并通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口 ;根據(jù)應(yīng)用需要部署的實例數(shù)N,PaaS平臺獲取并解析前N個收到的消息,并且根據(jù)消息內(nèi)容在目標應(yīng)用服務(wù)器上部署并且啟動應(yīng)用實例;當實例啟動成功時,該實例所在的服務(wù)器使用消息通知PaaS平臺該應(yīng)用實例已經(jīng)成功啟動,PaaS平臺獲取并且解析該成功啟動消息,根據(jù)消息內(nèi)容對負載均衡器的轉(zhuǎn)發(fā)策略進行更新;當系統(tǒng)需要增加一個實例時,PaaS系統(tǒng)向平臺內(nèi)的所有服務(wù)器資源池發(fā)布消息,PaaS平臺上的服務(wù)器收到消息后,判斷服務(wù)器是否滿足應(yīng)用需要的條件,若滿足條件,則通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口,PaaS平臺根據(jù)獲取到的信息更新負載均衡器的轉(zhuǎn)發(fā)策略;當應(yīng)用需要刪除一個實例時,部署應(yīng)用實例的物理服務(wù)器在成功停止運行的實例后,向PaaS平臺發(fā)送消息通知該實例已經(jīng)停止,PaaS平臺在收到消息并解析后應(yīng)該更新負載均衡器的轉(zhuǎn)發(fā)策略,去除對已經(jīng)停掉的該物理服務(wù)器上的運行實例的轉(zhuǎn)發(fā)。進一步,上述方法包括設(shè)定一個定時器,在收到一條成功啟動信息后一段時間后再更新負載均衡器的轉(zhuǎn)發(fā)策略。進一步,上述方法中加入監(jiān)控機制,以實現(xiàn)動態(tài)擴展。 進一步,上述方法中對于正常運行的應(yīng)用實例,為監(jiān)控系統(tǒng)定時上報心跳數(shù)據(jù)。進一步,上述方法中每5秒鐘上報一次心跳數(shù)據(jù),對于連續(xù)丟失兩次心跳數(shù)據(jù)的應(yīng)用實例,將其記為已死亡。進一步,上述方法中監(jiān)控系統(tǒng)發(fā)送消息給PaaS平臺,PaaS平臺收到相應(yīng)的消息后,更新負載均衡器的轉(zhuǎn)發(fā)策略,在轉(zhuǎn)發(fā)列表中去除已經(jīng)被標記為死亡的運行實例,然后PaaS平臺根據(jù)需要啟動一個新的應(yīng)用實例來代替已經(jīng)死亡的運行實例。進一步,上述方法中在監(jiān)控系統(tǒng)中監(jiān)控應(yīng)用所部署的物理服務(wù)器的CPU或者內(nèi)存等物理資源,根據(jù)監(jiān)控的數(shù)據(jù),或者系統(tǒng)管理員所設(shè)置的閾值,如果硬件資源的使用率已經(jīng)超過所設(shè)置的閾值,PaaS平臺動態(tài)的增加應(yīng)用的部署實例,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)某個應(yīng)用的實例大量資源空閑,PaaS平臺去除掉部分已經(jīng)部署的實例。進一步,上述方法中負載均衡器更新轉(zhuǎn)發(fā)策略進一步包括在該負載均衡器中寫入一個語句,該語句用于保持一個獨立的配置;為負載均衡器配置虛擬主機;該負載均衡器將代理該應(yīng)用的所有請求到應(yīng)用所部署的服務(wù)器;該負載均衡器獲取到請求的子域名,然后通過配置文件對其進行轉(zhuǎn)發(fā);在應(yīng)用啟動的時候根據(jù)啟動所在的應(yīng)用實例,更新該配置文件。進一步,上述方法中當更新配置文件完成后,通過負載均衡器命令讓其動態(tài)加載變化的配置;當負載均衡器重新加載后,應(yīng)用就被外部用戶來訪問。本發(fā)明相對于現(xiàn)有技術(shù)的優(yōu)點在于無需管理員手動操作;能夠?qū)崿F(xiàn)不停機的情況下增加應(yīng)用實例;如果加入監(jiān)測機制,很容易的實現(xiàn)動態(tài)擴展。
圖I為常用的網(wǎng)站或者基于Web的應(yīng)用程序架構(gòu);
圖2為根據(jù)一個實施例的方法初次啟動的流程 圖3為根據(jù)本發(fā)明一個實施例的方法的增加應(yīng)用實例的流程 圖4為根據(jù)本發(fā)明一個實施例的方法的刪除應(yīng)用實例的流程圖。
具體實施方式
下面參考附圖對本發(fā)明的電子銀行操作系統(tǒng)的優(yōu)選實施例進行詳細的描述,需要注意的是,下面的描述僅是示意性的,其中所涉及的內(nèi)容并不構(gòu)成對發(fā)明所涉及內(nèi)容的限制,本領(lǐng)域技術(shù)人員在下面公開內(nèi)容的基礎(chǔ)上還可以有許多不同的變化方式,這些都屬于本發(fā)明的保護范圍。在整個PaaS平臺中,每一個應(yīng)用都可以通過一個獨立且唯一的頂級或者二級域名被客戶端所訪問。每一個部署在平臺上的應(yīng)用都會被部署在多臺不同的物理服務(wù)器上。同樣,每一臺物理服務(wù)器上都會部署多個應(yīng)用的實例。下文中,為了簡化描述,我們假設(shè)每臺物理器只有一塊網(wǎng)卡,意味著每臺物理服務(wù)器只有一個IP地址。在只有一個IP地址的前提下,為了達到在一臺物理服務(wù)器上部署多個應(yīng)用的目的,我們需要將不同的應(yīng)用實例 部署為監(jiān)聽不同的端口.
如圖2所示,描述了平臺中的實例進行初次啟動的方法流程圖。在應(yīng)用開發(fā)者上傳應(yīng)用之前,開發(fā)者應(yīng)該確定應(yīng)用部署的實例的數(shù)目以及應(yīng)用的域名。為了描述方便,我們假定有一個應(yīng)用al,域名為al. paas-example. com,需要部署兩個不同的實例。當開發(fā)者將al上傳到PaaS平臺的某一個共享存儲器上時,PaaS系統(tǒng)會向平臺內(nèi)的所有服務(wù)器資源池發(fā)布消息。PaaS平臺上的服務(wù)器收到消息后,判斷其是否滿足應(yīng)用所需要的軟件環(huán)境,硬件資源,以及是否已經(jīng)部署過該實例,為了避免單點失敗,我們不應(yīng)該在同一臺物理服務(wù)器上部署一個應(yīng)用的多個實例。如果收到消息的服務(wù)器滿足應(yīng)用需要的條件,該服務(wù)器應(yīng)該通知PaaS平臺可以將應(yīng)用部署在該物理服務(wù)器上,并通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口。根據(jù)應(yīng)用需要部署的實例數(shù)N,PaaS平臺獲取并解析前N個收到的消息,并且根據(jù)消息內(nèi)容在目標應(yīng)用服務(wù)器上部署并且啟動應(yīng)用實例。為了通過應(yīng)用事先指定的域名訪問到應(yīng)用的實例,用來轉(zhuǎn)發(fā)請求的負載均衡器必須獲知應(yīng)用實例所部屬的應(yīng)用服務(wù)器的IP地址與端口號。所以,為了獲取相關(guān)的信息,當應(yīng)用的實例啟動成功時,該實例所在的服務(wù)器應(yīng)該使用消息通知PaaS平臺該應(yīng)用實例已經(jīng)成功啟動。PaaS平臺獲取并且解析該成功啟動消息,根據(jù)消息內(nèi)容對負載均衡器的轉(zhuǎn)發(fā)策略進行更新。為了不過于頻繁的更新負載均衡器的轉(zhuǎn)發(fā)策略,我們可以設(shè)定一個定時器,在收到一條成功啟動信息后一段時間后再更新負載均衡器的轉(zhuǎn)發(fā)策略。例如,對于應(yīng)用al,PaaS平臺獲取到的啟動消息為sl:8080和s2:8080.在更新完負載均衡器的轉(zhuǎn)發(fā)策略后,所有訪問al指定的域名al. paas-example. com的請求都會被轉(zhuǎn)發(fā)到si :8080和s2:8080這兩臺真正的物理服務(wù)器上。如圖3所示,描述了一個在平臺中增加應(yīng)用實例的方法流程圖。當系統(tǒng)需要增加一個實例時,PaaS系統(tǒng)向平臺內(nèi)的所有服務(wù)器資源池發(fā)布消息。PaaS平臺上的服務(wù)器收到消息后,根據(jù)上文描述的軟件,硬件以及是否部署過等規(guī)則判斷服務(wù)器是否滿足應(yīng)用需要的條件。若滿足條件,則通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口。PaaS平臺根據(jù)獲取到的信息更新負載均衡器的轉(zhuǎn)發(fā)策略,當更新成功后,應(yīng)用就相當于成功增加了一個運行中的實例。如圖4所示,描述了平臺中刪除應(yīng)用實例的方法流程圖。當應(yīng)用需要刪除一個實例時,部署應(yīng)用實例的物理服務(wù)器在成功停止運行的實例后,向PaaS平臺發(fā)送消息通知該實例已經(jīng)停止。PaaS平臺在收到消息并解析后應(yīng)該更新負載均衡器的轉(zhuǎn)發(fā)策略,去除對已經(jīng)停掉的該物理服務(wù)器上的運行實例的轉(zhuǎn)發(fā)。
如果加入監(jiān)控機制,可以很容易的實現(xiàn)動態(tài)擴展。對于每一個正常運行的應(yīng)用實例,其應(yīng)該給監(jiān)控系統(tǒng)定時上報心跳數(shù)據(jù)。例如,根據(jù)網(wǎng)絡(luò)情況,我們選擇每5秒上報一次心跳數(shù)據(jù),對于連續(xù)丟失兩次心跳數(shù)據(jù)的應(yīng)用實例,我們將其極為已經(jīng)死亡。監(jiān)控系統(tǒng)可以發(fā)送消息給PaaS平臺,PaaS平臺收到相應(yīng)的消息后,更新負載均衡器的轉(zhuǎn)發(fā)策略,在轉(zhuǎn)發(fā)列表中去除已經(jīng)被標記為死亡的運行實例,然后PaaS平臺可以根據(jù)需要啟動一個新的應(yīng)用實例來代替已經(jīng)死亡的運行實例。在監(jiān)控系統(tǒng)中可以監(jiān)控應(yīng)用所部署的物理服務(wù)器的CPU或者內(nèi)存等物理資源,根據(jù)監(jiān)控的數(shù)據(jù),或者系統(tǒng)管理員所設(shè)置的閾值,如果硬件資源的使用率已經(jīng)超過所設(shè)置的閾值,那么PaaS平臺可以動態(tài)的增加應(yīng)用的部署實例。同樣道理,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)某個應(yīng)用的實例大量資源空閑,PaaS平臺也可以去除掉部分已經(jīng)部署的實例。這樣可以實現(xiàn)資源的最大化利用。 在實際中,我們采用Nginx ( 一個常用的負載均衡器)服務(wù)器作為負載均衡服務(wù)器.在Nginx的配置文件中寫入下面的語句
include ../include, conf/氺. conf;
對于每一個應(yīng)用,都保持一個獨立的配置,例如,釆用應(yīng)用的UUID (通用唯一識別碼)作為文件名。一個UUID為axu的應(yīng)用,其配置文件為../include, conf/axu. conf.
下一步我們配置Nginx的virtual host (虛擬主機),Nginx將代理(Proxy)該應(yīng)用的所有請求到應(yīng)用所部署的服務(wù)器.使用Nginx的好處是,對于后端的多臺應(yīng)用服務(wù)器,Nginx會幫我們將請求代理到其中的一臺服務(wù)器上.下面是一個例子
#application, cluster will hold the available clusters
#at any given point of timeinclude ../include, conf/氺. conf;server {
listen 80;
server—name www. example, com;
access_log logs/example, access, log main;
error_log logs/example, error, log;
if ( $host * (\w+) \. platform2\. letv\. com ) {
set $subdomain $1;
}
location / {
proxy—pass http://$subdomain;proxy_set—header X-Real-IP $remote_addr;error—page 500 502 503 504 /50x.html;
#Other parameters}
}
Nginx可以獲取到請求的子域名,然后對其進行轉(zhuǎn)發(fā).如Client訪問 appl.platform2.letv.com. Nginx 會將其轉(zhuǎn)發(fā)至丨J proxy_pass http://appl 在../include, conf/目錄中,我們可以找到appl. conf路徑,里面可能會有如下的配置
upstream appl {ip—hash;
server serverl:8500;server server2:8501;
}
在應(yīng)用啟動的時候我 們可以根據(jù)啟動所在的應(yīng)用實例,更新這段配置文件。比如,appl現(xiàn)在部署在server3上,監(jiān)聽8000端口,那么appl. conf文件變?yōu)閡pstream clustapp {ip_hash;
server server3:8000
}
當更新完成后,我們通過Nginx命令讓其動態(tài)加載變化的配置 nginx -s reload
當Nginx重新加載后,應(yīng)用就可以被外部用戶來訪問了,所有操作均為程序完成,無需管理員手動實現(xiàn).
本發(fā)明的優(yōu)點在于能夠?qū)崿F(xiàn)無需管理員手動操作,并且可以在不停機的情況下增加應(yīng)用實例,在加入監(jiān)測機制的情況下,可以很容易的實現(xiàn)動態(tài)擴展。以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。
權(quán)利要求
1.一種提高PaaS (Plartform-as-a-Service)平臺可用性的方法,所述方法包括應(yīng)用實例初次啟動,增加應(yīng)用實例和移除應(yīng)用實例,其特征在于該方法具體包括以下步驟 確定應(yīng)用部署的實例的數(shù)目以及應(yīng)用的域名; 當開發(fā)者將該應(yīng)用上傳到PaaS平臺的某一個共享存儲器上時,PaaS系統(tǒng)會向平臺內(nèi)的所有服務(wù)器資源池發(fā)布消息,PaaS平臺上的服務(wù)器收到消息后,判斷其是否滿足應(yīng)用所需要的軟件環(huán)境、硬件資源,以及是否已經(jīng)部署過該實例; 如果收到消息的服務(wù)器滿足應(yīng)用需要的條件,該服務(wù)器通知PaaS平臺將應(yīng)用部署在該服務(wù)器上,并通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口 ; 根據(jù)應(yīng)用需要部署的實例數(shù)N,PaaS平臺獲取并解析前N個收到的消息,并且根據(jù)消息內(nèi)容在目標應(yīng)用服務(wù)器上部署并且啟動應(yīng)用實例; 當實例啟動成功時,該實例所在的服務(wù)器使用消息通知PaaS平臺該應(yīng)用實例已經(jīng)成功啟動,PaaS平臺獲取并且解析該成功啟動消息,根據(jù)消息內(nèi)容對負載均衡器的轉(zhuǎn)發(fā)策略進行更新; 當系統(tǒng)需要增加一個實例時,PaaS系統(tǒng)向平臺內(nèi)的所有服務(wù)器資源池發(fā)布消息,PaaS平臺上的服務(wù)器收到消息后,判斷服務(wù)器是否滿足應(yīng)用需要的條件,若滿足條件,則通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口,PaaS平臺根據(jù)獲取到的信息更新負載均衡器的轉(zhuǎn)發(fā)策略; 當應(yīng)用需要刪除一個實例時,部署應(yīng)用實例的物理服務(wù)器在成功停止運行的實例后,向PaaS平臺發(fā)送消息通知該實例已經(jīng)停止,PaaS平臺在收到消息并解析后應(yīng)該更新負載均衡器的轉(zhuǎn)發(fā)策略,去除對已經(jīng)停掉的該物理服務(wù)器上的運行實例的轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求I所述的方法,其中進一步包括設(shè)定一個定時器,在收到一條成功啟動信息后一段時間后再更新負載均衡器的轉(zhuǎn)發(fā)策略。
3.根據(jù)權(quán)利要求I或2所述的方法,其中進一步加入監(jiān)控機制,以實現(xiàn)動態(tài)擴展。
4.根據(jù)權(quán)利要求3所述的方法,其中對于正常運行的應(yīng)用實例,為監(jiān)控系統(tǒng)定時上報心跳數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,其中每5秒鐘上報一次心跳數(shù)據(jù),對于連續(xù)丟失兩次心跳數(shù)據(jù)的應(yīng)用實例,將其記為已死亡。
6.根據(jù)權(quán)利要求5所述的方法,其中監(jiān)控系統(tǒng)發(fā)送消息給PaaS平臺,PaaS平臺收到相應(yīng)的消息后,更新負載均衡器的轉(zhuǎn)發(fā)策略,在轉(zhuǎn)發(fā)列表中去除已經(jīng)被標記為死亡的運行實例,然后PaaS平臺根據(jù)需要啟動一個新的應(yīng)用實例來代替已經(jīng)死亡的運行實例。
7.根據(jù)前述任一項權(quán)利要求所述的方法,其中在監(jiān)控系統(tǒng)中監(jiān)控應(yīng)用所部署的物理服務(wù)器的CPU或者內(nèi)存等物理資源,根據(jù)監(jiān)控的數(shù)據(jù),或者系統(tǒng)管理員所設(shè)置的閾值,如果硬件資源的使用率已經(jīng)超過所設(shè)置的閾值,PaaS平臺動態(tài)的增加應(yīng)用的部署實例,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)某個應(yīng)用的實例大量資源空閑,PaaS平臺去除掉部分已經(jīng)部署的實例。
8.根據(jù)權(quán)利要求I所述的方法,其中負載均衡器更新轉(zhuǎn)發(fā)策略進一步包括 在該負載均衡器中寫入一個語句,該語句用于保持一個獨立的配置; 為負載均衡器配置虛擬主機; 該負載均衡器將代理該應(yīng)用的所有請求到應(yīng)用所部署的服務(wù)器; 該負載均衡器獲取到請求的子域名,然后通過配置文件對其進行轉(zhuǎn)發(fā);在應(yīng)用啟動的時候根據(jù)啟動所在的應(yīng)用實例,更新該配置文件。
9.根據(jù)權(quán)利要求8所述的方法,其中當更新配置文件完成后,通過負載均衡器命令讓其動態(tài)加載變化的配置;當負載均衡器重新加載后,應(yīng)用就被外部用戶來訪問。
全文摘要
本發(fā)明提供一種自動處理PaaS平臺中應(yīng)用程序的方法,主要包括確定應(yīng)用部署的實例的數(shù)目以及域名;當將該應(yīng)用上傳到PaaS平臺的某一共享存儲器上時,PaaS系統(tǒng)會向所有服務(wù)器資源池發(fā)布消息,PaaS平臺上的服務(wù)器收到消息后,判斷其是否滿足應(yīng)用所需要的軟件環(huán)境、硬件資源,以及是否已經(jīng)部署過該實例;如果收到消息的服務(wù)器滿足應(yīng)用需要的條件,該服務(wù)器應(yīng)該通知PaaS平臺可以將應(yīng)用部署在物理服務(wù)器上,并通過消息告知應(yīng)用應(yīng)該部署的IP地址與端口;根據(jù)應(yīng)用需要部署的實例數(shù)N,PaaS平臺獲取并解析前N個收到的消息,并且根據(jù)消息內(nèi)容在目標應(yīng)用服務(wù)器上部署并且啟動應(yīng)用實例。
文檔編號H04L29/08GK102821000SQ201210339500
公開日2012年12月12日 申請日期2012年9月14日 優(yōu)先權(quán)日2012年9月14日
發(fā)明者孟大巍, 劉云霞, 白德鑫 申請人:樂視網(wǎng)信息技術(shù)(北京)股份有限公司