用途:用于设计或评审基础设施、部署、CI/CD、Docker、Kubernetes、健康检查、回滚、特性开关、生产就绪度及移动发布,仅应用与工作负载、供应商、环境、验收标准相关的章节,不适用时跳过 Docker、Kubernetes、移动、生产、回滚、健康、特性开关与安全检查。
部署策略:滚动(默认)为逐步、零停机替换;蓝绿为双环境、原子切换、即时回滚、2 倍基础设施;金丝雀先路由小比例流量,需流量拆分。
Docker:固定基础镜像标签(如 node:22-alpine),禁止 :latest;多阶段构建加非 root 用户;先复制依赖以利用缓存;.dockerignore 排除 node_modules、.git、tests;定义 HEALTHCHECK 与资源限制。
Kubernetes:配置 startup、readiness、liveness 探针,并设置与工作负载匹配的初始延迟与阈值。
CI/CD:PR 流程为 lint → typecheck → unit → integration → preview;主分支为 build → staging → smoke → production。
健康与关闭:简单形式为 GET /health 返回 {"status":"ok"};详细形式包含依赖、运行时间与版本;需要时服务必须暴露有意义的健康检查并优雅处理 SIGTERM。
配置:使用环境变量(十二要素),按环境分离;启动时校验并快速失败;绝不提交密钥或硬编码 NODE_ENV=production。
回滚:Kubernetes 用 kubectl rollout undo;Vercel 用 vercel rollback;Docker 重新部署之前固定的镜像。
特性开关:生命周期为创建 → 启用 → 5% → 25% → 50% → 100% → 移除开关与死代码;每个开关必须有负责人、过期时间、回滚触发条件,并在两周内移除。
检查清单:部署前需测试通过、代码评审、环境变量、迁移、回滚计划;部署后需健康、受监控、旧 Pod 终止、结果记录;生产需测试通过、无硬编码密钥、JSON 日志、有意义的健康检查、固定版本、校验环境变量、资源限制、TLS、CVE 扫描、CORS、速率限制、CSP/HSTS/X-Frame-Options、已测试回滚、运行手册、待命。安全/CVE 检查适用于可执行或安全敏感的工作负载。
移动部署:EAS 使用 eas build:configure;eas build -p ios|android --profile preview;eas update --branch production;--auto-submit。Fastlane:iOS 用 match/cert/sigh/pilot,Android 用 Gradle/supply。凭据放在环境或密钥存储,绝不入 Git;iOS 签名用 fastlane match 自动化,Android 使用 keytool 与 Google Play App Signing。TestFlight 内部即时、外部 90 天/100 名测试者;Google Play 分内部/测试/生产;审核预期 1–7 天。回滚:EAS 用 eas update:rollback;原生发布回退构建;商店发布减少分阶段发布。