极客时间架构训练营模块一作业
微信的业务架构图
要画好微信的业务架构图,首先要理解什么是业务架构?以及除了业务架构还有没有其他的架构?
翻阅了相关的资料之后,解答了上面的两个疑问:
架构主要分为:业务架构、应用架构、技术架构、代码架构和部署架构
业务架构是战略,应用架构是技术,技术架构是装备
业务架构包含业务规划,业务模块、业务流程,对整个系统的业务进行拆分,对领域模型进行设计,把现实的业务转化成抽象对象
“学生管理系统”毕设架构设计
需求
学生管理系统可以真正运行
系统可以通过公网域名访问
至少 3 人合作完成
能够支撑管理 1000 个学生
答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
背景
开发人员都会 java,但是有一个是 php 高手
大家经济条件一般
复杂度分析
高性能
能够支撑管理 1000 个学生,所以高性能 pass 掉
高可用
学生管理系统是辅助系统,短时间挂掉的话不会对学校的日常运行造成过大的影响
学生的数据可以丢失几条,甚至几十条,但是如果一个学校的学生数据全部都是的话,是不可以接受的
综上所述,服务高可用此阶段可以不用考虑,此阶段需要考虑的是存储高可用
可扩展
由于是只管理本校的学生信息,所以不会上云
该版本的业务也不会太过复杂
综上所述,根据简单原则和严禁原则,可扩展并不是该阶段需要考虑的复杂度来源之一
成本
人力成本
服务运行成本
安全
需要考虑功能安全,例如隐私数据加密、sql 注入、跨站脚本攻击等
备选架构
备选架构一
备选架构二
取舍
选择备选架构二
合适原则
符合团队技术水平(都会 java)
开发和运维成本低,不需要拆分为多个服务,开发一套服务代码即可
简单原则
不进行服务拆分,部署和维护简单
没有用到微服务,所以也就不需要整套的微服务基础设施
演化原则
学校的学生数量基本不会发生太大的变化,系统架构可以使用多年
相关参考
阐述架构的分类:谈谈架构的本质和架构分类 (qq.com)
版权声明: 本文为 InfoQ 作者【Le.e】的原创文章。
原文链接:【http://xie.infoq.cn/article/e502a00db4eb1b740ec7bb11b】。文章转载请联系作者。
评论