架构实战训练营 模块一作业
1. 微信业务架构图:
2. 学生管理系统毕设
方案一
前台使用单页面 Web 程序, 也就是 SPA
在虚拟机内部署包含所有模块的 Java App
DB 有两台, 其中一台为备份
方案二
前台使用传统 PHP Web 页面
每个虚拟机内部运行两个 container, PHP server 和 Java server
PHP 的服务端将业务 CRUD 动作转发到 Java 内
Java App 负责具体的数据操作
DB 有两台, 其中一台为备份
方案取舍
针对方案一:
团队技术水平: 前端需要使用 PHP 的同学学习 SPA 的开发, 需要一段时间. 但是由于其基础好在一周左右能掌握初步的技能而开始工作.
方案成本: 需要两台 VM, 一个 Nginx, 两个 DB, 本地彻底隔离需要至少五台 VM 机器, 若是将 DB 容器化且合并到 Java 所在的 VM, 只要三台 VM
开发周期: 两个同学专注 Java 端业务, 前台同学只负责调用 REST API, 开始的时候需要 SPA 的学习, 但后期可以明确分工并行工作.
对方认可度: 支持 1000+ 的并发访问量对于 Java 应用程序服务器来说没太大问题
针对方案二:
团队技术水平: 前端完全使用 PHP 的技术栈, 但是 CRUD 操作要转发给 Java 代码来完成.
方案成本: 需要两台 VM 运行相互独立的 container 群, 一个 Nginx, 两个 DB, 本地彻底隔离需要至少五台 VM 机器, 若是将 DB 容器化且合并到 Java 所在的 VM, 只要三台 VM. 但是考虑到 PHP 的性能, 三台 VM 对并发处理有挑战
开发周期: 两个同学专注 Java 端业务, 前台 PHP 同学除了负责 Web 页面开发还要定义 PHP 调用 Java 的接口. 这个 PHP 与 Java 的调用有一定的性能损失.
对方认可度: 这个方案基于开发团队的现成技术栈, 开始会很快, 但是 PHP 与 Java 的调用关系增加了额外的工作量, 同时 PHP 对于并发的支持会导致资源消耗大
结论:
选择方案一, 当 PHP 的同学学习 SPA 的时候后台 Java 的业务代码可以并行启动, 开发周期并不会太大影响. 而且系统主要逻辑都在 Java 内, 更易于 TDD 的应用提供质量.
评论