首页 > 其他分享 >Terraform - 初解Terraform - 简介

Terraform - 初解Terraform - 简介

时间:2024-08-22 22:15:49浏览次数:14  
标签:基础设施 管理 简介 Terraform 基础架构 初解 Provider 资源

前言

云计算

主要提供计算服务,例如服务器、存储、数据库、网络等等;
对于云服务,通常只需使用多少支付多少,从而帮助降低运营成本,使基础设施更有效地运行,并能根据业务需求的变化调整对服务的使用。

  • 公有云: 多租户面向个人或企业由第三方云服务商托管和运营。
  • 私有云: 专供一个企业或组织使用的云计算资源。私有云可以位于公司的数据中心。(自建或云供应商)
  • 混合云: 组合公有云和私有云,通过云之间进行共享数据。

基础设施即代码

传统情况下,通过云供应商提供的基础设施资源管理控制台的页面来管理各种资源。
但GUI页面操作会带来一些问题:在多云或多个环境中变更多套复杂环境,易出现操作重复、人为失误,配置不一致等。
通过IaC(Infrastructure as Code,基础设施即代码)可以很好解决以上问题。
IaC将基础设施管理纳入应用程序的生命周期中,使用代码来管理和配置基础设施资源。
IaC允许开发者使用版本控制和自动化工具来部署和管理基础设施,就像管理软件代码一样。

Terraform简介

https://www.terraform.io/

  • 一个强大的开源基础设施即代码工具,定义、部署和管理基础设施
  • 通过编写(Write)、计划(Plan)、应用(Apply)声明式配置文件来操作API接口
  • 可在配置文件中定义云和本地资源,可以对其进行版本控制,重用和共享
  • 提供一致的CLI工作流在整个生命周期内配置和管理所有基础架构及云服务
  • 可以管理DNS条目、Saas功能等高級组件和计算、存储和网络资源等低级组件

Terraform解决的问题

Terraform 提供了一种统一的、受版本控制的基础架构管理方法。
解决了手工设置和管理基础架构的经常出现的配置不一致、重复操作和人为错误等问题,可以简易、灵活、可靠地扩展和管理复杂系统。

选择Terraform的理由

  • 强大的社区
  • 可以管理任何基础设施
  • 对基础设施版本管理并跟踪
  • 无需考虑底层逻辑,仅需声明配置
  • 多云架构基础设施部署
  • 创建河重用的基础架构
  • 高效地基础架构扩展和部署

Terraform原理和流程

工作原理

  • Terraform通过Provider这个与API直接交互的后端驱动来完成对云平台上基础设施资源的管理。
  • 不同的基础设施提供商需要对应的Provider来实现对自家基础设施的统一管理。
  • HashiCorp官方和Terraform社区已经编写了大量的Provider来管理数千种不同类型的资源和服务。
  • https://registry.terraform.io/browse/providers

在实际操作中,Terraform和Provider是两个独立存在的package。
Terraform会在运行时根据用户模板中指定的provider或者resource、datasource的标志自动下载配置所用到的所有provider,并将其放在执行目录下的一个隐藏目录.terraform下。

核心工作流程
1.Write阶段,即定义所需要的资源。这些资源可以是跨越多个云提供商和服务。
2.Plan阶段,Terraform 创建一个执行计划。将根据配置文件创建、更新或销毁基础架构。
3.Apply阶段,在批准后Terraform会按照资源依赖关系顺序执行。

标签:基础设施,管理,简介,Terraform,基础架构,初解,Provider,资源
From: https://www.cnblogs.com/anliven/p/18374858

相关文章

  • Terraform中的for_each和count
    通过Terraform创建云主机时,在某些业务场景下,一个机器需要挂载多个云盘,一般云厂商都是单独创建云主机和云硬盘然后通过attachment的资源去挂载,因此我们的模板大致如下:resource"tencentcloud_instance""basic"{instance_name=var.instance_namepassword="xxx"}......
  • PyQt5简介
    PyQt是Qt框架的Python语言实现,由RiverbankComputing开发,是最强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt不再使用QMake系统和Q_OBJECT宏。PyQt5提供GPL版和商业版证书,自由开发者可以使用......
  • 设计模式简介及PHP的35种设计模式(上)
    什么是模式??        有经验的00开发者(以及其他的软件开发者)建立了既有通用原则又有惯用方案的指令系统来指导他们编制软件。如果以结构化形式对这些问题、解决方案和命名进行描述使其系统化,那么这些原则和习惯用法就可以称为模式。例如,下面是一个模式样例:    ......
  • AI编程工具简介
    AI编程工具是指利用人工智能技术来辅助编程工作的软件,它们可以帮助开发者提高编码效率、生成代码、自动添加注释、代码翻译以及智能问答等功能:1.**GitHubCopilot**:由GitHub与OpenAI合作开发,提供整行或整个函数的代码建议,支持多种编程语言和IDE。2.**CodeGeeX**:智谱AI推出......
  • Android开发语言Kotlin简介
    官方认可:自2017年Google正式宣布Kotlin成为Android开发的官方语言后,它在Android开发中的流行度就有了显著提升。与Java的兼容性:Kotlin在设计时就考虑到了与Java的互操作性,这让开发者能够在Android项目中轻松使用Kotlin,同时继续利用现有的Java代码和库。......
  • WiFi简介-从技术原理到应用
    推荐:揭秘电池管理的全能王者,ADI车规级AFE芯片(Bipolar+CMOS双管芯)芯品快报:德州仪器(TI)的高性能、集成式的双全桥电机驱动器——DRV8412“做成ADC拿去诡市,贱卖!”-----长安红茶续篇WiFi简介-从技术原理到应用原创 IPBrain 集成电路大数据平台 2022年07月29日17:18 北京......
  • 界面控件DevExpress WinForms中文教程:Data Grid(数据网格)简介(二)
    DevExpressWinFormsDataGrid是一个高性能的UI组件,由DirectX渲染引擎提供支持。数据网格(GridControl)提供了一个灵活的基于视图的体系结构,包括许多数据塑造和UI自定义特性,数据网格可以显示和编辑来自任何大小和复杂数据源的数据。P.S:DevExpressWinForms拥有180+组件和UI库,能......
  • 一门多范式的编程语言Scala学习的第一天-简介
    Scala1、Scala简介1.1Scala的介绍scala是一门多范式的编程语言Scala是把函数式编程思想和面向对象编程思想结合的一种编程语言大数据计算引擎spark是由Scala编写的1.2Scala的特性1.2.1多范式1.2.1.1面向对象特性Scala是一种高度表达性的编程语言,它结合了面向对象编程......
  • prometheus学习笔记之简介与安装
    一、prometheus简介1.简介Prometheus是基于go语⾔开发的⼀套开源的监控、报警和时间序列数据库的组合,是由SoundCloud公司开发的开源监控系统,Prometheus于2016年加⼊CNCF(CloudNativeComputingFoundation,云原⽣计算基⾦会),2018年8⽉9⽇prometheus成为CNCF继kubernetes......
  • 存储保护单元(MPU)的简介
    MPU主要解决了软件的隔离问题,防止不同任务或错误的代码访问或破坏关键数据区。特别是在多任务操作系统中,MPU通过定义不同的内存区域,为每个任务分配独立的内存区域,确保了操作系统的核心安全和数据的完整性。MPU支持分成8个region,每个region又可以分成更小的子region,但是子rei......