Apache StratOS 部分功能介紹

功能

組合應用

Stratos能夠根據需要啓動和停止實例(單租戶),在Stratos術語中稱爲訂閱和退訂。訂閱將會啓動最小數量實例的集羣,退訂將停止那些實例。在訂閱之前,需要定義和部署相關的cartridge,使得Stratos瞭解你要提供服務的細節和所要使用的IaaS等相關信息。

在Stratos以前的發佈版本中,每個訂閱所啓動的集羣是相互隔離的,在多個集羣之間沒有連接。然而,在現實世界中,存在着羣組方式的多集羣需求,其中一個或多個集羣依賴於其他集羣。因此,在本版本中引入了組合應用。

組合應用支持cartridge羣組。通過cartridge羣組,提供了部署含不同服務運行時應用的能力,這些服務運行時有相互關係或依賴關係。更進一步,應用中的每個服務運行時可以關聯伸縮或者有依賴關係的服務組合共同伸縮。因此,用戶可以在JSON文件中定義所需要的服務運行時、部署和自動伸縮策略、構件庫和所有的依賴關係,這樣Stratos可以根據定義提供所需要的運行時。

 組合應用 = 多羣集配置信息 +依賴關係配置信息

組合應用相關的術語,如:羣組、依賴關係、啓動順序、羣組伸縮,依賴組合伸縮,停止處理和元數據服務將在後續章節中進行深入描述。

Cartridge羣組

Cartridge羣組是一個描述將多個cartridge組合到一起的定義元數據。Stratos的組合應用支持羣組的嵌套,也就是一個羣組作爲另一個羣組成員。Cartridge羣組定義了一組羣組和一組cartridge之間的相互關係。羣組成員的關係可以是啓動順序、停止處理和可伸縮的依賴關係。編寫一個羣組定義提供了在不同組合應用中重用羣組的能力。

啓動順序

在一個羣組或一個應用中,如果有二個或更多的獨立cartridge或羣組,你可以定義它們的啓動順序。

停止處理

停止處理允許你定義在應用中某些附屬的運行時失敗的情況下所採取的行動。當不能滿足所需最小實例數量時觸發失敗處理。Stratos支持以下三種停止處理操作。

·        停止所有實例

·        停止所依賴的實例

·        不動作

關聯伸縮

在成員間(cartridge 或羣組)定義了關聯伸縮後,當其中某些成員發生了伸縮(擴張或收縮)時,所有其他關聯的成員也會進行相應的伸縮來維持預先設定的比例。

羣組伸縮

如果在羣組定義中將“羣組伸縮”設置爲“是”,那麼在某些情況下,羣組自己將進行伸縮,同時受最大實例數限制和關聯伸縮關係限制。

應用JSON

應用JSON是結構化的JSON,你可以定義應用所使用的運行時、cartridge、cartridge羣組、依賴關係、構件庫和自動伸縮策略。應用JSON可以轉換成應用模板,可以在不同部署模式下重用來部署同樣的應用。部署策略是定義部署模式的方法(如:高可用、災備、雲端負載均衡、混合雲,達到4個9或5個9的可靠性)。

應用部署策略

Stratos中部署策略就是對所使用部署模式的定義。部署策略支持羣組級別或集羣級別的部署。全局部署策略是在一處定義了所有子模塊(嵌套羣組)的部署策略。因此,每個應用只需要一個部署策略,其中包括了所有子部署策略。這樣做的好處如下:

同樣的應用可以使用不同的部署策略來部署到高可用環境(HA)或者負載均衡環境。

這樣確保在部署策略執行後才實際啓動VM,而不是,在應用部署後就立即啓動。

部署策略總是和應用結合在一起。

在集羣級別或羣組級別不需要定義多個部署策略。

分區定義細節也可以在部署策略中定義。

部署策略定義中用到的術語如下:

網絡分區
    網絡分區是在網絡boud方式下定義的一個邏輯分區。因此,Stratos將用IaaS的區域(Region)來映射到網絡分區。網絡分區的縮寫是: NP
    示例:
    NP1: EC2-US-WEST
    NP2: EC2-US-EAST
    NP3: OPENSTACK-NY-RegionOne
     

分區
    分區在網絡分區下更細粒度的邏輯分組,分區的縮寫是: P
    示例:
    NP1:P1 -> US-WEST -> us-west-1 (N. California)
    NP1:P2 -> US-WEST -> us-west-2 (Oregon)
     

應用策略
    應用策略包括了應用所使用到的所有網絡分區和分區定義。
     

使用默認激活
    如果設置成“是”,網絡分區將作爲默認值。如果設置成“否”,網絡分區將作爲最低優先級別的設置。

子策略
    每個子策略都引用應用策略中的網絡分區和相關分區來定義自己的部署模式。注意,如果你通過引用應用羣組來定義子策略,那麼子集羣/羣組(cartridge運行時)將繼承相同的策略。

最大數量
    一個分區允許的最大實例數。
    在羣組中: 表示在一個分區中允許的最大羣組成員實例數。
    在集羣中:表示在一個分區中可以爲集羣維持的最大集羣成員數。

分區算法
    Stratos支持以下二種分區算法:循環法(round robin)和順序法(One after another)。分區算法的選擇依賴於使用的場景。

 例如:圖-04中所示,有二個子策略應用在cartridge運行時級別。

子策略: sample1
分區: P1, P2
P1 最大數量 : 4
P2 最大數量 : 3
分區算法: 循環法(Round robin)

 

子策略 : sample2
分區: P3, P4
P3最大數量: 2
P4最大數量: 3

分區算法: 順序法(One after another)

元數據服務

組合應用包含一組cartridge,這樣有許多cartridge實例需要啓動,信息需要在這些cartridge之間共享。元數據服務是Stratos中的一個Web應用,負責在運行時服務間共享信息。元數據服務作爲所有cartridge實例相關元數據集中放置區域,cartridge發佈元數據給元數據服務,其他對其感興趣的組件就可以從元數據服務獲取其元數據。

在元數據服務中,元數據以鍵值對(key-value)方式存儲,多個值可以關聯到一個鍵上,每個鍵至少有一個對應的值。當創建了一個應用後,Stratos管理器將建立一個JW (JSON web token) OAuthtoken,其中含有應用的ID,這個token將傳入cartridge運行時實例或容器中作爲加載用的基礎數據。Cartridge代理在和元數據服務交互時,使用這個token進行驗證。

可以通過REST API增加、獲取和刪除元數據服務中的元數據。cartridge的所有實例都調用REST API來發布各自的信息到元數據服務,當在不同的cartridge實例間需要共享信息時,相關的cartridge實例通過調用REST API獲取所需要的信息。

 

元數據客戶端

元數據客戶端用於第三方Stratos組件(如:雲控制器、自動伸縮調度、Stratos管理器)和元數據服務的交互。當然,其他具有JW OAuth token的客戶端(如:Cartridge代理)也可以直接和元數據服務交互,而不需要通過元數據客戶端。元數據客戶端是一個封裝了請求和響應傳遞的Java API。這樣,第三方Stratos組件可以通過元數據客戶端來增加、獲取和刪除元數據服務中的元數據。例如:在雲控制器中的一個Git資料庫URL需要加到元數據表中時,就需要用到元數據客戶端。

智能策略

ApacheStratos使用二個智能策略:自動伸縮策略和部署策略。Stratos使用自動伸縮策略和部署策略來調整系統的彈性。自動伸縮和部署策略主要用於平臺即服務 (PaaS) 層的SLA,同時也有利於軟件即服務 (SaaS) 層應用程序。例如,如果你想要獲得五個 9 的可用性 (99.999%),你必須保持最小數量的實例並且將實例運行在不同的雲供應商、 不同地區、 不同的區域等。如果在部署策略中進行了定義,可以滿足上述要求。

 

下面小節詳細說明這兩種智能策略。

自動伸縮策略

自動伸縮策略是一項基於負載閾值來決定進行自動伸縮處理的策略。負載閾值將基於系統處理量、內存消耗和平均負載的要求來確定。自動伸縮器使用上述參數決定是擴張還是收縮。定義自動伸縮策略的JSON 文件的詳細信息,請參閱自動伸縮策略資源定義章節。

部署策略

部署策略是一套cartridge部署時使用到的規則。部署策略描述了哪些雲分區被服務所使用。單個應用可以有多個兼容的部署策略。每個部署策略定義了可用分區、網絡分區,分區算法和每個分區允許的最大實例數。定義部署策略的JSON 文件的詳細信息,請參閱部署策略資源定義章節。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章