大家好,我是程序员柏风,AI 最全的 Vibecoding 学习地图 http://coderoadmap.cn 作者。
综合练习
本课整合 devops-config-platform-essentials 全部内容:为 CodeRoadMap 选定 配置管理工具、云平台、容器平台、入口、数据与 Serverless 周边 的组合方案,并输出可交付的 架构决策记录(ADR) 与 分阶段实施路线图。请结合 devops-cloud-essentials、terraform-essentials、kubernetes-essentials 与 /roadmaps/devops 全局视角完成练习。
学习目标
- 独立完成 CM + IaC + 平台 + 数据 + 入口 的端到端选型与论证
- 输出 staging / prod 两套环境 的差异表与迁移步骤
- 在路线图节点上标注本 track 各课对应的 实际技术选型
练习场景
CodeRoadMap 计划从 单机宝塔 迁移到 可支撑 1 万 DAU、99.9% SLA、国内用户为主 的生产平台。团队技能:熟悉 Java/Spring、Next.js、基础 Linux;无专职 SRE;预算中等,可接受托管服务费用。
任务一:选型矩阵(必填)
完成下表并写 每项 1–2 句理由:
| 维度 | 你的选型 | 备选 | 理由 |
|---|---|---|---|
| 云平台 | AWS / Azure / 阿里云 | ||
| 计算(backend) | App Service / AKS / VM+systemd | ||
| 计算(platform) | Vercel / App Service / K8s | ||
| 容器平台 | vanilla K8s / OpenShift / 无容器 | ||
| CM 工具 | Ansible / Puppet / Chef / 仅镜像 | ||
| 数据库 | 托管 MySQL / 自建 | ||
| 入口 / LB | Nginx / 云 LB + CDN | ||
| 密钥 | Key Vault + ESO / 环境变量 | ||
| Serverless 周边 | Azure Functions / Cloud Functions / 无 |
任务二:架构图与 ADR
# adr-001-platform-migration.yaml — 提交模板
title: "CodeRoadMap 生产平台架构 ADR"
status: proposed
context: |
单机宝塔无法满足 SLA;需多云可迁移与托管降低运维。
decision:
cloud: "示例:Azure 国内区域"
compute: "AKS + Argo CD"
cm: "Baseline: Ansible hardening;节点 Immutable"
data: "Azure Database for MySQL Flexible Server"
consequences:
positive:
- "托管 DB 自动备份与 PITR"
- "ESO 统一密钥"
negative:
- "K8s 学习曲线"
- "出站流量成本需监控"
migration_phases:
- phase: 1
goal: "Staging on AKS,单 AZ"
exit_criteria: "E2E 测试通过"
- phase: 2
goal: "Prod HA,多副本 + 托管 DB"
exit_criteria: "PITR 演练成功"
画出 Internet → CDN/LB → platform/backend → MySQL/Redis 数据流,标注 dcp-proxy、dcp-data 对应组件。
任务三:Terraform + CM 分工清单
# 列出你计划用 Terraform 管理的 5 个资源类型
# 示例:azurerm_kubernetes_cluster, azurerm_mysql_flexible_server,
# azurerm_key_vault, azurerm_public_ip, azurerm_dns_a_record
# 列出你计划用 CM / GitOps 管理的 5 项配置
# 示例:node hardening, ingress-nginx helm, external-secrets,
# cert-manager, prometheus-stack
说明 为何不用 Puppet/Chef 管应用配置(若你如此选择),或说明 为何保留 CM 管 OS。
任务四:验收与 Runbook
- 编写 10 条冒烟测试(含登录、课程列表、进度保存、管理端导入 draft)
- 编写 故障 Runbook 3 则:MySQL 复制延迟、backend Pod CrashLoop、Key Vault 密钥轮换
- 在 /roadmaps/devops 截图或文字标注 configuration-management、platform、data-management、load-balancer 四个节点与你选型的对应关系
参考方案提示(自评后对照)
小团队常见 MVA:单云托管 K8s(或 App Service)+ 托管 MySQL + Terraform + ESO + 云 LB;CM 仅用于 节点 baseline 或 不用 CM(Immutable 节点)。大企业 RHEL 环境 可能选 OpenShift + Puppet + ARO/自建 OCP。
小结
综合练习 = 在真实约束下做平台全栈选型,并用 ADR + 分阶段迁移证明可落地。 完成本课即覆盖 /roadmaps/devops 平台层主要节点;建议继续 devops-cloud-essentials 多云细节或 kubernetes-essentials 深度实践。