需求到上线 | 青训营笔记

121 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第6篇笔记

1.敏捷开发

1.1需求阶段

MVP (minimum viable product, 最小化可行产品)思想

四象限图:

1.2开发阶段

云原生下的架构

  • 各个功能在不同的服务中
  • 不同模块需要进行RPC通信
  • 不同模块可以独立扩缩容
  • 每个服务的代码仓库仅由少部分人维护

云端IDE

CODING - 一站式软件研发管理平台

1.3团队的分支策略

  • 集中式工作流

  • Forking工作流

  • GifFlow工作流

1.4测试阶段

测试环境:

1.5发布阶段

蛮力发布

  • 优点

    • 简单
    • 成本低
  • 缺点

    • 发布过程中服务会中断
    • 出了问题会影响全部用户
  • 适用

    • 测试环境部署
    • 小公司或者非核心的业务服务

金丝雀发布

  • 优点

    • 相对简单
    • 能够用少量用户验证新版本功能
  • 缺点

    • 发布过程中服务会中断
    • 发现不了随用户量增大才会暴露的问题
  • 适用

    • 测试环境部署
    • 小公司或者非核心的业务服务

滚动发布

  • 优点

    • 发布过程中用户体验不会中断
    • 可以充分验证服务功能
  • 缺点

    • 流程较复杂,对发布系统有比较高的要求
    • 发布速度较慢
    • 新老版本不兼容的情况不能使用
  • 适用

    • 发布系统能力较强,可以平滑切换流量
    • 发布自动化程度高,可以自动滚动

蓝绿发布

  • 优点

    • 发布速度快
    • 流程相对简单
  • 缺点

    • 需要有一半机器承担所有流量的能力
    • 出问题会影响全部用户
  • 适用

    • 服务器资源丰富
    • 新老版本不能兼容的情况,需要一次性升级到新版

红黑发布

  • 优点

    • 发布速度快
    • 流程相对简单
  • 缺点

    • 对机器数量仍然有要求
    • 需要能扩容一倍
    • 出问题会影响全部用户
  • 适用

    • 服务器资源丰富
    • 新老版本不能兼容的情况,需要一次性升级到新版

1.6运维阶段

2.DevOps

  • DevOps解决方案

    • 代码管理
    • 自动化测试
    • 持续集成
    • 持续交付
  • 效率竖井

  • 全流程自动化