一、先一句话记死
- dev:开发环境 → 程序员日常写代码调试
- staging:预发/仿真环境 → 和生产一模一样,上线前最后验收
- prod:生产环境 → 正式对外给用户用的线上环境
二、逐个详细解释
1. dev 开发环境
- 人群:开发程序员
- 用途:日常开发、联调、自测、改Bug
- 特点:
- 代码最新、经常迭代重启
- 配置随意、日志开调试级别
- 性能、稳定性要求低
- 对应 K8s:资源低配、副本数1、镜像常更新
2. staging 预发/仿真环境(也叫 test/uat)
很多公司也叫:UAT 验收环境、测试环境、仿真环境
- 人群:测试、产品、业务验收
- 用途:上线前全功能测试、业务验收、模拟真实流量
- 特点:
- 硬件、配置、中间件、版本 和 prod 完全一致
- 用仿真测试数据,不用真实用户数据
- 不对外网开放,只内部访问
- 作用:避免直接把有问题代码扔到生产,先在 staging 跑一遍
3. prod 生产环境
- 人群:真实用户、外部客户
- 用途:正式对外提供服务
- 特点:
- 高可用、多副本、容灾、高性能
- 严禁随意改配置、随意重启
- 数据都是真实业务数据,不能随便删改
- 严格灰度发布、变更审批
三、标准研发流程
开发写完代码 → 打包镜像
→ 部署 dev 自测联调
→ 部署 staging 测试验收
→ 没问题再灰度上线 prod
四、K8s / Kustomize 里为什么要分这三个?
- 一套基础 YAML(base)
- 只在 overlay 里改差异:
- dev:副本1、资源低配、日志DEBUG、连接测试库
- staging:副本2、配置同生产、仿真数据库
- prod:多副本、资源高配、日志INFO、真实业务库
五、通俗类比
- dev:自家厨房,随便折腾试菜
- staging:样板间试吃,摆盘、用料和正式门店一模一样,请人试吃验收
- prod:正式营业门店,对外卖菜,不能翻车
六、补充常见环境缩写
- local:本地本机环境
- test:测试环境(有的公司把 test 当 staging 用)
- uat:用户验收环境 = staging
- sandbox:沙箱环境,给第三方/合作方联调用

1027

被折叠的 条评论
为什么被折叠?



