📦 实盘部署 · 基础概念

运维实战 · 第一讲
📌 什么是实盘部署 real deployment

实盘部署 指将经过验证的软件系统(包含配置、依赖、数据) 正式发布到目标服务器或集群,并使其持续对外提供生产级服务的过程。 它不仅仅是“上传文件”,而是涵盖环境准备、配置管理、灰度策略、健康检查、回滚预案 等一系列工程化操作。

🎯 核心特征: 可重复 · 可观测 · 可回滚 · 自动化驱动

🔄 部署生命周期

  • 计划 & 准备 — 制品构建、配置清单、环境校验
  • 发布前验证 — 自动化测试、安全扫描、预部署检查
  • 部署执行 — 蓝绿/滚动/金丝雀策略实施
  • 健康检查 & 观测 — 探针、日志、指标、告警
  • 运营 & 治理 — 扩缩容、配置热更新、证书轮换
  • 回滚 & 应急 — 快速恢复至上一稳定版本
计划 验证 部署 观测
⬅️ 持续迭代 · 可回滚

⚖️ 部署 vs 发布

对比维度部署 (Deploy)发布 (Release)
定义将制品安装到目标环境使功能对用户可见可用
业务影响可能无外部影响直接影响用户体验
可逆性快速回滚 (技术操作)功能开关 / 灰度控制
典型动作替换镜像、重启进程开启流量、更新路由
💡 关键认知: 部署是发布的技术前提,发布是部署的业务决策。
🏗️ 环境分类 dev / test / staging / production
🛠️ 开发 (dev) 🧪 测试 (test) 📦 预发布 (staging) 🚀 生产 (prod)
  • 开发环境 — 开发者本地或共享服务,频繁变更,稳定性低
  • 测试环境 — 集成测试、自动化回归,模拟真实数据子集
  • 预发布环境 — 与生产配置高度一致,最终验收、压测、灰度验证
  • 生产环境 — 面向用户,高可用、监控、SLA 保障
DEV TEST STAG PROD 频繁变更 集成验证 预演/压测 SLA ⬆️ 环境一致性递增 · 管控逐步收紧
属性开发测试预发布生产
配置宽松模拟类生产严格审计
数据脱敏/伪造脱敏子集脱敏+部分真实真实数据
可用性无SLA99%99.9%99.99%+
变更频率极高高中低/变更窗口

📄 典型部署配置片段 (预发布示例)

# config/staging.yaml
app:
  name: trade-engine
  version: 2.4.1
  replicas: 3
  resources:
    cpu: "4"
    memory: "8Gi"
  probes:
    liveness: /healthz
  rollback:
    strategy: auto
代码提交 CI 构建 制品仓库 预发布部署 生产发布 开发 测试 预发布 生产