Terraform 系列-Terraform Cloud 比 Terraform OSS 有哪些增强?

news2025/1/18 10:43:19

系列文章

👉 Terraform 系列文章

前言

最近在使用 Terraform Cloud 来置备 OCI 的 Always Free Tier, 发现它非常好用,相比 Terraform OSS, 用起来省心多了。

也借此总结学习下:Terraform Cloud 比 Terraform OSS 有哪些增强,这些增强功能面向哪些客户,解决了哪些痛点?

可以作为我们基于 Terraform 开发自己的 IaC 云平台的经验。

Terraform OSS 的功能

Terraform OSS 的功能已经在 之前的文章 里介绍过了。

这里再重复一下:

  • IaC
  • 工作空间
  • 变量
  • 运行-计划和应用
  • 资源图
  • 供应商
  • 模块
  • 注册表
  • 声明式编程
  • 云无关
  • 表达能力强且高度可扩展
  • 协同工作(需要进一步配置)
  • 生命周期管理
  • 测试
  • HCL
  • 安全和密钥管理(需要进一步配置)

Terraform Cloud 简介

Terraform Cloud 是 HashiCorp 基于 SaaS 的 Terraform 版本。

Terraform Cloud, 理所当然用于 Terraform OSS 的以上所有功能。

Terraform Cloud vs. Terraform OSS

Terraform Cloud 比 Terraform OSS 有哪些增强?具体如下:

IaC 功能增强

  • Remote State: Terraform Cloud 自带开箱即用的 Backend, 方便管理 remote state, 确保部署一致性、共同目标和单一事实来源
  • VCS 连接: Terraform Cloud 打通了 Github 等 VCS, 可以无缝使用 VCS + Terraform. 使多个团队成员能够在项目中处理单独的代码流,并通过简单的回滚路径以结构化的方式将变更合并回核心项目中。
  • 工作空间管理: Terraform Cloud 提供了更为丰富的工作空间管理功能和 UI
  • 安全和密钥管理: Terraform Cloud 基于 Terraform Vault 提供了开箱即用的安全变量(安全和密钥)的存储。
  • 远程运行和状态: Terraform Cloud 支持本地运行和远程运行,远程运行无需自己安装 Terraform, 直接使用 Terraform Cloud 提供的 Terraform. 意味着所有部署都是从一个集中位置完成的
  • 私有模块注册表: 私有模块存储库允许跨多个工作空间和项目访问模块代码的单个真实源,从而降低差异的可能性,从而提高代码稳定性。

Remote State △ Remote State

VCS 连接 △ VCS(GitHub) 连接

工作空间管理 △ 工作空间管理

安全和密钥管理 △ 安全和密钥管理

远程运行 △ 远程运行

运行状态 △ 运行状态

私有模块注册表 △ 私有模块注册表

团队管理功能增强

  • 团队管理: 团队管理是工作空间管理的一个子功能,借助此功能,工作空间管理员可以通过根据其公司的组织结构创建团队来管理云用户的访问级别。这些团队根据反映编码职责或运营职责的组织被授予权限,例如:管理策略,管理工作空间,管理 VCS 设置
  • 成本估算: 提供与工作空间中的代码部署关联的成本估算的最佳预估。会明确地显示本次 Run 会增加/减少多少美元的开销。
  • 策略即代码: 通过和 HashiCorp Sentinel 的集成,用于自动化治理、安全和基于合规性的策略配置。Sentinel 是一个可嵌入的策略及代码框架。如,您可以定义,如果您要部署到 Dev,则您的任何 EC2 构建实例都不能大于大小 XXX, 如果尝试构建更大的实例,则运行将失败。也可用于执行 CIS 基准和其他合规性框架。
  • 配置设计器: 基于 GUI 的工作流程,用于选择、组合、定义变量和创建独特的工作区。降低开发人员使用心智负担,开发人员从预定义的 IaC 模块构建配置;按需预配。

团队管理 △ 团队管理

成本预估

△ 成本预估

策略即代码 △ 策略即代码

配置设计器 △ 配置设计器

安全/合规/治理功能增强

  • 单点登录 (SSO): 集成您的企业身份提供商,为您的团队成员提供无缝登录过程。目前,Terraform Cloud 支持以下身份提供程序:
    • Azure AD
    • Okta
    • SAML
  • 审计日志: 对于在事件发生后甚至在解决问题时尝试深入研究时启用取证调查是绝对必要的。
  • 自托管的代理: 允许 Terraform Cloud 业务使用自托管代理有效地查看私有数据中心。

SSO △ SSO

总结思考🤔

Q: 如果我们也要基于 Terraform OSS 来做一个企业内部的 IaC 云服务,我们应该增强哪些功能? A: 需要从以下几方面入手:

  1. 增强 Terraform 的功能和使用体验
    1. 基于 S3 提供开箱即用的 Backend 和 Remote State
    2. 提供和内部代码仓库(如 GitLab) 的无缝对接
    3. 基于 Terraform Workspace 开发一套友好 UI, 并结合企业实际情况,延伸出入:环境、Project 等概念
    4. 基于 HashiCorp Vault 提供开箱即用的安全和密钥管理功能
    5. 自动创建预配置好 Terraform 的临时 VM 或 Pod 以在云服务上开箱即用地运行 Terraform, 而不需用户在本地运行 Terraform; 同时提供每次 Terraform Apply 后的状态历史
    6. 提供内部私有 Terraform Registry
    7. 开发完整而丰富的 API 接口,供企业内部其他系统(如 DevOps) 集成使用。
  2. 丰富团队管理功能:
    1. 丰富完善团队管理功能、设置和 UI
    2. 引入 FinOps 理念:对接主流公有云费用 API, 在 Plan 阶段进行成本估算。
    3. (可选)策略及代码
  3. 安全/合规/治理功能增强
    1. 集成企业内部单点登录
    2. 开发审计日志功能
    3. 自托管的代理不需要,因为就在企业内部

💪💪💪

三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.

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

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

相关文章

【从零开始学Skynet】实战篇《球球大作战》(一):功能设计

为了能把之前在基础篇中学习到的Skynet的各种知识结合起来,所以在实战篇中,我们准备开发一个完整的游戏案例《球球大作战》,介绍分布式游戏服务端的实现方法。 1、功能需求 《球球大作战》是一款多人对战游戏,下图是它的战斗场景…

C语言库函数(memcpy,memmove)的模拟实现

模拟实现memcpy函数 下面是memcpy的函数声明 void *memcpy(void *str1, const void *str2, size_t n) 参数 str1 -- 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。str2 -- 指向要复制的数据源,类型强制转换为 void* 指针。n -- 要被复…

stm32当中的EXTI外部中断系统

一. 中断系统 中断 : 在主程序运行过程中,出现特定的中断触发条件,使得CPU暂停当前正在运行的程序,而去处理中断程序,完成后,又返回原来被暂停的位置继续工作 中断优先 : 当有多个中断开始时&…

SSR初体验-结合Vue3全家桶

SSR初体验 基础搭建 安装依赖 先开启一个服务器 let express require("express");let server express();server.get("/", (req, res) > {res.send(Hello Node Server); });server.listen(3000, () > {console.log("start node server on …

vue3引入Element plus的详细步骤

目录 一、遇到问题 二、操作步骤 一、遇到问题 在用vue3去引用Element UI的时候,发现了白屏不能显示,一直检查是不是代码的问题。后面找到了问题的所在,原来是vue3对应兼容的是Element Plus,要去下载对应的Element plus版本来引…

为什么提升客户服务是长期成功的关键

当今互联网,服务越来约趋向个人化,但在这个在线互动的时代,当涉及到客户支持时,这种个人联系的感觉可能很难形成。当事情出错时,当客户需要支持时,个人联系的感觉最为强烈。在不远的过去,客户支…

网络安全如何入门?有哪些学习误区?

那年我高三毕业的时候要填志愿前几天 我妈问我想学什么专业。 我说,想学网络设计、或者计算机、网络安全工程师 那时候还比较年轻,也对网络,计算机这方面感兴趣嘛 于是我妈和我爸决定让我学网管。 我说不想做网管,想直接成为一…

给想涨薪和正在学习Android的朋友们一些建议

前言 相信很多从事Android开发工作的朋友,在入职一年后会有申请涨薪的想法,但由于某些原因,公司拒绝了您的加薪申请,在我看来,出现这种情况主要有两种原因:第一个原因可能是你在工作中就只知道埋头苦干&am…

81-82-83-84-85-86 - 文件系统设计与实现

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中)深入浅出操作系统 - 目录 文章目录1. 问题1.1 硬盘上最最最简单的文件系统支持方式1.2 改进思路1.3 更多细节问题1.4 文件系统概要设计1.5 硬盘数据逻辑示意图1.6 硬盘数据物理组…

文心一言 VS chatgpt (8)-- 算法导论2.3 5~6题

五、回顾查找问题(参见练习 2.1-3),注意到,如果序列 A 已排好序,就可以将该序列的中点与v进行比较。根据比较的结果,原序列中有一半就可以不用再做进一步的考虑了。二分查找算法重复这个过程,每次都将序列剩余部分的规…

数据结构之七大排序

数据结构之七大排序🔆排序的概念及其运用排序的概念常见的排序算法🔆插入排序直接插入排序希尔排序🔆选择排序直接选择排序堆排序🔆交换排序冒泡排序快排🔆归并排序🔆非比较排序🔆结语&#x1f…

深度探索list

1.list的基本组成 list是一个双向链表,它的基本组成就是 成员作用prev指针指向上一个元素next指针指向下一个元素data用来保存数据2.list的迭代器 由于人们一般习惯于:迭代器是找到下一个元素,迭代器–是找到上一个元素。在双向链表list中…

C++的命名空间

C和C语言是有一些相似的地方的,而且C就是C语言的改进版本,所以学习C也得学习C语言,但是他们又是有很多不同的地方 下面我们就看一下C的命名空间 我们首先看一下 如果是这一段代码,那么这里输出的是多少呢? 很好这里输…

Nacos服务端服务注册源码分析 - 篇四

Nacos服务端服务注册源码分析 - 篇四 服务端调用接口 嗨 ~~~ 上班除了无聊的摸鱼,我还学了一个新技能,偷偷写博客。。。。 我们先回忆一下之前的三篇文章 🕐Nacos 客户端服务注册源码分析-篇一 🕑Nacos 客户端服务注册源码分析…

路由器的两种工作模式及快速通过express搭建微型服务器流程,解决刷新页面服务端404的问题

history模式与hash模式 首先这个#叫做hash,最大的特点就是不会随的http请求,发给服务器。 默认的模式是hash模式,如果想要修改,可以在router里面的index.js中配置mode属性, 它们俩直接的区别最明面上的有没有#和hist…

Python第三方库安装

看见更大的Python世界 Python社区PyPI The Python Package Index PyPI: Python Package Index PSF维护的展示全球Python计算生态的主站 学会检索并利用PyPI,找到合适的第三方库开发程序 实例:开发与区块链相关的程序 第1步:在pypi.org…

【服务器数据恢复】EVA存储数据硬盘掉线导致LUN不可用的数据恢复

服务器数据恢复环境: HP-EVA存储环境:EVA某型号控制器EVA扩展柜FC硬盘。 服务器故障: EVA存储中两块磁盘掉线导致存储中某些LUN丢失不可用。 服务器数据恢复过程: 1、首先对故障存储中所有磁盘做物理故障检测,经过…

在Spring Boot微服务使用RedisTemplate操作Redis

记录:400 场景:在Spring Boot微服务使用RedisTemplate操作Redis缓存和队列。 使用ValueOperations操作Redis String字符串;使用ListOperations操作Redis List列表,使用HashOperations操作Redis Hash哈希散列,使用SetO…

基于LNMP架构搭建网站

一、编译安装Nginx 服务 1、编译安装Nginx 服务的操作步骤 systemctl stop firewalld systemctl disable firewalld setenforce 01.1 安装依赖包 yum -y install pcre-devel zlib-devel gcc gcc-c make1.2 创建运行用户 useradd -M -s /sbin/nologin nginx1.3 编译安装 cd…

Claude注册安装教程【403 Forbidden】

Claude注册安装教程 尝试注册Claude的兄弟需要注意,最后一步需要科学上网 本来打算看看csdn,结果可能是时效性,和我情况不一样 按照他们的意思,点击add a stack 就进去了,我却被403 这个时候我就搜索stack,…