写点什么

架构实战营 - 第一周

作者:Asura
  • 2022 年 5 月 17 日
  • 本文字数:869 字

    阅读完需:约 3 分钟

1. 微信业务架构

1.1. 什么是业务架构

  • 描述系统对用户提供了什么业务功能,类似于 4+1 视图的场景视图

  • 考验的是分解、抽象、提炼、总结的能力

  • 画架构图的时候,要考虑我们是向谁展示信息,目标对象的关注点和关注粒度是什么,然后再来画

1.2. 微信业务架构图


2. “学生管理系统”毕设架构设计

2.1. 背景及要求

假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:

  • 要求可以通过公网域名访问;

  • 要求至少 3 人合作完成;

  • 能够支撑管理 1000 个学生;

  • 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。


你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:

  • 大家都会 Java,但是有一个是 PHP 高手;

  • 大家经济条件一般。


作业要求:

  • 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。

  • 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。

  • 给出你选择的最终方案以及选择理由。

2.2. 面向复杂度架构设计分析

这里因为是作业,需求已经明确,不需要澄清,我们直接进行复杂度分析,利用架构设计三原则,构建备选架构,即

  • 合适原则

  • 简单原则

  • 演化原则

2.2.1. 复杂度分析过程

  • 要求可以通过公网域名访问

  • 申请域名

  • 公网 IP => 云服务器

  • DNS 域名解析

  • 要求至少三人合作完成

  • 找了 2 个好朋友一起来做这个项目

  • 能够支撑管理 1000 个学生

  • 1000 个学生,不需要考虑高性能问题

  • 需要基本高可用,做个数据库的主备即可,定时做备份

  • 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案

  • 方案要相对平衡些

  • 大家都会 Java,但是有一个是 PHP 高手

  • 可以前后端分离,PHP 作为前端

  • 大家经济条件一般

  • 尽量少的申请外部资源

2.2.2. 备选方案

  • 学生管理模块

  • 学生管理

    考试管理

    课程管理

    权限管理

2.2.2.1. 方案 1:Nginx+MVC 业务服务器+Mysql 主备

2.2.2.2. 方案 2:DNS(学校)+MVC 业务服务器+Mysql 主备

利用学校的 DNS 域名服务器做路由转发,这样可以少部署一台 Nginx 服务器,节省一笔费用

2.2.2.3. 方案 3:DNS(学校)+PHP 前后端分离业务服务器+Mysql 主备

利用 3 个开发者其中一个是 PHP 高手,这样可以加快整个开发周期

2.2.2.4. 选择

考虑各种条件和复杂度,最终选择方案 3

用户头像

Asura

关注

还未添加个人签名 2018.10.02 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营-第一周_Asura_InfoQ写作社区