跳转到内容

2.4 部署交付

掌握持续交付、持续部署、容器技术以及部署策略(蓝绿部署、金丝雀部署)。

定义:完全自动化的过程,当业务开发完成的时候,可以做到一键部署

主要体现

阶段特点
需求阶段抛弃传统需求文档,使用便于开发人员理解的用户故事
开发测试阶段做到持续集成,让测试人员尽早进入项目开始测试
运维阶段打通开发和运维之间的通路,保持开发环境和运维环境的统一

常用方案

  • Kubernetes + Docker
  • Matrix系统

完整的镜像部署(三个环节)

环节说明
Build将软件编译形成RPM包或Jar包
Ship将所需的第三方依赖和第三方插件安装到环境中
Run在不同的地方启动整套环境
公式 ★★★★☆

持续部署三环节

Build → Ship → Run

  • 概念:部署时准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本
  • 优势:当出现问题时,可以快速地将用户环境切回旧版本
  • 概念:当有新版本发布时,先让少量用户使用新版本,观察新版本是否存在问题
  • 优势:如果出现问题,就及时处理并重新发布;如果一切正常,就稳步地将新版本适配给所有的用户
重点 ★★★★☆

部署策略对比

蓝绿部署=双版本快速切换 | 金丝雀部署=小范围测试

持续交付例子

就像自动化生产线,从原材料(需求)输入,到产品(软件)输出,全程自动化,不需要人工干预。

蓝绿部署例子

就像双车道换道,有新车道(蓝)和旧车道(绿)同时存在,车辆先在新车道试运行,确认没问题后,通过红绿灯(域名解析)将所有车辆切换到新车道。如果新车道有问题,立即切回旧车道。

金丝雀部署例子

就像煤矿工人下井前,先放一只金丝雀进去探测,如果金丝雀没事,人再进去。先让少量用户使用新功能,观察没问题后再推广给所有用户。

知识点关键要点记忆口诀
持续交付三阶段需求(用户故事)、开发测试(持续集成)、运维(打通通路)三阶段
持续部署三环节Build(编译)→ Ship(安装依赖)→ Run(启动环境)三环节
部署两策略蓝绿部署(双版本切换)、金丝雀部署(小范围测试)两策略
练习

持续交付的关键特征是( )

  • A A. 自动化部署
  • B B. 手动测试
  • C C. 文档驱动
  • D D. 以上都不是
练习

蓝绿部署的主要优势是( )

  • A A. 成本低
  • B B. 速度快
  • C C. 可快速回滚
  • D D. 安全性高
练习

金丝雀部署的核心思想是( )

  • A A. 一次性全部部署
  • B B. 先小范围测试
  • C C. 只部署新功能
  • D D. 不需要测试
练习

持续部署的Build环节是指( )

  • A A. 安装依赖
  • B B. 编译软件
  • C C. 启动环境
  • D D. 测试软件
  1. 持续交付三阶段:需求、开发测试、运维
  2. 持续部署三环节:Build → Ship → Run
  3. 蓝绿部署:双版本切换,可快速回滚
  4. 金丝雀部署:小范围测试,逐步推广
💬 讨论区