大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
基础设施里程碑
checkpoint-infrastructure 是全栈路线图的高阶汇总:用 Terraform 描述云资源,配合 fsm-automation 的 Ansible、github-actions-essentials 的 CI/CD、docker-essentials 的容器化,以及 fsm-monitoring 的 Monit,形成 基础设施即代码 + 自动部署 + 监控 闭环。对应 /roadmaps/full-stack 末尾「Congratulations」前的工程化验收。
学习目标
- 对照 /roadmaps/full-stack checkpoint-infrastructure,用 Terraform 创建应用所需最小 AWS(或等价云)资源:VPC/子网、EC2 或 ECS、RDS/PostgreSQL、安全组
- 串联 Terraform → Ansible/Compose → GitHub Actions → Monit 的部署图,并在 README 说明
- 将本里程碑与 fullstack-roadmap infrastructure 节点、生产级 spring-boot-essentials 配置(profile、secrets)对齐
路线图期望的四层自动化
Terraform → VPC、EC2、RDS、IAM、DNS
Ansible/Compose → 装运行时、拉镜像/ jar、启服务
GitHub Actions → test、build、push、trigger deploy
Monit → 进程与资源监控、自动重启
任一层的缺失都会在半夜发版时暴露——本里程碑要求 四层都有文档与入口命令。
Terraform 最小模块
infra/
├── main.tf # provider、backend
├── variables.tf
├── outputs.tf
├── ec2.tf
├── rds.tf
└── security_groups.tf
状态文件:远程 backend(S3 + DynamoDB lock 或 Terraform Cloud),禁止 solo 把 terraform.tfstate commit 进 Git。敏感输出用 sensitive = true;DB 密码进 Vault 或 AWS Secrets Manager。
与 Docker 的分工
- Terraform Provisioning 机器与网络
- docker-essentials:应用与 PostgreSQL 用 compose 跑在 EC2 上,或推 ECR 后 ECS 拉取
- react-essentials 静态构建物可由 nginx 容器或 S3+CloudFront 托管
选 EC2+Compose 或 ECS 一种写进 ADR(Architecture Decision Record),README 链接该文档。
CI/CD 触发 deploy
github-actions-essentials 典型链:
push main → build jar & docker image → push registry
→ ssh/ansible/terraform apply(或 GitOps 改 tag)
生产 deploy 建议 manual approval 或 staging 自动、prod 人工 gate。
成本与安全
- 实验完
terraform destroy或停实例,避免 RDS 空跑 - 安全组:22 仅你的 IP;5432 不对 0.0.0.0/0
- IAM 最小权限;不用 root AK/SK 跑 CI
练习
- Terraform apply 成功,output 含 SSH 或 load balancer 地址;destroy 流程文档化
- 从 git push 到应用在云主机可访问,中间无手工 SSH 装依赖(与 fsm-automation 一致)
- 在 /roadmaps/full-stack 勾选 checkpoint-infrastructure,附架构 ASCII 图
小结
基础设施里程碑 = Terraform + 部署链 + 监控位。 完成后你具备「从代码到云」的端到端工程化能力。下一课 监控里程碑 用 Monit 守护进程与资源阈值。