用真实编程语言管理云基础设施——告别 HCL,用 Python / TypeScript / Go 的完整语言能力构建基础设施
Terraform 用 HCL(HashiCorp Configuration Language)来描述基础设施——HCL 是一种专用配置语言,虽然简单易学,但功能有限:复杂的循环逻辑难以表达,缺乏真正的抽象机制,无法使用你熟悉的测试框架,更无法将基础设施逻辑封装成普通的函数或类。当基础设施规模增长时,HCL 代码往往变得难以维护。
Pulumi 的思路截然不同:它让你用真实的编程语言(Python、TypeScript、Go、C#、Java)编写基础设施代码。这意味着你可以使用 for 循环批量创建资源、用函数封装重复逻辑、用类继承建立资源层次、用 pytest 或 jest 编写单元测试——所有软件工程的最佳实践都可以直接应用到基础设施代码中。
同时,Pulumi 提供免费的 Pulumi Cloud 托管状态,无需自建 S3 + DynamoDB 来存储状态文件,大幅降低入门门槛。
用编程语言的力量驾驭云基础设施
Python/TypeScript/Go/C# 的完整能力:循环、条件、函数、类、模块化——IaC 终于可以像普通代码一样组织。
TypeScript 强类型 Input<T>/Output<T>,IDE 自动补全所有资源属性,编译时发现错误而非运行时。
同一套语言管理 AWS、GCP、Azure、Kubernetes、Cloudflare 等 150+ Provider,无需学习多套工具。
Pulumi Cloud 免费提供状态存储、团队协作、秘密加密,无需自建 S3/DynamoDB 后端。
用 pytest/jest/go test 编写单元测试 mock 资源,用集成测试验证真实部署——这是 HCL 做不到的。
在代码中编程驱动 Pulumi(无需 CLI),构建自定义部署平台、自动扩缩容工具。
系统掌握 Pulumi,从入门到生产级实践
IaC 回顾与 HCL 局限性、Pulumi 核心优势、与 Terraform/CDK 对比、安装 CLI、第一次 pulumi up、核心名词解释。
Resource 创建模式、Output<T> 异步引用值、apply() 变换、资源选项 dependsOn/protect、ComponentResource、Dynamic Provider。
@pulumi/aws 安装配置、TypeScript 强类型资源属性、Input<T>/Output<T>、pulumi.all() 合并、实战 VPC+EC2+安全组网络架构。
pulumi_aws Python SDK、资源命名惯例、Output apply()、for 循环动态创建、字典配置模式、实战 Python 创建 EKS 集群。
Stack 环境隔离(dev/staging/prod)、stack init/select、pulumi config set/secret 加密、Stack Reference 跨环境引用共享输出。
EC2/VPC/S3/RDS/Lambda/EKS 全覆盖,实战三层 Web 架构(ALB + EC2 + RDS),掌握 AWS 主流资源的 Pulumi 写法。
@pulumi/kubernetes SDK、部署 Deployment/Service/Ingress/ConfigMap/Secret、Helm Chart、Kustomize、与 EKS/GKE/AKS 集成。
ComponentResource 封装复用、Module 跨项目共享(npm/PyPI)、Pulumi Registry、Automation API 编程驱动 Pulumi。
Pulumi Cloud vs Self-Hosted 后端、pulumi refresh/import、GitHub Actions 集成、PR Preview 预览变更、secrets 加密方案。
单元测试 mock 资源、集成测试真实部署、CrossGuard 合规策略、从 Terraform 迁移、项目结构与命名最佳实践。