写点什么

架构实战训练营模块 1 作业 -- 开启架构之旅

作者:阿姆斯壮
  • 2022 年 9 月 26 日
    广东
  • 本文字数:1903 字

    阅读完需:约 6 分钟

架构实战训练营模块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 期 阿姆斯壮|广州

发布于: 刚刚阅读数: 4
用户头像

阿姆斯壮

关注

进击的lulu 2018.10.13 加入

数学的世界,算法的世界,编程的世界,有趣的世界里有太多的996。。。只有强大了自身才有say no 的资本。

评论

发布
暂无评论
架构实战训练营模块1作业--开启架构之旅_架构实战营_阿姆斯壮_InfoQ写作社区