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

130 阅读2分钟

01 为什么要有流程

1.1 团队规模和流程的关系

image-20220517211542214

1.2 传统的瀑布模型

image-20220517213103401

  • 优点:重视流程的公司,不能出现严重问题
  • 缺点:流程低效,很多时间都是在等待

1.3 敏捷开发

image-20220517213015329

  • 以小团队快速迭代
  • 团队之间合作更加紧密
  • 以人为本,和用户沟通

1.4 The Scaled Agile Framework(SAFe)

是一套管理框架

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

02 有哪些流程

需求阶段

评估需求:

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

    image-20220517213651673

大部分时间做重要但不紧急的事

开发阶段

  • 云原生下的开发:

    • 容器化技术
    • 微服务技术
    • WebIDE

测试阶段

  • 功能环境

    • 需要一个能模拟线上的环境进行开发和测试
    • 环境和环境之间能够隔离,不影响其他功能的开发和测试
  • 集成环境

    • 不同人开发的功能合并在一起测试,相互之间的影响可能产生缺陷
    • 迭代发布的所有功能合并在一起测试,确保发布的所有功能之间的影响不产生缺陷
  • 回归环境

    • 确保新的功能不对老的功能产生影响
    • 回归测试一般会借助自动化测试脚本

发布阶段

  • 各种发布模式

    • 蛮力发布:简单粗暴,直接用新版本覆盖老版本。
    • 金丝雀发布:由于金丝雀对瓦斯极其敏感,因此以前矿工开矿下矿洞前,先会放一只金丝雀进去探是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。
    • ✔(常用)滚动发布:每个实例都通过金丝雀的方式逐步放大流量,对用户影响小,体验平滑
    • 蓝绿发布:常备两个集群,先把流量全部切换到Group 1,升级Group2,然后再把流量全部切换到Group 2,升级Group 1。最终恢复流量。
    • 红黑发布:与蓝绿发布类似,但是日常只有一个集群工作,发布时扩容一个集群升级新版本,切换流量后下掉老版本的集群。

运维阶段

  • 止损
  • 周知
  • 定位
  • 修复

03 流程怎样优化

DevOps

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

全流程自动化

  • 通过效能平台串联各个阶段
  • 减少无价值的等待