一、Heat简介

Heat 是一套业务流程平台,旨在帮助用户更轻松地配置以 OpenStack 为基础的云体系。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与 Amazon Web Services 业务流程平台 CloudFormation 相对接——这意味着用户完全可以将 AWS 模板引入 OpenStack 环境当中。

为什么需要Heat

1. 更快更有效的管理 OpenStack 的资源:云平台系统在相对比较稳定的情况下,管理成本逐渐变成首要的解决问题。云上自动化能力是一个云平台的刚需,可以有效降低维护难度。Heat 采用了模板方式来设计或者定义编排,为方便用户使用,Heat 还提供了大量的模板例子,使用户能够方便地得到想要的编排。

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

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

1、Heat提供基于模板的业务流程,调用相应的OpenStack API,生成运行的云应用程序。

2、Heat模板在文本文件中,描述了云应用程序的基础结构,这些文本文件可读可写,并且可以通过版本控制工具进行管理。

3、模板指定了资源之间的关系(例如,指定存储卷连接到指定服务器),这使Heat能够调用OpenStack APIs,以正确的顺序创建所有基础设施,启动应用程序。

4、Heat集成了OpenStack的其他组件,能够自动化调配大多数云资源(例如实例、浮动ip、卷、安全组、用户等),以及一些更高级的功能,例如高可用性、实例自动伸缩和嵌套stack。

5、Heat模板与软件配置管理工具(如Puppet和Ansible)的集成

6、操作人员可以通过安装插件定制Heat功能

三、概念

1. 堆栈(stack):管理资源的集合。单个模板中定义的实例化资源的集合,是 Heat 管理应用程序的逻辑单元,往往对应一个应用程序。

2. 模板(template):如何使用代码定义和描述堆栈。描述了所有组件资源以及组件资源之间的关系,是 Heat 的核心。

3. 资源(resource):将在编排期间创建或修改的对象。资源可以是网络、路由器、子网、实例、卷、浮动IP、安全组等。

4. 参数(parameters):heat模板中的顶级key,定义在创建或更新 stack 时可以传递哪些数据来定制模板。

5. 参数组(parameter_groups):用于指定如何对输入参数进行分组,以及提供参数的顺序。

6. 输出(outputs):heat模板中的顶级key,定义实例化后 stack 将返回的数据。

二、Heat架构组件

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

2. heat-api:实现 OpenStack 原生支持的 REST API。该组件通过把 API 请求经由 AMQP 传送给 Heat engine 来处理 API 请求。

3. heat-api-cfn:提供与 AWS CloudFormation 兼容的、AWS 风格的查询 API,处理请求并通过 AMQP 将它们发送到 heat-engine。

4. heat-engine:执行模板内容,最终完成应用系统的创建和部署,并把执行结果返回给 API 调用者。

5. heat-cfntools:完成虚拟机实例内部的操作配置任务,需要单独下载。

工作流程

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 的关系。第三层就是根据解析出来的关系,依次调用各种服务客户段来创建各种资源。

(八)云计算技术学习--OpenStack之Heat相关推荐

  1. (五)云计算技术学习--OpenStack之Neutron

    一.Neutron概述 Neutron是 OpenStack项目中负责提供网络服务的组件,它基于软件定义网络的思想,实现了网络虚拟化下的资源管理.Neutron 的设计目标是实现网络即服务(Netwo ...

  2. (七)云计算技术学习--OpenStack之Cinder和Swift

    目录 一.存储知识 1.存储技术 2.存储方式 二.Cinder介绍 1.Cinder核心组件 2.Cinder设计思想 三.Swift介绍 1.Swift工作组件 2. Swift数据模型 3.Sw ...

  3. 推荐八个技术学习网站

    推荐八个技术学习网站 写在前边的话 八个纯技术学习好网站 写在前边的话 我们相信努力学习一定会有收获,但是方法不当,既让人身心疲惫,也没有切实的回报.在众多互联网技术网站中,各有各的好,经过网上收集整 ...

  4. (一)云计算技术学习--基础概念

    目录 Linux的用户管理 Yum 命令 Python SELinux vsftpd etcd Session.Cookie.Token LNMP VMware Docker Kubernetes(K ...

  5. (一)云计算技术学习--虚拟化vSphere学习

    虚拟化的工作原理是直接在物理服务器的硬件或主机操作系统上面运行一个称为虚拟机管理程序(Hypervisor)的虚拟化系统.通过虚拟机管理程序,多个操作系统可以同时运行在单台物理服务器上,共享服务器的硬 ...

  6. 华为网络技术学习打卡8(云计算大数据,openstack,docker)

    云计算 产生背景(云计算的驱动力) 技术驱动( 需求驱动(海量的数据信息给现阶段设备带来巨大的压力,云计算技术可以降低成本 商业模式转变( 其他方面,海量的数据及信息.各种各样的终端设备也促使着现阶段 ...

  7. 云计算需要学习哪些内容 为什么要学容器技术

    云计算需要学习哪些内容?为什么要学容器技术?云计算是一门新兴热门技术,包含的内容很多,而容器技术是其中的重点.有人好奇为什么要学习容器,它具有哪些价值?下面就给大家讲解一下. 容器的价值可以从两个角度 ...

  8. 学习云计算技术前景在哪里?云计算技术发展趋势

    学习云计算技术前景在哪里?云计算技术发展趋势在哪里呢?随着云计算技术的日趋普及,学习云计算会是自己越来越有价值.Linux云计算是一种未来性的技术,是一种更加高效的互联网行为方式,能够使人们在更短的时 ...

  9. 云计算技术分享:linux云计算课程学习大纲

    云计算是分布式计算.并行计算.效用计算.网络存储.虚拟化.负载均衡.热备份冗余等传统计算机和网络技术发展融合的产物.千锋云计算课程融合产品运维与云计算运维量大热门方向,学员可胜任Linux高级运维工程 ...

最新文章

  1. 利用python把成绩用雷达图表示出来
  2. leetcode算法题--最大加号标志★
  3. SYDTEK OTA 蓝牙升级功能实现 附带Demo
  4. 高质量C++/C编程指南 ver 1.0
  5. UEditor 如何进行二次开发
  6. 吴恩达机器学习 5.正则化
  7. [Android] AudioEffect架构:从上层调用到底层音效驱动
  8. Android开发中图表的使用
  9. 推荐系统之itemCF
  10. win10 计算机菜单,win10系统计算机界面菜单栏不见了的还原方案
  11. php读取服务器csv文件,PHP进行读取CSV文件数据和生成CSV文件
  12. 8.18 @烤仔建工 | 抓住夏天的尾巴,和烤仔一起打造秘密花园吧
  13. 一般将来时语法课教案_【语法视频课】第1~50节资料汇总
  14. php redis中文手册——《redis中文手册》 php版
  15. 事件查看器出现Netlogon5723错误
  16. 3.7. Miscellaneous
  17. 数据跨境迎新规,天空卫士高密度答疑解惑
  18. JSP实现登录删除添加星座等(带样式)
  19. 线性时间选择 python实现 计算机算法设计与分析
  20. 【读书笔记】舆情分析浅谈:读《论新媒体发展背景下网络舆情的发展及治理》有感

热门文章

  1. 备战金三银四,200+Java面试题祝你成为offer收割机
  2. 5G时代,什么是运营商大数据?
  3. 掌门一对一java待遇,算法太TM重要了
  4. 数据如何指导决策:优酷主客APP播转率的C端优化
  5. 用人工智能取一个超酷的名字(一)
  6. python xml etree amp,用python etree打印XML的嵌套元素
  7. 浙江大学 工程伦理 第六章单元测试答案
  8. 【Python可视化】绘制学生成绩的雷达图
  9. Median(hdu7029)
  10. 爬虫基础篇之selenium登陆获取阿里腾讯cookie