ToB企服应用市场:ToB评测及商务社交产业平台
标题:
80后聊架构:毕竟怎么做架构计划? | 架构师之路
[打印本页]
作者:
耶耶耶耶耶
时间:
2024-12-30 16:55
标题:
80后聊架构:毕竟怎么做架构计划? | 架构师之路
《架构师之路:架构计划中的100个知识点》
2.毕竟怎么做架构计划?
做了多年架构计划,很多人连
架构计划的关键流程和步骤
都不知道。
很多人确实上线了很多系统,也确实做了很多需求,但基本上都是毫无方法,全凭自己想象的在做架构计划。
总的来说,架构计划有四个大的步骤,其中第二个步骤最容易被大家忽略。
画外音:别人写文章,都说最后一个步骤最重要,我就是不按套路出牌,说第二个步骤最重要。
步骤一:明白需求以及界说系统边界。
Understand the problem & Identify the scope of the system.
明白需求
,核心是和产物确定
功能要求
,以及根据业务确定
性能要求
。
界说系统边界
,核心是要明确系统哪些要做,哪些不做。
步骤二:也就是最容易被忽略的一个步骤,调研已有的类似的系统。
Research on existing systems.
你做的系统,是业内首创吗?如果不是,看看类似的系统是怎么做架构计划的。参考成熟的方案,能让你的架构计划事半功倍。
步骤三:顶层计划。
high-level architecture design.
计划系统的主要组件,以及它们之间的交互方式。比方:
利用机房,还是云?
利用单体,还是微服务?
要不要cache,要不要mq?
用rdb,还是nosql?
...
这里要包含系统架构的大略图,以及实现核心需求的流程图。
步骤四:也是非常重要的一个步骤啊,办理主要矛盾迭代计划。
Refine the design.
顶层计划完之后,哪里是系统的主要矛盾?
我们要根据潜在的主要矛盾,细化与迭代顶层计划。
比方:你要做一个计数系统,对推文的阅读,转发,点赞,批评数进行计数。
如果主要矛盾如果是并发,1秒10万次?
那可能就要加入一些乐观锁,异步,批量哀求,Copy On Write等巧妙计划,甚至牺牲一些同等性。
如果主要矛盾是同等性,不允许数据堕落?
那可能就要加入一些互斥,校验,write-ahead logging等巧妙计划。
迭代计划,办理完一个主要矛盾,继续办理次要矛盾,直到所有的功能需求与性能需求得到满足。
这内里有个地方要注意:
在第四步迭代计划的过程中,有可能会发现第三步顶层计划的缺陷。这个时间,可能要优化甚至颠覆第三步顶层计划。
这也是为什么,一些系统运行了几年,就要进行重构。
当初的顶层计划已经满足不了现有的业务需求了。
在原有顶层计划基础上,办理不了主要矛盾了,那就重构顶层计划来办理。
这也是我非常推崇的两大核心架构计划理念:
其一,任何脱离业务的架构计划都是耍地痞;
其二,架构不只是计划而来的,更是迭代与演进而来的;
这两个架构理念,我会在接下来的100个架构知识点里反复提及。
咱们举个例子。
如果业务需求是:“我想做一个1万属性,100亿数据,每秒10万吞吐的分类信息平台,像58同城一样,2个月实现”。
怎样来做架构计划呢?
第一步,探究功能需求,性能需求,确定系统边界。
分类信息的特点是什么?
雇用、房产、二手、二手车、黄页... 品类繁多,帖子schema不固定...
分类信息的典型场景是什么?
帖子发布,帖子欣赏,帖子搜索(每个属性都可能被搜索)...
需求的性能要求是什么?
数据量巨大,吞吐量巨大,用户实时访问,哀求延时敏感...
第二步,调研类似系统的方案。
国外信息分类做得最好的应该是 Craigslist 了,网上调研一些相关的资料,可以相识到,其核心的一些关键计划点:
怎样品类扩展?
服务垂直拆分,数据垂直拆分...
怎样扩展属性?
利用 MongoDB 的 schema-free 特性...
怎样实现搜索?
早期利用 MongoDB 的索引,后期利用搜索服务...
怎样应对大数据量,高并发量?
数据程度切分,逻辑处理服务化,集群化,缓存降低数据库压力...
总之,通过调研,对已有的方案有个开端的相识。
第三步,架构顶层计划。
宏观上,联合 Craigslist 的一些成熟实践:
(1)业务垂直拆分;
(2)微服务分层,集群化;
(3)数据库程度切分;
(4)缓存降压;
...
大的方向基本就能把握住。
第四步,根据主要矛盾迭代计划。
主要矛盾1:多品类帖子数据的分开存储,使得核心业务流程及其复杂,怎么解?
潜在方案:同一帖子中心服务IMC(Info Management Center)。
主要矛盾2:多品类帖子属性的分级,扩展与校验,怎么解?
潜在方案:同一分类管理服务CMC(Category Management Center)。
主要矛盾3:大数据量,高并发,跨品类的多属性搜索,怎么解?
潜在方案:同一信息检索服务E-search。
这里,是一个架构计划过程的案例演示,主要用以说明计划流程。详细“1万属性,100亿数据,每秒10万吞吐的分类信息平台”的计划细节,详见后文的补充阅读资料。
回归今日话题,
架构计划的四大步骤:
其一,明白需求以及界说系统边界;
其二,调研已有的类似的系统;
其三,顶层计划,界说核心组件与交互;
其四,针对主要矛盾迭代计划;
有人问,第二步鉴戒已有成熟系统的方案,在别的架构计划方法中,没有看到过这个步骤呀?莫不是搞笑的吧。
我非常严厉地声明,这个步骤非常重要,
调研一定要多花时间。
不可的步伐员,看谁的代码都是屎;不可的架构师才会以为,我的方案最牛逼,别人的方案都是屎,但其实,自己原创的大部门方案才是屎。
保持开放的心态,鉴戒良好的方案,是良好架构师的核心品质。
“鉴戒”这一点,任何不接地气的架构方法,都不会有人说。
补充阅读材料
上述案例架构计划方案细节,详见:
《1万属性,100亿数据,每秒10万吞吐,架构怎样计划?》
4000字,慎入。
==全文完==
如《接下来,预备干一件大事...》所述,后续我将以
短视频+图文+直播+星球社群
的情势,系统性的分享自己的架构师之路,架构计划中的100个相关知识点,欢迎感兴趣的童鞋关注。
画外音:均免费。
本日这是第二篇,码字有点慢,等不及的童鞋,先看短视频吧。
短视频已经发布第三篇,《何时优化延时?何时优化吞吐量?》,这是
大规模系统架构优化中,找主要矛盾,找优化点的架构师必备技能。
第3集:何时优化延时?何时优化吞吐量?
盼望大家能有收获。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4