第51章|CD 的环境策略:dev/staging/prod、多租户与权限边界

很多人把环境理解成“三套机器”,但真正要管的是风险梯度与责任边界dev实验室——快、脏、可试错; staging彩排厅——尽量像真唱,但仍可推倒重来; prod正式舞台——观众在场,灯光不能乱打。再配上多租户隔离谁能把代码推到哪一站,才是一套能写进审计报告的 CD 策略。

Topology

Tiers & fidelity

  • dev / stg / prod
  • data realism
  • traffic shape
Tenancy

Isolation

  • account / VPC
  • namespace RBAC
  • network policy
Governance

Gates

  • approvals
  • change window
  • break-glass

1. 环境首先是“治理对象”,其次才是资源

同一套 Helm chart 可以部署到任意名字空间;差别在于谁有权改数据是否真实故障影响谁是否受变更窗口约束。 平台团队应把环境定义成策略包:身份、网络、密钥、配额、观测、回滚期望——而不是只给一张 IP 表。

Fidelity & blast radius increase → dev fast loop · synthetic data broad developer access low blast radius feature flags ON staging prod-like topology subset or masked data integration & perf probes release candidate gate production real traffic · real money strictest RBAC & audit approvals · SLO · on-call change window / freeze
图 1:越靠右,越像真实世界——权限与流程要同步“升压”。

2. 多租户与权限边界:不止 namespace

在 Kubernetes 上,“租户”可能对应业务线、客户、或团队。边界手段分层:云账号/订阅(最强隔离)、VPC/VNet集群/控制面namespace + ResourceQuotaNetworkPolicyAdmission 策略。 小团队可以共享集群 + 多 namespace;金融或多租户 SaaS 往往要硬隔离。关键是把身份(谁)映射到可操作的资源集合(什么),并定期做权限评审

Isolation ladder (strong → flexible) Dedicated cloud account billing · compliance boundary VPC / peered network segmentation Cluster / node pool noisy neighbor control Namespace + RBAC + policy default for many internal platforms Quota · LimitRange · NetPol · PSA Pick depth to match regulator + customer contract — not “everyone gets own AWS org” by default
图 2:隔离是成本曲线;用风险驱动选层级,而不是用口号。

3. 发布与审批:把“谁能推 prod”变成可审计规则

典型控制包括:双人审批变更窗口(避开业务高峰)、冻结期(大促/财报季)、紧急通道(break-glass)事后补单与复盘。 与工具无关的原则是:默认路径慢而安全,例外路径快但有记录。CI/CD 平台上的 environment protection、GitHub/GitLab 审批、ServiceNow 变更单,都是实现载体。

反模式:人人能直接 kubectl apply prod;或审批流程存在但永远点同意——两者都会让合规与真实风险脱节。

4. 非生产数据:别用真库当玩具

staging 若灌入全量生产数据,一旦发生泄露,风险接近生产。常见做法:合成数据抽样 + 脱敏仅元数据、或只读副本 + 严格访问控制。 数据治理团队应参与环境设计,而不是事后补锅。

Promotion path with gates merge CI + tests artifact signed deploy stg smoke / perf prod gate approval + window observe SLO Each arrow can be a policy decision: who approves, what evidence is required
图 3:发布不是“最后一步点一下”,而是证据链上的多个关卡。

5. 环境对照表(便于团队对齐语言)

维度 dev staging production
主要目的 功能迭代与联调 集成验证与预演 对外服务与收入
数据 合成/假数据为主 脱敏或子集 真实数据,强合规
变更节奏 高频率 中频率,贴近发布节奏 受控,必要时冻结
权限 较宽(仍要审计) 角色分离 最小权限 + 审批
Governance policy as code · audit · quarterly access review
图 4:环境策略要可审计——口头约定在事故调查里站不住。

6. 本章清单

  1. 画一张当前 dev/stg/prod 的拓扑 + 数据 + 权限三列表,找出缺口。
  2. 为 prod 定义发布审批与变更窗口;为紧急发布写 break-glass 流程(含事后复盘模板)。
  3. 评估多租户隔离层级:namespace 是否足够,还是必须账户级隔离。
  4. 与数据团队协作,明确 staging 使用的数据策略与脱敏标准。
  5. 预告下一章:配置管理——把 .env 从“个人咒语”变成平台能力。
← 上一章:Tekton 实战 下一章:配置管理 →

web · 轻松学习