架构实战训练营模块 1 作业 -- 开启架构之旅
本人背景
对于架构这块,本人真是一个小白中的小白。平时工作也就是写写界面。什么都玩一点,什么都不精通。别说架构图看不懂了,基本的业务图我看的也是一脸懵。痛定思痛之下,咬咬牙,其实也不多钱,就下单入坑架构师训练营。
作业 1:画一个微信业务架构图。
说真的,微信每天都在用,但业务架构图是什么鬼?
华仔:视频课上了没?
我:上了呀!
华仔:那就赶紧画呀。
我:画什么?哪里画?如何开始?
上面对话,纯属内心戏。
准备描述一下这次作业的完成经历,业务架构图思考和形成过程。
第一天:无从下手。于是手动把微信看到的,想到的个个功能全部列了一下。一些层级超过 2 层的就没有列了。
大概这里整理了一下之后,决定从业务架构图的「目标」入手。
提出了业务架构图到底是什么作用?到底是给谁去用的?
通过知乎搜索之后,得出结论:业务架构图常用场景是给新人员培训或者给客户讲解基本功能使用。
于是参考华仔的视频学习。觉得应该是把重要的、常用的功能归类总结出来。所以要判断哪些功能是必须的,那些可以忽略。最后把功能进行「分类」。
我的第一版本的微信业务架构图就出来了。
这里我有个疑问,其实「第三方」这块,我觉得应该也是属于一个模块。但刚刚好模块分类是 5 个。不能形成很好的布局排列。所以只能把它拉长跟「全局模块」进行排练。
我最初的设想是:
不过这样就会出现一个空缺的部分。有点不好看。不过第一版就这样先吧。贝佐斯都说了:完成比完美更重要。
作业 2:“学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;(DNS,Nginx)
② 要求至少 3 人合作完成;(分模块)
③ 能够支撑管理 1000 个学生;(无需高性能,高可用,可扩展)
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;(团队技术水平考量)
② 大家经济条件一般。(成本)
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
根据对题目的分析。大概提炼了几个关键信息。
结合华仔分析架构的视频。总结出一个小套路:高性能、高可用,可扩展,安全、成本。先从这 5 点进行分析。
对于小白来说,这几个字中文我都认识。合起来就不知道啥跟啥了。所以百度了一下。把上面 5 点列了一个细则。
高性能:缓存(浏览器缓存,CDN 缓存,本地缓存,分布式缓存...)、异步(本地队列、分布式队列)。资源复用(线程池、连接池、对象池、单例)等。
高可用:冗余(数据冗余,服务冗余)、限流、降级、熔断、自动化运维自动化测试等。
可扩展:主要指微服务的拆分时保证每个微服务“高内聚、低耦合”。应用间通过队列异步解耦、分布式微服务
安全:密码和手机校验码做身份认证、登录、交易、敏感数据等,对网络通信做加密、请求编码转换,避免 XSS 攻击、SQL 注入等。
成本:人力成本、硬件成本等
开启的步骤采用华仔的工作流程图。先从上面五点进行分析。再结合架构设计 3 原则进行判断、拆解、取舍。
高性能:题目已经给出最大量级,1000 个学生即可。所以推断出对性能要求不高。不需要过多考虑性能问题。合适即是正义。过度设计都是瞎扯。
高可用:对于学校教学的实际场景来说,学生管理系统并不是需要贯穿在每一个实际教学当中。只是一个辅助系统。所以服务器宕机也能接受,但是从实际学生信息登记的过程,要不就是人工录入,要不就是学生自己注册然后人工审核。有点繁琐。所以需要保证数据不要丢失。
可扩展:由于学校学生管理系统业务相对单一。而且暂时也没有上云,所以也不考虑微服务。可扩展这块,可以从业务拆分时,可以考虑一下。但不是主要任务。
成本:结合当前的实际情况,主要成本还是人力成本。
安全:对于部分隐私信息,还是得加密一下。
方案一:
方案二:
方案三:
题目要求,不能过于简单。因此方案 1 被否决了。
合适原则
虽然团队有一个 PHP 高手,但从团队角度出发,需要可维护。而且 java 整个生态环境成熟。因此团队全部采用 JAVA 开发。开发和运维成本都比较低。
简单原则
没有必要无增实体,只需把现有业务进行拆分成模块,部署容易,成本可控。
演化原则
学生数量和业务逻辑都相对简单,暂时不考虑演化。
综上所述:结合成本和团队技术等因素。主要是考虑成本,学生经济实力有限。选择方案 2 合适。服务器可以考虑使用阿里云或者腾讯云端产品
学生有优惠价格。租用一台服务器,可以包月的形式,免去 Nigix 和数据库的部署。还可以提前学习一下相关云端产品的使用。
Author:架构实战营 9 期 阿姆斯壮|广州
版权声明: 本文为 InfoQ 作者【阿姆斯壮】的原创文章。
原文链接:【http://xie.infoq.cn/article/2cb568051bfee11da53a38df8】。文章转载请联系作者。
评论