IBM HashiCorp官宣:Terraform外部语言支持被终结

46 阅读5分钟

IBM旗下HashiCorp停止支持Terraform CDK,专注于HCL。现有CDK代码将不再维护。社区反响强烈,但IBM鼓励用户迁移至HCL,认为其更适合运维。

译自:IBM HashiCorp 'Sunsets' Terraform's External Language Support

作者:Joab Jackson

展望未来,当您运行 IBM 的 Terraform 基础设施即代码 (IaC) 软件时,您将只有一种语言来编写配置:HashiCorp 配置语言 (HCL)。

周一,IBM 旗下的 HashiCorp 公司宣布将不再支持 Terraform 云开发套件 (CDK 或 CDKTF)。尽管现有代码仍将保存在 GitHub 存档 中,但 HashiCorp 将不再维护或更新该代码,使其几乎无法用于企业。

“不幸的是,Terraform CDK 未能在大规模应用中找到产品市场契合度。IBM 旗下的 HashiCorp 公司已选择将投资重点放在 Terraform 核心及其更广泛的生态系统上,”该网站上的一份说明写道。

IBM 建议,CDK 本身根据 Mozilla 公共许可证 (MPL) 授权,因此用户可以自由地分叉该软件。

然而,该公司鼓励用户使用 HCL,HCL 由 HashiCorp 开发,并根据 Mozilla 公共许可证 (MPL) 授权,最初是为该软件设计的。

Terraform 坎坷的历史

Terraform 最初由 HashiCorp 于 2014 年发布,是一款允许管理员通过脚本和一组 Terraform 命令(如 terraform initterraform planterraform apply)在云端或本地自动化部署 IT 基础设施的软件。输出以 JSON 格式呈现。

随着时间的推移,Terraform 已成为 最受欢迎的自动化 IT 部署软件,尤其是在 云原生社区 中。

2023 年,HashiCorp Terraform 的许可证从开源切换到商业源代码许可证,这激发了用户基于该软件创建了一个名为 OpenTofu 的开源分支,该分支先被 Linux 基金会 采纳,后来又被 云原生计算基金会 (CNCF) 采纳。

2024 年,IBM 宣布 收购 HashiCorp,并于今年早些时候完成了收购。

Terraform CDK 迁移计划

尽管有人呼吁将 CDK 开源,但 IBM 仍鼓励现有用户采纳 HCL,如果他们尚未这样做的话。

该公司表示:“如果您不使用 AWS CDK,我们强烈建议您迁移到标准的 Terraform 和 HCL,以获得长期支持和生态系统对齐。”

在 CDK 下创建 .tf 文件的 Terraform 用户可以使用以下命令将其转换为 HCL:

cdktf synth --hcl

亚马逊网络服务 基础设施上使用 CDTF 的用户也可以使用 AWS 自己的 CDK

IaC 的局限性

总的来说,基础设施即代码的用户群似乎正因 IaC 的局限性感到不适

因此,在过去几年中,出现了许多替代 Terraform 的方法,包括 Adam Jacob 的 System InitiativePlatform Engineering Labs 的 Formae

它们指出 HCL 有其局限性,特别是在高度可扩展的环境中。作为一种声明式配置语言,HCL 在提供高级编程构造方面受到限制,许多由此产生的变通方法导致了晦涩的代码。工具也同样有限。

CDKTF 给用户带来的优势是,它允许他们通过自己喜欢的编程语言而非 HCL 来详细说明部署指令。CDKTF 支持 TypeScriptPython、C# 和 Go 编程语言

这也是 Terraform 的竞争对手 Pulumi采取 的方法,即能够在 多种编程语言 中的任何一种中配置基础设施。

然而,关于通用编程语言是否优于领域特定语言,也存在相当大的争议。批评者指出,Terraform 的用户是管理员,而不是程序员。

社区反应

尽管如此,IaC 社区的许多人 对这一消息反应强烈。Kubernetes 专家 David Flanagan 指出,仅 TypeScript 的开发套件每周下载量就超过 140,000 次,其他语言社区也有类似的数据。

他认为,很明显,CDKTF 仍然被社区广泛使用。

“你不会因为一个项目没有人喜欢或者没有‘市场契合度’而杀死一个每月 [估计有] 百万用户的项目。你杀死它是因为它没有增加你的利润率,它没有销售企业许可证,”Flanagan 在一段短视频中说。

公平地说,IBM 在收购开源公司并保持开源许可证不变方面有着悠久的历史,包括 基于 Linux 的 Red Hat、专注于 Cassandra 的 Datastax,以及最近基于 Kafka 的 Confluent。(然而,关于 IBM 是否会 将 Terraform 许可证 恢复为开源,目前还没有消息。)

Flanagan 接着指出,人们可能正在使用 CDKTF,因为他们需要额外的编程能力。“它被称为基础设施即代码,而不是基础设施即 JSON,”他打趣道。

站点可靠性工程师 Liz Fong-Jones 提供了一个更为审慎的回应。

“更温和地说,HashiCorp 已经决定停止尝试通过语言原生 API 与 Pulumi 竞争;他们完全专注于 HCL 作为与 Terraform 合作的唯一方式,”Fong-Jones 在 BlueSky 上写道

我们需要为 IaC 提供编程语言吗?

事实上,其他人认为这可能不是一个坏主意。

Platform Engineering Labs 的联合创始人兼首席执行官 Pavlo Baron 认为 IBM 的举动是合理的。

“IBM 历来擅长优化目标买家。这更像是一个迹象,表明周期右侧没有人想做全面的编程。CDK,包括 Pulumi 采取的方法,专为开发人员服务。开发人员通常不操作基础设施,”他在电子邮件中写道。

“然而,严肃的运维工作发生在周期的右侧。因此,CDK 错过了目标用户,反而服务了错误的用户。所以我理解并支持这一举动背后的逻辑。”