架构师手记 16 个性化标签架构设计V0.1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
架构是什么东西?一不小心就想歪歪了~~~
个性化标签系统 架构设计文档V0.1
带墨镜的 番茄哥
文档修订记录
第 2 页共33 页
目录
文档修订记录 (2)
1.前言 (4)
1.1.文档说明 (4)
1.2.目标读者 (4)
1.3.V0.1的说明 (4)
1.4.关于架构文档的看法 (5)
1.5.几个标签管理混乱的例子 (5)
2.现状分析 (7)
3.再谈架构设计 (12)
4.架构设计Level 1 -- 系统边界 (13)
4.1.接口进一步分析 (14)
4.2.接口分析说明(这是正规的章节,4.1那是过程) (15)
4.3.一些话 (16)
5.架构设计Level 2 –系统主要模块 (17)
5.1.系统主要模块 (19)
5.2.主要模块与外围系统的接口 (19)
5.3.模块的关系和内部接口 (20)
5.3.1.主要业务实体 (20)
5.3.2.模块之间的数据流向和内部接口——第1步 (23)
5.3.3.模块之间的数据流向和内部接口——第2步 (29)
5.4.Level 2回顾 (30)
6.架构设计Level 3 –模块内部 (31)
6.1.数据抽取服务器设计要求 (32)
6.2.其余模块 (33)
7.最后的说明 (33)
1. 前言
1.1. 文档说明
此文档是番茄版的个性化标签系统的架构设计文档V0.1。
此文档将会是架构师手记—架构实战中的一个系列。为什么说将会呢?因为我不一定能把这个系统写完。
此文档不是真的描述一个正儿八经的个性化标签系统的架构设计文档,而是一份参考,而是一个展示。我试图向读者展示我所理解的架构设计文档是什么样的,如果你有不同意见,不用告诉我,因为你我的背景不同,有不同意见是正常的。
我见过最励志的一句话:“我不能把这个世界交给你们!!”
我在网上看到很多标注着架构设计的文档,实际写得一塌糊涂。我遇到很多有架构师头衔的架构师,实际就是一个高级程序员,完全不知道如何把自己的想法有组织有逻辑的表达出来,团队作战基本为零。
所以,我觉得我不能把这个世界交给他们。
所以,如果你对我有不同意见的话,可以埋藏在心里,也可以像我一样写出来,回馈给社区。
1.2. 目标读者
架构师、程序员、测试人员、热爱妹子的猥琐大叔、看金鱼的怪叔叔、不可救药的腐女、屌丝、宅基、各种非人类、外星生命体等爱好架构设计的卖萌的优秀青年。
1.3. V0.1的说明
一般来说,一个复杂系统的架构设计需要经历很多个版本,每个版本都体现了架构师在不同阶段的思考成果。
V0.1说明我们正处在思考的初级阶段,就是刚刚拿到需求,还一头雾水的时候。
在这个时候,我们需要做什么呢?wait and see
1.4. 关于架构文档的看法
我属于比较正常的人。所以,文档中常常有些福利。而这篇文档头上,我贴了几张十分正规的图片。
不理解架构文档是什么的读者,请盯着这几幅图看几秒钟。
在IT出现之前,架构师就早早出现了,架构文档也早早出现了。
想想一栋大楼如何建造起来,一辆汽车如何制造出来,一块手表如何制造出来。
很多架构师会说一句话,“我不是写了文档吗!”
读者曰:“你的文档看不懂,根本没有说清楚!”
架构师曰:“想要搞清楚,自己去看代码!”
只能靠代码来阐述自己设计思想的架构师,不合格。
架构师又曰:“时间紧,压力大,我没有时间写文档。”
其实在很多情况下,给这样的架构师写文档的时间,他也写不出能让人看懂的架构设计文档。不是没时间,而是没技能。
1.5. 几个标签管理混乱的例子
哥买的就是雀巢!!!
看到了吗,这就是我们要避免的事情。
不要认为搭建了一个系统就结束了,管理制度也是很重要的。这已经脱离本文的范畴,按下不
表。
2. 现状分析
第一件事情,永远是现状分析,去了解现在的IT环境是什么样子的。在分析的过程中,我们会发现很多问题,这些问题会影响到架构设计。
在我们这个假设的场景中,注意,由于整个个性化标签系统都是虚构,所以我们可以来一个复杂一点的场景,也许这个场景有点不合理,不过因为是虚构的,所以无所谓了。
我们假定的场景如下:
厦门机房北京机房
这个假定的公司,比如叫做“幸福狗”公司,销售各种各样的衣鞋箱包。目前,幸福狗公司有两个机房,在北京机房部署了它的电商系统,在厦门机房部署了它的生活讨论网站和IM(即时聊天)系统,两个机房之间目前有20M专线连接,主要用于两个机房之间数据同步。
幸福狗公司还有很多别的系统,比如财务、人事、合同管理、商户管理等系统,由于和个性化标签系统没有关联,我们无需关心。
放眼望去,我们可以看到上图中的系统全部都是个性化标签系统依赖的数据来源。
所以我们面临的第一个问题,就是怎么抽数据,怎么存数据?然后我们就会发现,这特么不是第一个问题,第一个问题是:此系统的机器在哪里?
假定幸福狗公司的老板在武汉找了一个妹子,如下图。
出于各种原因,这位老板决定在武汉包一片机房,用于建设大数据中心。
然后我们惊讶地发现,个性化标签系统的机器将会部署在武汉机房,有10台便宜的PC服务器给它用。
然后上面那张图中多了一个武汉机房,如下图。
厦门机房北京机房
这时我们能看出来在三个机房之间有数据抽取的需求。
在这种数据量很大的场景,需要做一些数据相关的分析,来评估相关的带宽和硬件是否能够支持系统的场景。