《从零开始学架构》二:架构设计流程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41594698/article/details/102697698

1 架构设计流程

1.1 第一步:识别复杂度

按照排查法来判断:是否需要高性能、是否需要高可用、是否需要高扩展、成本是否过高、安全是否要加强、规模是否过多

这一步是“万事开头难”,考察的是架构师的经验;
而识别出了复杂度之后,接下来的工作就是翻阅资料,考察架构师技术功底的时候了

1.2 第二步:设计备选方案

确定了系统面临的主要复杂度问题,方案设计有了明确的目标后,就可以开始真正进行架构方案设计了

第一种常见的错误:设计最优秀的方案。

第二种常见的错误:只做一个方案。

第三种常见的错误:备选方案过于详细。

备选方案的数量以 3 ~ 5 个为最佳

备选方案的差异要比较明显
例如,主备方案和集群方案差异就很明显,或者同样是主备方案,用 ZooKeeper 做主备决策和用 Keepalived 做主备决策的差异也很明显。
但是都用 ZooKeeper 做主备决策,一个检测周期是 1 分钟,一个检测周期是 5 分钟,这就不是架构上的差异,而是细节上的差异了,不适合做成两个方案。

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

1.3 第三步:评估和选择备选方案

几种指导思想:最简单、最牛逼、最熟悉、给领导决定

评估和选择的方式:列出系统需要关注的质量属性点,然后分别从这些质量属性的维度去评估每个方案,再综合挑选适合当时情况的最优方案

常见的方案质量属性点有:性能、可用性、硬件成本、项目投入、复杂度、安全性、可扩展性、开发周期等。

在评估这些质量属性时,需要遵循架构设计原则 1“合适原则”和原则 2“简单原则”,避免贪大求全,基本上某个质量属性能够满足一定时期内业务发展就可以了。

通常情况下,如果某个质量属性评估和业务发展有关系(例如,性能、硬件成本等),需要评估未来业务发展的规模时,一种简单的方式是将当前的业务规模乘以 2 ~4 即可,如果现在的基数较低,可以乘以 4;如果现在基数较高,可以乘以 2。

方案对于质量属性点不是越多越好,还要考虑质量属性点的优先级,不是说哪个方案的质量属性点占优的最多就是最好,要考虑复杂度;
正确的做法是按优先级选择,即架构师综合当前的业务发展情况、团队人员规模和技能、业务发展预测等因素,将质量属性按照优先级排序,首先挑选满足第一优先级的,如果方案都满足,那就再看第二优先级……以此类推。

1.4 第四步:详细方案设计

这一步需要根据使用场景详细设计选定好了的组件的细节

详细设计方案阶段可能遇到的一种极端情况就是在详细设计阶段发现备选方案不可行,一般情况下主要的原因是备选方案设计时遗漏了某个关键技术点或者关键的质量属性;
这种情况可以通过下面方式有效地避免:

1 架构师不但要进行备选方案设计和选型,还需要对备选方案的关键细节有较深入的理解。

2 通过分步骤、分阶段、分系统等方式,尽量降低方案复杂度,方案本身的复杂度越高,某个细节推翻整个方案的可能性就越高,适当降低复杂性,可以减少这种风险。

3 如果方案本身就很复杂,那就采取设计团队的方式来进行设计,博采众长,汇集大家的智慧和经验,防止只有 1~2 个架构师可能出现的思维盲点或者经验盲区。

猜你喜欢

转载自blog.csdn.net/qq_41594698/article/details/102697698