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

122 阅读2分钟

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

团队规模和流程的关系

复杂项目没有流程会有什么问题?

  • 需求阶段:每个人都有自己的想法,团队决策需要有一个过程
  • 开发阶段:多人/多端协作开发,每个人都有自己的安排,相互配合需要有一个流程
  • 测试阶段:产物怎么交付,测试如何开展,BUG怎么修都需要流程
  • 发布阶段:怎样确保发布过程平稳丝滑,版本和流量如何控制,需要有规范
  • 运维阶段:线上问题如何应急响应,处理用户反馈和线上问题需要有流程

传统的瀑布模型

  • 工作流程的直观表达
  • 定义了标准的研发阶段
  • 以流程为本,理想化模型 需求->开发->测试->发布->运维

敏捷开发

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

需求阶段

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

云原生下的开发

传统虚拟机

  • 在物理主机中虚拟出多个虚拟机,每个虚拟机拥有自己的操作系统
  • 运维人员负责维护和交互虚拟机
  • 每个虚拟机中都要安装相应的依赖环境 容器化
  • 容器是在操作系统中虚拟出来的
  • 通过cgroup,namespace和Union Mount等技术实现了容器之间的相互隔离同时容器只有很低的开销
  • 应用和其依赖作为一个整体,打包成镜像交付 单体架构
  • 多个模块共同组成一个服务,服务体量较大
  • 模块之间直接调用,不需要RPC通信
  • 服务整体扩缩容量
  • 多人开发一个代码仓库,需要充分集成测试 微服务架构
  • 各个功能在不同的服务中
  • 不同模块需要进行RPC通信
  • 不同模块可以独立扩缩容
  • 每个服务的代码仓库仅由少部分人维护