4. 环境分类与标识:开发(dev)、测试(test)、预发布(staging)、生产(prod)环境特征与标识规则

在标准模板驱动的 CI/CD 服务目录跨环境同步中,环境分类与标识是同步策略的基石。每个环境承载不同的质量门禁、数据敏感度与部署节奏,必须通过统一的标识规则在服务目录中精确表达。本章定义四种核心环境的特征、隔离级别与命名规范。

4.1 四环境模型与核心特征

标准 CI/CD 流水线通常采用四环境递进模型:开发(dev) → 测试(test) → 预发布(staging) → 生产(prod)。每个环境在数据隔离、可用性要求、变更频率和访问控制上存在显著差异。

环境 缩写 数据策略 可用性目标 变更频率 访问范围
开发(dev) dev 模拟数据/脱敏数据 无 SLA 每日多次 开发团队
测试(test) test 脱敏数据/子集 99% 以内 每日 1-3 次 开发 + QA
预发布(staging) staging 脱敏全量/镜像 99.5% 每周 2-3 次 内部干系人
生产(prod) prod 真实用户数据 99.9%+ 按发布窗口 运维 + 审批
实践建议: 在服务目录中,每个环境应独立记录其 data_classification 和 sla_tier 属性,以便同步引擎根据环境等级自动选择数据脱敏策略与回滚窗口。

4.2 环境标识规则

服务目录中的环境标识必须满足全局唯一、可排序、可扩展三项原则。推荐采用 三段式标识:<服务名>-<环境缩写>-<区域/实例>。

4.2.1 标识结构

# 标准格式
{service_name}-{env_abbr}-{region|instance}

# 示例
user-service-dev-cn1
user-service-test-cn1
user-service-staging-cn1
user-service-prod-cn1
user-service-prod-cn2   # 生产多实例

4.2.2 环境缩写规范

  • dev:开发环境,允许频繁重建、数据不持久。
  • test:测试环境,运行自动化测试套件,数据每日重置。
  • staging:预发布环境,与生产配置对齐,运行验收测试。
  • prod:生产环境,受变更管理流程保护,数据不可逆。
避坑指南: 禁止使用 dev1、dev2 等数字后缀代替环境类型。数字后缀应仅用于表示同一环境内的多实例(如 prod-01、prod-02),否则会导致同步规则无法正确匹配环境等级。

4.3 环境递进关系与同步流向

下图展示了标准四环境之间的数据与配置同步流向。箭头方向代表配置传播方向,从 dev 逐步向 prod 推进,每个阶段执行对应的质量门禁。

环境递进与同步流向 开发 dev 测试 test 预发布 staging 生产 prod 各环境门禁检查点 • dev → test:单元测试通过率 ≥ 80%,代码风格检查通过 • test → staging:集成测试通过率 ≥ 90%,安全扫描无高危漏洞 • staging → prod:端到端验收测试通过,变更审批完成,性能基线达标

4.4 环境属性在服务目录中的表达

在服务目录的 YAML 或 JSON 定义中,每个环境应作为独立条目,包含以下关键属性:

# 服务目录环境定义示例 (YAML)
environments:
  - name: dev
    abbr: dev
    order: 1
    data_classification: simulated
    sla_tier: none
    auto_deploy: true
    approval_required: false

  - name: test
    abbr: test
    order: 2
    data_classification: anonymized
    sla_tier: bronze
    auto_deploy: true
    approval_required: false

  - name: staging
    abbr: staging
    order: 3
    data_classification: anonymized_full
    sla_tier: silver
    auto_deploy: false
    approval_required: true

  - name: production
    abbr: prod
    order: 4
    data_classification: real
    sla_tier: gold
    auto_deploy: false
    approval_required: true
关键设计点: order 字段用于定义环境递进顺序,同步引擎据此判断配置是否可以向前传播(例如:允许 dev → test,但禁止 prod → staging 的回流)。auto_deploy 和 approval_required 控制流水线的自动化程度。

4.5 环境标识的常见反模式

  • 使用模糊缩写: 如 pp、prd、stg 等非标准缩写,导致自动化工具无法识别环境等级。
  • 环境与实例混淆: 将 prod-blue 和 prod-green 视为两个独立环境,而非同一环境下的部署策略。
  • 缺少环境元数据: 仅记录环境名称,未附带 order、data_classification 等属性,导致同步引擎无法执行差异化策略。
  • 大小写混用: 如 Dev、TEST、Staging,在大小写敏感的文件系统中可能引发引用错误。

统一的环境分类与标识规则,是服务目录跨环境同步的第一道标准化防线。下一层将在此基础上,定义模板如何与环境标识绑定,实现配置的自动化生成与传播。