بنقرة واحدة
infrastructure-as-code
基础设施即代码实践,覆盖 Terraform / Pulumi / CloudFormation。关注状态管理、模块化设计、drift 检测、环境一致性、变更审计。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
基础设施即代码实践,覆盖 Terraform / Pulumi / CloudFormation。关注状态管理、模块化设计、drift 检测、环境一致性、变更审计。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
设计 API 认证鉴权和权限矩阵时使用。适用于多角色系统、租户隔离、字段级权限。优先使用 OAuth 2.0 / JWT + RBAC + 资源归属检查。
设计具体 API 端点时使用。适用于资源建模后的下一步、列端点清单、HTTP 方法和状态码选择。优先使用 RFC 7231 HTTP 语义 + GitHub REST 命名规范。
设计 API 错误码和错误结构时使用。适用于错误响应规范、调用方错误处理、调试可观测。优先使用 RFC 7807 Problem Details + 业务错误码 + 调用方处理建议。
设计幂等接口和重试策略时使用。适用于支付、扣减、订单、关键写操作。优先使用 Idempotency-Key + 业务去重键 + 并发冲突处理(ETag/版本号)。
输出 OpenAPI 契约和 Mock 服务时使用。适用于 API 设计的最后一步、给前端/后端/QA 的交付。优先使用 OpenAPI 3.1 + Mock 数据覆盖所有路径 + 详细的下游交接清单。
设计列表接口的分页、筛选、排序、搜索时使用。适用于所有列表 API。优先使用 cursor 分页(大数据)或 offset 分页(小数据)+ 统一筛选/排序规范。
| name | infrastructure-as-code |
| description | 基础设施即代码实践,覆盖 Terraform / Pulumi / CloudFormation。关注状态管理、模块化设计、drift 检测、环境一致性、变更审计。 |
参考来源:Terraform 官方文档、Pulumi 文档、AWS CloudFormation 文档、HashiCorp Best Practices、Infrastructure as Code(Kief Morris)。
1. 声明式优先
描述期望状态,不描述步骤
工具负责收敛到目标状态
2. 状态集中管理
远程 backend(S3 / GCS / Terraform Cloud)
状态锁防止并发修改
3. 模块化复用
通用组件抽成模块
模块有版本 + 文档
4. 环境隔离
每环境独立状态文件
变量文件区分环境差异
5. 变更可审计
PR 触发 plan → 人工审批 → apply
所有变更有记录
6. 最小权限
IaC 执行角色只有必要权限
不使用 admin 角色
7. 不可变基础设施
修改 = 替换,不原地修改
减少配置漂移
1. 规划基础设施
- 画架构图(VPC / 子网 / 安全组)
- 确定资源依赖关系
- 选择 IaC 工具
2. 初始化项目结构
- 目录按环境 / 层分离
- 配置远程 backend
- 设置状态锁
3. 编写模块
- 网络层(VPC / Subnet / NAT)
- 计算层(EKS / ECS / EC2)
- 数据层(RDS / ElastiCache / S3)
- 安全层(IAM / SG / KMS)
4. 环境变量化
- terraform.tfvars 按环境
- 敏感值从 Vault / SSM 读取
- 输出值供下游使用
5. CI 集成
- PR → terraform plan(自动评论)
- merge → terraform apply(审批后)
- 定时 → drift 检测
6. Drift 检测
- 定期 terraform plan 对比
- 告警非 IaC 变更
- 修复或导入
7. 文档与标签
- 资源标签(team / env / cost-center)
- 模块 README
- 变更日志
infrastructure/
├── modules/ ← 可复用模块
│ ├── networking/
│ │ ├── main.tf
│ │ ├── variables.tf
│ │ ├── outputs.tf
│ │ └── README.md
│ ├── eks-cluster/
│ └── rds/
├── environments/ ← 环境配置
│ ├── dev/
│ │ ├── main.tf ← 调用模块
│ │ ├── terraform.tfvars
│ │ └── backend.tf
│ ├── staging/
│ └── production/
├── .terraform-version
└── Makefile
| 特性 | Terraform | Pulumi | CloudFormation |
|---|---|---|---|
| 语言 | HCL | TypeScript/Python/Go | YAML/JSON |
| 状态管理 | 远程 backend | Pulumi Cloud | AWS 托管 |
| 多云 | ✅ | ✅ | ❌(AWS only) |
| Drift 检测 | plan | preview | drift detection |
| 模块生态 | Registry 丰富 | 较少 | 嵌套栈 |
| 学习曲线 | 中 | 低(熟悉语言) | 中 |
□ 远程 backend 已配置(S3 + DynamoDB 锁)
□ 状态文件不在 git 中
□ 模块有 variables / outputs / README
□ 敏感值不硬编码(用 SSM / Vault)
□ 资源有标签(Name / Environment / Team / CostCenter)
□ PR 自动运行 plan
□ plan 输出作为 PR 评论
□ apply 需审批
□ Drift 检测定期运行
□ 模块有版本锁定
□ 最小权限 IAM 角色
□ 有 destroy 保护(prevent_destroy)
□ 输出值供下游消费
templates/terraform-module-template.md — Terraform 模块标准结构模板上游:
架构设计 → 基础设施需求
secrets-config → 敏感配置来源
下游:
kubernetes-orchestration → 集群基础设施
networking-gateway → 网络 / LB / DNS
ci-cd-pipeline → 基础设施部署阶段
monitoring-alerting → 监控基础设施