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 推进,每个阶段执行对应的质量门禁。
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,在大小写敏感的文件系统中可能引发引用错误。
统一的环境分类与标识规则,是服务目录跨环境同步的第一道标准化防线。下一层将在此基础上,定义模板如何与环境标识绑定,实现配置的自动化生成与传播。