这是我参与「第五届青训营 」伴学笔记创作活动的第 11 天
一、有哪些流程
- 需求阶段 MVP(minimum viable product, 最小化可行产品)思想:站在用户的角度思考,每一代都是可行产品,收集用户反馈, 快速迭代。
- 开发阶段
- 云原生下的开发
- 承载机器
- 传统虚拟机: 在物理主机中虚拟出多个虚拟机,每个虚拟机拥有自己的操作系统。运维人员负责维护和交付虚拟机,每个虚拟机中都要安装相应的依赖环境
- 容器化: 容器是在操作系统中虚拟出来的。通过cgroup,namespace和Union Mount等技术实现了容器之间的相互隔离,同时容器只有很低的开销。应用和其依赖作为一个整体,打包成镜像交付。
- 架构
- 单体架构: 多个模块共同组成一个服务,服务体量较大。模块之间直接调用,不需要RPC通信。服务整体扩缩容量。多人开发一个代码仓库,需要充分集成测试。
- 微服务架构: 各个功能在不同的服务中。不同模块需要进行RPC通信。不同模块可以独立扩缩容。每个服务的代码仓库仅由少部分人维护。
- 开发环境
- 开发环境逐渐云原生化。FaaS,PaaS等等技术,让开发逐渐从本地DE向线上转变。以前从入职领到电脑搭建完一套完整的开发环境需要很久,而通过WEB IDE等技术,环境未来将会开箱即用。
- 承载机器
- 云原生下的开发
- 测试阶段
- 功能环境
- 需要一个能模拟线上的环境进行开发和测试
- 环境和环境之间能够隔离,不影响其他功能的开发和测试
- 集成环境
- 不同人开发的功能合并在一起测试,相互之间的影响可能产生缺陷
- 迭代发布的所有功能合并在一起测试,确保发布的所有功能之间的影响不产生缺陷
- 回归环境
-
确保新的功能不对老的功能产生影响
-
回归测试一般会借助自动化测试脚本
-
- 功能环境