openstack G版孵化项目Heat介绍

        Openstack 对应于云计算的概念,是实现了IaaS(Infrastructure as a Service),即基础设施即服务,提供对云的基础设施运行环境的管理。有了基础设施就可以在其上部署和运行相关的应用,如web群集,paas,数据库等等相关的服务和应用。对于这些软件运行环境的构建需要进行相关的部署过程,当然部署的过程可以手工的完成,但是面对于快速构建应用的普遍需求来说,手工部署并不能满足要求,并且云环境下的群集部署对于普通的非专业的用户来说是很困难的,所以就需要实现一种自动化的通过简单定义和配置就能实现部署的云部署方式。Heat项目就是提供了一种通过模版定义的协同部署方式,实现云基础设施软件运行环境的自动化部署。

        Heat项目其实是和AmazonAWS CloudFormation相对应的,就是为了实现对等的功能(heat项目本身还不成熟很多对应CloudFormation的功能还没有实现。为了更好的解释Heat的功能,我在这里就直接从aws的官网直接引用对AWS CloudFormation的介绍:“AWS CloudFormation 向开发人员和系统管理员提供了一种简便地创建和管理一批相关的 AWS 资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。您可以使用AWS CloudFormation 的示例模板或自己创建模板来介绍 AWS 资源以及应用程序运行时所需的任何相关依赖项或运行时参数。您可以不需要了解 AWS 服务需要配置的顺序,也不必弄清楚让这些依赖项正常运行的细枝末节。CloudFormation 为您妥善处理。当设置完成后,您可通过按受控制、可预测的方式修改和更新 AWS 资源,您可像执行软件版本控制一样对您的 AWS 基础结构进行版本控制。您可以通过 AWS 管理控制台、CloudFormation 命令行工具或 API 对模板及其相关的资源集(称为“堆栈”)进行设置和更新“。其实读了这段话就可以对等的理解Heat项目的目的和功能了。

      对于Heat的功能和实现,简单来说就是用户可以预先定义一个规定格式的任务模版,任务模版中定义了一连串的相关任务(例如用某配置开几台虚拟机,然后在其中一台中安装一个mysql服务,设定相关数据库属性,然后再配置几台虚拟机安装web服务群集等等),然后将模版交由Heat执行,就会按一定的顺序执行heat模版中定义的一连串任务。

      在Heat的代码实现中可以看到大量的aws的影子,Heat在实现自己的heat-boto时也是基于AWS boto client library,其中代码中调用的openstack api也是调用openstack的 aws 兼容api。

       Heat对于虚拟机内部操作的控制是需要利用heat-cfntools这个工具。其实质是,通过向实例镜像中注入heat-cfntools,然后实例利用heat-cfntools同heat交互,进而实现相关的对于实例内部的相关操作(如安装和配置mysql数据库等)。

      利用Heat可以实现监控预警功能,不过这个功能可能会移到G版的另一个孵化项目ceilometer中。官方还给了一个用heat部署openshift(redheat的开源paas)的具体例子,这个例子其实很有意义,这就表明利用包含heat的openstack就可以完整的实现一个,从IaaS到paas,从云基础设施硬件环境,到云应用的软件运行环境的整体的部署和运行。可以说有了heatopenstack就是一个完整的应用了。

       Heat项目是G版的孵化项目,将会被集成到H版中,我对heat的理解不是很深,研究openstack自动化的朋友可以对其进行进一步的研究。

你可能感兴趣的:(openstack)