从需求到上线全流程| 青训营笔记

108 阅读2分钟

概述

敏捷开发:以更小的团队进行更快的迭代

SAFe:一套管理框架

  • 精益产品开发
  • 敏捷软件开发
  • 系统思考

流程

需求阶段

MVP思想:

  • 站在用户角度思考
  • 收集用户反馈,快速迭代

开发阶段

多人/多端协作开发

云原生下的开发

传统虚拟机:

容器化:

代码规范,自测和文档

代码规范:

  • 养成良好的注释习惯
  • 不要有魔法数字,魔法字符串
  • 重复的逻辑抽象成公共的代码
  • 正确使用IDE的重构

自测:

  • 单元测试
  • 功能环境测试
  • 测试数据构造

文档:

  • 大型改造需要有设计文档,方案评审
  • 好的接口文档能够更方便和前端进行沟通

测试阶段

image.png 功能环境

集成环境

回归环境

发布阶段

发布模式:

  • 蛮力发布:简单粗暴,新版本覆盖旧版本

    • 优点:简单,成本低
    • 缺点:发布过程中服务会中断,出现问题会影响用户
    • 适用:测试环境部署,小公司或非核心项目
  • 金丝雀发布

    • 优点:相对简单,能够用少量用户验证新版本功能
    • 缺点:发布过程中服务会中断,发现不了随用户量增大而发生的问题
    • 适用:测试环境部署,小公司或非核心项目
  • 滚动发布:

    • 优点:发布过程中服务不会中断,可以充分验证服务功能
    • 缺点:流程较复杂,发布速度较慢,新老版本不兼容的情况下不能使用
    • 适用:
      • 发布系统能力较强,可以平滑切换流量
      • 发布自动化程度高,可以自动滚动
  • 蓝绿发布:

    • 优点:发布速度快,流程相对简单
    • 缺点:需要有一半机器承担所有流量的能力,出现问题会影响全部用户
    • 适用:服务器资源丰富,新老版本不兼容需要一次性升级到最新版
  • 红黑发布:

    • 优点:发布速度快,流程相对简单
    • 缺点:机器数量需要能扩容一倍,出现问题会影响全部用户
    • 适用:服务器资源丰富,新老版本不兼容需要一次性升级到最新版

运维阶段

运维.png

流程优化

DevOps解决方案:

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