系列文章
?? 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

△ VCS(GitHub) 連接

△ 作業空間管理

△ 安全和密鑰管理

△ 遠程運行

△ 運行狀態

△ 私有模塊注冊表
團隊管理功能增強
- 團隊管理: 團隊管理是作業空間管理的一個子功能,借助此功能,作業空間管理員可以通過根據其公司的組織結構創建團隊來管理云用戶的訪問級別,這些團隊根據反映編碼職責或運營職責的組織被授予權限,例如:管理策略,管理作業空間,管理 VCS 設定
- 成本估算: 提供與作業空間中的代碼部署關聯的成本估算的最佳預估,會明確地顯示本次 Run 會增加/減少多少美元的開銷,
- 策略即代碼: 通過和 HashiCorp Sentinel 的集成,用于自動化治理、安全和基于合規性的策略配置,Sentinel 是一個可嵌入的策略及代碼框架,如,您可以定義,如果您要部署到 Dev,則您的任何 EC2 構建實體都不能大于大小 XXX, 如果嘗試構建更大的實體,則運行將失敗,也可用于執行 CIS 基準和其他合規性框架,
- 配置設計器: 基于 GUI 的作業流程,用于選擇、組合、定義變數和創建獨特的作業區,降低開發人員使用心智負擔,開發人員從預定義的 IaC 模塊構建配置;按需預配,

△ 團隊管理

△ 成本預估

△ 策略即代碼

△ 配置設計器
安全/合規/治理功能增強
- 單點登錄 (SSO): 集成您的企業身份提供商,為您的團隊成員提供無縫登錄程序,目前,Terraform Cloud 支持以下身份提供程式:
- Azure AD
- Okta
- SAML
- 審計日志: 對于在事件發生后甚至在解決問題時嘗試深入研究時啟用取證調查是絕對必要的,
- 自托管的代理: 允許 Terraform Cloud 業務使用自托管代理有效地查看私有資料中心,

△ SSO
總結思考??
Q: 如果我們也要基于 Terraform OSS 來做一個企業內部的 IaC 云服務,我們應該增強哪些功能?
A: 需要從以下幾方面入手:
- 增強 Terraform 的功能和使用體驗
- 基于 S3 提供開箱即用的 Backend 和 Remote State
- 提供和內部代碼倉庫(如 GitLab) 的無縫對接
- 基于 Terraform Workspace 開發一套友好 UI, 并結合企業實際情況,延伸出入:環境、Project 等概念
- 基于 HashiCorp Vault 提供開箱即用的安全和密鑰管理功能
- 自動創建預配置好 Terraform 的臨時 VM 或 Pod 以在云服務上開箱即用地運行 Terraform, 而不需用戶在本地運行 Terraform; 同時提供每次 Terraform Apply 后的狀態歷史
- 提供內部私有 Terraform Registry
- 開發完整而豐富的 API 介面,供企業內部其他系統(如 DevOps) 集成使用,
- 豐富團隊管理功能:
- 豐富完善團隊管理功能、設定和 UI
- 引入 FinOps 理念:對接主流公有云費用 API, 在 Plan 階段進行成本估算,
(可選)策略及代碼
- 安全/合規/治理功能增強
- 集成企業內部單點登錄
- 開發審計日志功能
自托管的代理不需要,因為就在企業內部
??????
三人行, 必有我師; 知識共享, 天下為公. 本文由東風微鳴技術博客 EWhisper.cn 撰寫.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/550018.html
標籤:其他
上一篇:虛幻引擎 4 學習筆記 [1] :藍圖編程 Demo
下一篇:夜鶯監控V6初探
