Formae 和 PKL:革新基础设施自动化

作为一名自动化工程师和架构师,多年来一直在使用 Terraform 等 IaC 工具。最近开始探索和学习 Pulumi,这是一个让开发者和团队使用熟悉的编程语言创建、部署和管理云资源的基础设施即代码平台。在周末阅读中,遇到了一个关于开源平台 Formae 的新公告。

基础设施即代码的挑战与 Formae 的出现

  • 基础设施即代码虽改变了云资源管理方式,但仍存在状态文件损坏、漂移检测复杂、现有基础设施编码痛苦等问题。Formae 是 2025 年 10 月由 Platform Engineering Labs 推出的开源平台,利用 Apple 的 PKL 配置语言,以无状态、自动发现的方式应对这些挑战。

PKL:基础介绍

  • 什么是 PKL:PKL 是 Apple 于 2024 年初开源的用于生成配置的编程语言,结合了声明式配置与静态类型编程语言的表达性和安全性,不同于 JSON 或 YAML 等静态格式。
  • 基本 PKL 语法:使用简单的键值结构,可通过 -f 选项生成不同输出格式,如 JSON。
  • PKL 的独特之处

    • 类型安全与验证:具有丰富的类型和验证系统,可在部署前捕获配置错误。
    • 可编程性:支持类、函数、条件和循环等编程特性,面向配置管理。
    • 多格式输出:可生成 JSON、YAML 等多种格式输出,适用于现有工具链。
    • 代码生成:可自动生成流行编程语言的配置代码,创建类型安全的绑定。
    • 优秀的 IDE 支持:通过插件和扩展提供实时验证、文档访问和指导。
  • PKL 的设计哲学:基于键值结构,直观定义配置设置,能处理简单和复杂数据结构,解决配置文件从简单到复杂的维护问题。

PKL 工作流程:从开发到部署的处理过程。

Formae:重新思考基础设施即代码

  • 核心架构:完全以代码实现基础设施,无需状态文件,通过“Agent + Metastructure”模型自动发现和编码现有基础设施。
  • 核心原则

    • 代码作为单一真相来源:在代码中实现基础设施,无需维护二级工件。
    • 自动发现和编码:自动发现和编码现有基础设施,无论其创建方式如何。
    • 构建用于共存:可与其他 IaC 和基础设施管理工具共存。
  • Metastructure 概念:将基础设施配置与操作逻辑结合,实现实时监控和同步。
  • 双操作模式:包括 reconcile 和 patch 模式,满足不同操作场景。

传统与现代 IaC 方法对比

  • Terraform(HCL)方法:需要显式状态配置,有初始化、计划、应用等流程,需手动导入现有资源。
  • Formae(PKL)方法:无需状态配置,自动发现现有资源,通过特定语法定义和应用资源。

平台比较:从语言、状态管理、许可证、云支持等方面对 Terraform、OpenTofu、Formae、Pulumi、CloudFormation、Bicep、Crossplane 进行快速比较。

实际应用案例

  • 棕地环境:Formae 可消除痛苦的导入过程,自动发现和管理现有 AWS 资源。
  • 多环境管理:利用属性进行环境特定配置,轻松部署不同环境。
  • 团队工作流程:核心平台工程师管理主基础设施代码,其他工程师通过 patch 模式进行小范围安全更改。

选择指南:根据不同需求选择合适的工具,如 Terraform/OpenTofu 用于最大的提供商覆盖和标准技能,Formae 用于消除状态复杂性等,Pulumi 用于通用语言和基础设施-应用集成等。

结论:Formae 和 PKL 是近十年基础设施即代码工具的重大创新,有望解决现有工具的局限性,对平台工程团队有重要意义。

阅读 169
0 条评论