讀古今文學網 > OpenStack系統架構設計實戰 > 6.6 Heat引擎 >

6.6 Heat引擎

Heat-engine由cfn、hot、resource、client和notification組件組成,實現了Heat模板中格式校驗、資源依賴分析、資源類型映射管理、資源交互通知,以及與其他OpenStack組件進行通信的鑒權和消息處理,是整個Heat的核心。

圖6-2 完整的Heat內置資源與OpenStack各組件之間的整體交互關係

1.模板格式校驗

Heat-engine的首要工作是完成模板格式校驗。此功能由Heat-engine的cfn和hot組件完成,分別對應AWS和HOT類型的兩種模板格式。

2.資源依賴分析

資源依賴分析是通過Heat-engine的Resource模塊中的stack組件完成的,具體為檢測模板定義的ref和deponds_on屬性的有效性和關係型,將所有資源形成一個有效的資源關係圖。

3.資源類型映射

Heat模板中的每一種資源都會對應一個有效的資源類型,引擎通過一個唯一的資源類型名稱找到對應的資源實現,這個映射關係由資源的接入機制實現,具體為:掃瞄指定目錄下的所有類,如果發現其中包含了資源類型實現映射函數resource_mapping(),並且指向一個有效的實現,則建立相應的映射關係,為後續的棧調度執行打下基礎。

4.調度引擎

調度引擎是Heat-engine的核心,它為模板的執行建立了一套完整的流程引擎,包括資源創建狀態監聽,資源創建狀態回調通知等。通常採用數據棧的方式存儲流程定義,提供與其他組件的同異步交互控制機制,並負責棧生命週期狀態的管理,在出現異常時,還能進行相應的回滾操作,並控制資源的依賴關係,保證回滾操作的完成。

5.組件交互

在資源實現過程中存在著大量與OpenStack其他組件進行交互的動作,Heat-engine為這些交互統一封裝了Client組件,提供了統一鑒權、統一消息格式轉換功能,便於資源實現過程中發生的組件交互操作完成。

6.回調通知

在資源實現過程中存在著大量的異步通知場景,需要Heat-engine通過相應的回調通知事件來完成,回調通知模塊實現了該功能。