自动化编排工具Terraform介绍(一)

news2024/11/17 3:54:10
Terraform是什么?:        

      Terraform 是 HashiCorp 公司旗下的 Provision Infrastructure 产品, 是 AWS APN Technology Partner 与 AWS DevOps Competency Partner。Terraform 是一个 IT 基础架构自动化编排工具,它的口号是“Write, Plan, and Create Infrastructure as Code”, 是一个“基础设施即代码”工具,类似于 AWS CloudFormation,允许您创建、更新和版本控制的 AWS 基础设施。
Terraform 基于 AWS Go SDK 进行构建,采用 HashiCorp 配置语言(HCL)对资源进行编排,具体的说就是可以用代码来管理维护 IT 资源,比如针对 AWS,我们可以用它创建、修改或删除 S3 Bucket、Lambda,、EC2、Kinesis、VPC 等各种资源。并且在真正运行之前可以看到执行计划(即干运行-dryrun)。由于状态保存到文件中,因此能够离线方式查看资源情况(前提是不要在 Terraform 之外对资源进行修改)。Terraform 配置的状态除了能够保存在本地文件中,也可以保存到 Consul, S3 等处。
Terraform 是一个高度可扩展的工具,通过 Provider 来扩展对新的基础架构的支持,几乎支持所有的云服务平台,AWS 只是 Terraform 内建 Providers 中的一种。

优势

  • 将基础结构部署到多个云

    Terraform适用于多云方案,将类似的基础结构部署到[AWS云、阿里云、腾讯云、华为云等等]、其他云提供商或者本地数据中心。开发人员能够使用相同的工具和相似的配置文件同时管理不同云提供商的资源。

  • 自动化管理基础结构

    Terraform能够创建配置文件的模板,以可重复、可预测的方式定义、预配和配置ECS资源,减少因人为因素导致的部署和管理错误。能够多次部署同一模板,创建相同的开发、测试和生产环境。

  • 基础架构即代码(Infrastructure as Code)

    可以用代码来管理维护资源。允许保存基础设施状态,从而使您能够跟踪对系统(基础设施即代码)中不同组件所做的更改,并与其他人共享这些配置 。

  • 降低开发成本

    您通过按需创建开发和部署环境来降低成本。并且,您可以在系统更改之前进行评估 

  • 在 Terraform 诞生之前,我们对 AWS 资源的操作主要依赖 Console、AWS CLI、SDK 或 Serverless。AWS CLI 什么都能做,但它是无状态的,必须明确用不同的命令来创建、修改和删除。Serverless 不是用来管理基础架构的,用 Lambda 创建资源是很麻烦的事。AWS 提供的 CloudFormation,虽然功能非常强大,但是大量的 JSON 代码阅读困难。

Terrafrom功能和作用:

功能点

  • IaC:infrastructure as code,用代码管理基础设施
  • 执行计划:显示terraform apply时执行的操作
  • 资源图:构建所有资源的图形
  • 变更自动化:基于执行计划和资源图,可以清晰知道要变更的内容和顺序 总结:terraform用于各类基础设施资源初始化,支持多种云平台,支持第三方服务对接

作用

  • 使用不同provider的API,包装抽象成Terraform的标准代码结构
  • 用户不需要了解每个云计算厂商的API细节,降低了部署难度

Terraform 的主要特点如下:

  • 基础架构代码(Infrastructure as Code)

  • 使用 HCL 高级配置语法描述基础架构。这样可以让数据中心的蓝图进行版本控制,像其他代码一样对待,基础设施可以共享和重用。

  • 执行计划(Execution Plans)

  • Terraform 有一个“planning”步骤,它生成一个执行计划。当调用时,执行计划显示所有的操作,能有效避免操作人口山水对基础设施的误操作。

  • 资源图表(Resource Graph)

  • Terraform 构建了所有资源的图形,并且并行化了任何非依赖资源的创建和修改。因此,Terraform 尽可能高效地构建基础架构,操作人员可以深入了解其基础架构中的依赖关系。

  • 更改自动化(Change Automation)

  • 复杂的变更集可以通过很少的人工交互应用到基础设施中,使用前面提到的执行计划和资源图表, 将清楚的知道 Terraform 发生的变化及顺序, 避免了许多可能的人为错误。

Terraform架构:

参考架构图:

简单使用流程:

说明
从上图我们可以看出terraform 的使用
tf 格式的编排文件
定义变量,定义输出(可选的)
编写主要的任务(main.tf)

执行terraform 的操作(资源生命周期的处理)
init
plan
apply
destry

 Terraform是一个可以支持多种云环境,进行创建,更改、版本控制的工具。是一个Infra-As-Code的瑞士军刀级的工具。我们将Terraform在AWS上最佳实践架构方式和与一些其他工具进行整合的方法汇总成以下几篇文章。主要如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/906696.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springMVC 已解密的登录请求

问题描述: 解决方案: 1.对用户所输入的密码在页面进行MD5加密并反馈至密码输入框。 2. 手动生成SSL安全访问证书;在此不做介绍,相关方法可通过网上查找; 3. 将产品HTTP访问方式改为SSL安全访问方式;在Ap…

Fast DDS(1)

1、什么是数据分发服务(DDS): 数据分发服务 (DDS) 是一种以数据为中心的通信协议,用于分布式软件应用程序通信。它描述了支持数据提供者和数据消费者之间通信的通信应用程序编程接口(API)和通信语义。 由于它是一个以数据为中心的…

java云智慧工地管理平台系统源码

智慧工地将“互联网”的理念和技术引入建筑工地,从施工现场源头抓起,最大程度地收集人员、安全、环境、材料等关键业务数据,依托物联网、互联网,建立云端大数据管理平台,形成“端云大数据”的业务体系和新的管理模式&a…

toLocaleString()方法

toLocaleString() 可以用来格式化,比如数字的格式化, 整数部分每三位加一个逗号 toLocaleString()还可以将数字转换为百分比 如:

印刷企业应该先部署MES管理系统还是ERP系统

在数字化转型的推动下,印刷企业也需要与时俱进,实现信息化和智能化管理。然而,在部署MES生产管理系统和企业ERP系统时,企业需要首先考虑应该先部署哪一个系统。本文将探讨这个问题,并阐述其原因。 一、印刷企业MES管理…

概念解析 | 雷达层析成像:探索隐形世界的新视角

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:雷达层析成像 (Radar Tomography Imaging)。 雷达层析成像:探索隐形世界的新视角 一、背景介绍 自从雷达(Radio Detection and Ranging)发明以来,它已经成为了我们生活…

二、SQL注入之联合查询

文章目录 1、SQL注入原理2、SQL注入的原因3、SQL注入的危害4、SQL注入基础4.1 MySQL相关4.2 SQL注入流程: 5、联合注入实例基本步骤6、总结 1、SQL注入原理 SQL注入(Sql Injection)就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&…

鉴源论坛 · 观模丨形式化方法的工业应用:航空领域

作者 | 徐奕龙飞 上海控安可信软件创新研究院系统建模组 版块 | 鉴源论坛 观模 社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区” 01 摘 要 本文主要探讨了形式化方法在航空领域中的工业应用。航空领域作为安全攸关领域,其机载系统软件的开发…

【Unity 实用工具篇】✨ | 二维像素角色创作工具 2D Pixel Unit Maker

前言【Unity 实用工具篇 】 | 二维像素角色创作工具 2D Pixel Unit Maker一、介绍1.1 相关链接1.2 效果展示二、快速使用方法2.1 导入插件2.2 打开动画场景,完成初始化2.3 配置自己想要的二维像素角色三、导出角色动画序列帧四、导入新项目使用4.1 切割序列帧动画4.2 配置角色…

jvm-虚拟机栈

1.栈的存储单位 栈是运行时单位,而堆是存储的单位 栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。堆解决的是数据存储问题,即数据怎么放,放在哪儿 java虚拟机栈 早期也叫java栈,每个线程在创…

电商数据采集和数据分析

不管是做渠道价格的治理,还是做窜货、假货的打击,都需要品牌对线上数据尽数掌握,准确的数据是驱动服务的关键,所以做好电商数据的采集和分析非常重要。 当线上链接较多,品牌又需要监测线上数据时,单靠人工肯…

华为手机怎么录屏?看这里,小白也能学会

“华为手机怎么录屏呀,新买的华为P30,还没怎么用过,今天看直播的时候突然想录屏,却找不到录屏按钮,我记得是有录屏功能的呀,有人会吗?教教我。” 华为手机作为一款领先的智能手机品牌&#xff…

docker 04(docker 应用部署)

一、部署Mysql 需求: 在Docker容器中部署MySQL,并通过外部mysql客户端操作MySQLServer。 二、部署tomcat 三、部署nginx 四、部署redis

[ MySQL ] — 复合查询和内外连接的使用

目录 复合查询 多表查询 自连接 子查询 单行子查询 多行子查询 多列子查询 在from子句中使用子查询 合并查询 union union all 表的内连接和外连接 内连接 外连接 左外连接 右外连接 复合查询 多表查询 实际开发中往往数据来自不同的表,所以需要多表查…

opencv进阶14-Harris角点检测-cv2.cornerHarris

类似于人的眼睛和大脑,OpenCV可以检测图像的主要特征并将这 些特征提取到所谓的图像描述符中。然后,可以将这些特征作为数据 库,支持基于图像的搜索。此外,我们可以使用关键点将图像拼接起 来,组成更大的图像。&#x…

云上社群系统部分接口设计详解与测试

目录 一、项目简介 1. 使用统一返回格式+全局错误信息定义处理前后端交互时的返回结果 2.使用ControllerAdviceExceptionHandler实现全局异常处理 3.使用拦截器实现用户登录校验 4. 使用MybatisGeneratorConfig生成常的增删改查方法 5. …

SVF——C/C++指针分析/(数据)依赖分析框架

这篇文章包括: SVF介绍SVF源码解读SVF优势与不足如何扩展改进 文章包括一些个人观点,若觉得有误请留言纠正,感谢🙏 在这篇文章之前强烈推荐看我公众号之前推的一篇文章:CG0’2011 “Flow-sensitive pointer analysis f…

追踪工时和控制成本 如何选对工具

研发工作中的工时管理软件是一种用于追踪、记录和分析团队成员在项目中所花费的工作时间的工具。它有助于组织、监控和优化研发项目的进展,确保资源得到有效利用,项目按时完成,并提供数据支持用于决策制定和资源规划。 能够记录团队成员的工…

高忆管理:“降息”了!1年期下调10个基点,5年期为何“按兵不动”?有何影响?

1年期LPR利率年内再度下调,5年期以上LPR利率按兵不动。 8月21日,新一期借款商场报价利率(LPR)公布。其间,1年期借款商场报价利率(LPR)报3.45%,上月为3.55%;5年期以上LPR报…

5种做法实现table表格中的斜线表头效果(HTML+CSS+JS+Canvas+SVG)

table表格,这个东西大家肯定都不陌生,代码中我们时常都能碰到,那么给table加一个斜线的表头有时是很有必要的,但是到底该怎么实现这种效果呢? 我总结了以下几种方法: 1、最最最简单的做法 直接去找公司的…