業務流程是Iaas云的重要組成部分,可以幫助管理員更容易的進行部署。
諸如OpenStack的Iaas云應該是動態的。如果管理員需要手動創建云結點、實例和網絡,那就完全沒有利用云計算的靈活性。
像大多數被認為是OpenStack云的基本功能,流程作為獨立組件包含在OpenStack中,被稱作為Heat。如果你選擇了開源的 OpenStack云架構,預計大部分功能會以這種方式實現。Heat被設計為創造人類和機器可訪問的服務,管理云中的基礎設施與應用程序完整生命周期。
Heat通過模版實現業務流程引擎。
將物理數據中心轉換為OpenStack云,需要物理到虛擬的遷移計劃和工具。Heat在理論上是可以使用的,但不是以業務流程引擎為預期目的。Heat 模版最適合部署相似的服務器。他們允許IT實現從舊數據中心到軟件定義數據中心的過渡遷移:這通常意味著全新的架構,可以享受云架構帶來的靈活性。
OpenStack Heat模版實際上與AWS CloudFormation模版格式的完全兼容,OpenStack數據中心內的實例都經過特定的配置。只要AWS和OpenStack實例的功能兼容,混合公有-私有云遷移是可以實現的。但OpenStack也不是100%能夠兼容AWS的。
Heat模版在一個文本文件中描述了需要的內容,方面人員進行讀寫(見下述范例)。選項包括不同類型的基礎設施資源,如服務器、浮動IP地址、卷、用戶等等。模版同樣可以管理這些資源之間的關系,還可以通過自動化實現復雜配置。
Heat并不只是創建資源;它管理整個資源生命周期。要做到這點,必須緊密與DevOps自動化服務集成,如Puppet與Chef,實現管理不同軟件組件的狀態。
A sample OpenStack Heat template.
heat_template_version: 2013-05-23
description: Simple template to deploy a single compute instance with parameters
parameters:
key_name:
type: string
label: Key Name
description: Name of key-pair to be used for compute instance
image_id:
type: string
label: Image ID
description: Image to be used for compute instance
instance_type:
type: string
label: Instance Type
description: Type of instance (flavor) to be used
resources:
my_instance:
type: OS::Nova::Server
properties:
key_name: { get_param: key_name }
image: { get_param: image_id }
flavor: { get_param: instance_type }
范例中部署了一個虛擬機實例。Heat模版由兩部分組成。一部分定義了參數,包括key_name、image、和instance_type。第二部分定義了通過該模版管理的資源,本例中為my_instance。為了管理這個資源,需要在一開始定義三個被成為屬性的參數。在這里get_param語句定義了所有需要的屬性數值。
這個OpenStack Heat是可用的,但對于需要定義成百上千OpenStack實例的管理員來說,并不會太有效果。參數值要求一個接著一個,最后實現大規模部署,這也是云計算資源通常的目標,是一個緩慢的過程。為了使其更快,需要在模版中使用環境文件。這些文件里包括了所有可用參數的數值集。
OpenStack Heat友好度如何?
雖然Heat很容易通過自動化工具實現有效和簡單管理,但卻不是特別方便用戶使用。管理員不喜歡手動處理含有大量需求配置為ASCII文件。他們還有許多不同的選擇來讓云業務流程管理更輕松。
云業務流程工具目的在于更輕松的管理大規模云。許多公司都試圖填補國內云管理空白,包括Cloudyn、Dell和RightScale。
是否還能夠從OpenStack社區獲得更高的期望呢?可能不會。雖然不是很直觀,Heat確實是提供了有效的模版工具來管理云部署。這是一個后端功能,任何用戶都可以打造一個靈活的前端接口來管理它。
前端的一個問題在于要如何開發才能讓云業務流程更容易:為了更高效,前端工具必須能夠訪問OpenStack Heat模版中的相同的參數和配置選項,意味著這些解決方案也不見得會簡單多少。