当前位置: 首页 > 工具软件 > Heat > 使用案例 >

Openstack-heat组件概念

施彦
2023-12-01

什么是Heat

Heat是OpenStack提供的自动编排功能的组件,基于描述性的模板,来编排复合云应用程序。

Heat向开发人员和系统管理员提供了一种简便地创建和管理一批相关的OpenStack资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。

用户可以使用Heat的示例模板或自己创建模板来描述OpenStack资源以及应用程序运行时所需的任何相关依赖项或运行时参数。

当设置完成后,可通过按授权控制、可预测的方式修改和更新OpenStack资源。

用户可以通过OpenStack管理控制台、Heat命令行工具或 API对模板及其相关的资源集进行设置和更新。

为什么需要Heat

1,更快更有效的管理OpenStack的资源

云平台系统在相对比较稳定的情况下,管理成本逐渐变成首要的解决问题。云上自动化能力是一个云平台的刚需,可以有效降低维护难度。

OpenStack原生提供命令行和 Horizon 来供用户管理资源。然而命令行和在浏览器中的点击,费时费力,不利于用户使用 Openstack 来进行大批量的管理以支撑 IT 应用。

Heat 在这种情况下应运而生。

Heat 采用了模板方式来设计或者定义编排。为方便用户使用,Heat 还提供了大量的模板例子,使用户能够方便地得到想要的编排。

2,更小的研发成本

引入Heat,对于不了解OpenStack的研发者来说,可以更快的接入现有的业务系统。开发者更关心的是授权认证和对虚拟资源的增删改,而对于底层的状态并不用太多了解。

顶级key包括七个:

heat_template_version、description、parameter_groups、parameters、resources、outputs、conditions。

Heat 架构组成

1,heat command-line client

CLI通过与heat-api通信,来调用API实现相关功能。终端开发者可以直接使用编排REST API。

2,heat-api

一个OpenStack本地REST API,通过RPC,把发送来的API请求在发给heat-engine。

heat-api,提供了原生restful API对外使用。用户对API的调用,由heat-api处理之后,最终通过RPC传递给Heat-engine来进一步处理。

3,heat-api-cfn

组件提供了Amazon style 的查询 API,可以完全兼容于Amazon的CloudFormation,对于API的请求同heat-api类似,处理之后,通过RPC传递给heat-engine进一步处理。

4,heat-engine

heat-engine是heat中的核心模块,处理主要的逻辑业务。

此模块提供heat最主要的功能,执行模板内容,最终完成应用系统的创建和部署,并把执行结果返回给API调用者。

当 heat engine 拿到请求后,会把请求解析为各种类型的资源,每种资源都对应 OpenStack 其它的服务客户端,然后通过发送 REST 的请求给其它服务。通过如此的解析和协作,最终完成请求的处理。

5,heat-cfntools

独立于heat组件的一个的工具,需要单独下载。这个工具用来完成虚拟机实例内部的操作配置任务。在创建虚拟机镜像时,需要在镜像中安装heat-cfntools工具。

Heat概念

  1. 堆栈(stack):管理资源的集合。单个模板中定义的实例化资源的集合,是 Heat 管理应用程序的逻辑单元,往往对应一个应用程序。
  2. 模板(template):如何使用代码定义和描述堆栈。描述了所有组件资源以及组件资源之间的关系,是 Heat 的核心。
  3. 资源(resource):将在编排期间创建或修改的对象。资源可以是网络、路由器、子网、实例、卷、浮动IP、安全组等。
  4. 参数(parameters):heat模板中的顶级key,定义在创建或更新 stack 时可以传递哪些数据来定制模板。
  5. 参数组(parameter_groups):用于指定如何对输入参数进行分组,以及提供参数的顺序。
  6. 输出(outputs):heat模板中的顶级key,定义实例化后 stack 将返回的数据。

工作流程

     1.用户在 Horizon 中或者命令行中提交包含模板和参数输入的请求

     2.Horizon 或者命令行工具会将接收到的请求转化为 REST 格式的 API 调用Heat-api 或者是 Heat-api-cfn。

     3.Heat-api 和 Heat-api-cfn 会验证模板的正确性,然后通过 AMQP 异步传递给 Heat Engine 来处理请求。

     4.Heat Engine 接收到请求后,会把请求解析为各种类型的资源,每种资源都对应 OpenStack 其它的服务客户端,然后通过发送 REST 的请求给其它服务。

     5.Heat Engine 在这里的作用分为三层: 第一层处理 Heat 层面的请求,就是根据模板和输入参数来创建 Stack,这里的 Stack 是由各种资源组合而成。 第二            层解析 Stack 里各种资源的依赖关系,Stack 和嵌套 Stack 的关系。第三层就是根据解析出来的关系,依次调用各种服务客户段来创建各种资源。

 类似资料: