openstack中的heat

Heat简介

Heat是OpenStack的负责编排计划的主要项目。它可以基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收 缩,负载均衡等高级特性。目前Heat自身的模板格式(HOT)正在不停的改进,同时也支持AWS CloudFormation 模板(CFN),HOT的目标是在不远的将来可以完全的替代CFN。
Heat提供了一个OpenStack的原生REST API和CloudFormation兼容的查询API。

Heat的工作原理

Heat主要是基于模板文件对应用进行管理,在模板文件中可以定义应用需要的资源,资源可以包括多种类型(CFN以及HOT支持的资源类型可能会存 在一定的差别)例如IP,网络,镜像,用户,实例等。定义资源的同时也可以指定资源之间的依赖关系,例如使用云硬盘创建创建一个实例时,可以指定在创建实 例时必须要创建云硬盘。

编辑完模板文件后,可以使用该模板文件创建Stack,创建的过程中Heat引擎会根据模板文件中定义的资源,调用对应的资源插件创建资源。创建完 Stack之后,Heat可以管理Stack中所有资源的生命周期,例如可以删除资源,也可以通过更新模板的方式来更新Stack中资源的定义。

Heat的简单原理如下:

\

Heat引擎的执行逻辑大概如下:

\

Heat目前能做什么

Heat相对于OpenStack的其他项目(例如 Nova)而言还很年轻,受到重视应该是从H版本开始,所以它可能还存在很多的不足。下面简单的列一下在I版本中支持的特性

对HOT,CFN模板格式的支持

HOT中的资源类型在Icehouse版本中有了较大的扩充,完整列表请参考 http://docs.openstack.org/developer/heat/template_guide/openstack.html

通过Ceilometer实现自动收缩模板资源的更新Heat引擎的Scaling支持Cloud-init资源的定义对Puttet,Chef等配置工具的支持

posted @ 2015-08-26 17:21  雅思敏  阅读(2186)  评论(0编辑  收藏  举报