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

92 阅读2分钟

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

为什么要有流程

个人开发是不需要流程的,但是随着团队规模和问题富杂度的上升,一个人搞定一切就不可能了,会出现新的问题。 比如在需求阶段每个人都会有自己的想法,团队决策需要一个过程;在开发阶段,多人、多端协同合作,每个人有自己的安排,相互配合需要一个流程;测试阶段,产物怎么交付,测试怎么开展,bug怎么修复都要流程;发布阶段怎么确保发布过程丝滑平稳,版本和流量怎么控制,需要有规范;运维阶段线上问题如何应急响应,处理用户问题和线上反馈需要有流程。

传统的瀑布模型定义了标准的研发阶段,软件开发一个阶段接着一个阶段的进行,这样可以最大可能不出问题,但是也非常低效。后来有人提出了敏捷开发:

个体和互动高于流程和工具
工作的软件高于详尽的文档
客户合作高于合同谈判
响应变化高于遵循计划

需求阶段

MVP 思想:站在用户的角度思考,收集用户反馈,快速迭代

开发阶段

云原生开发
微服务架构
团队的分支管理
代码规范和文档

测试阶段

QQ图片20220607213357.png

功能环境、集成环境和回归环境分别测试

发布阶段

发布过程中,出现问题要快速定位,发布负责人要快速通知相关人员关注各个服务的状态;变更服务的相关RD要按规范检查日志,监控,响应线上的预警;值班同学要关注用户的反馈。

蛮力发布:直接用新版本覆盖老版本,简单成本低,但发布中服务会中断

金丝雀发布:相对简单,发布中服务会中断,发现不了随用户增多才暴露的问题

QQ图片20220607214115.png

滚动发布:每个实例都通过金丝雀的方式逐步放大流量,对用户影响小,平滑

QQ图片20220607214248.png

蓝绿发布:把服务分成蓝绿两组,先把蓝组流量摘掉然后升级,只用绿组提供服务,之后切换过来,最终两组全部升级

QQ图片20220607214400.png

运维阶段