基础设施里程碑
checkpoint-infrastructure;Docker + 云资源。
35 分钟
基础设施里程碑
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 建议 或 staging 自动、prod 人工 gate。