架构基石

116 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第6天

复杂度的6个来源:

  1. 高性能

1.1.任务分配:不同的任务分配到不同的机器上执行。

1.2任务分解:把复杂的业务系统拆分成小而简单的组成部分。但拆分过细会已指数级别增加系统间的调用 ,反而会让系统性能下降。

2.高可用

2.1.本质上都是用冗余来实现高可用。

2.2计算高可用

2.3存储高可用

2.4高可用状态决策:判断系统当前的状态是否正常,选举主节点。

3.可扩展性

3.1.利设计模式,代码封装易变的,系统分层,抽象。

3.2对未来的需求有预测

4.低成本

5.安全

6规模

架构设计三原则:

1.合适原则:合适优于业界领先。

1.1没那么多人,却想干那么多活,是失败原因。

1.2没有过我的积累,想一步登天,是失败原因。

1.3.没有那么卓越的业务场景,却幻想录光一闪为天才。

2.简单原则:简单优于复杂

2.1结构复杂,组成系统的组件过多,组件多就越有可能出现组件故障。定位问题比较难

2.2逻辑的复杂性,就是业务本身复杂。

3.演化原则:演化优于一步到位

3.1,windows也不是一开始设计就是win10系统。要根据情况不断迭代演进。

软件设计流程:

1.识别复杂度:正确分析出了复杂性,后续的架构设计方案才不会偏离方向。架构的复杂度主要来源于“高性能”“高可用”“可扩展”“业务复杂性”等几个方面,要将主要的复杂度问题列出来,然后根据业务、技术、团队等综合情况进行排序,优先解决当前面临的最主要的复杂问题。

2.设计备选方案

2.1备选方案的数量3~5个。

2.2备选方案的差异要比较明显

2.3备选方案的技术 不要只局限已经熟悉是技术。

2.4备选方案不易过细,太浪费时间和精力。