10-架构设计流程:设计备选方案
架构设计第 2 步:设计备选方案
成熟的架构师需要对已经存在的技术非常熟悉,对已经验证过的架构模式烂熟于心。然后根据自己对业务的理解,挑选合适的架构模型进行组合,再对组合的架构模型进行修改和优化。
经过时间的考验,已经被验证的架构模型有很多。如高性能的负载均衡、多路复用;高可用的主备方案、集群方案,可扩展的分层、插件化等技术,绝大部分时候,我们确认目标后就可以找到可选解决方案。
可以当这种方式完全无法满足业务需求时,才考虑创造新的方案,而事实上,方案的创新一般也是基于现有的成熟方案。
技术组合的阐述:
概念
新技术都是在现有技术的基础上发展起来的,现有技术又来源于先前的技术。将技术进行功能性分组,可以大大简化设计过程,这是技术“模块化”的首要原因。技术的“组合”和“递归”特征,将彻底改变我们对技术本质的认识。
虽然基于已有的技术和架构模型进行组合,然后调整修改后,大部分时候可以得到我们需要的方案。但是并不意味着这是一个简单的工作。因为可选的方案和技术非常的多,组合的方案就会有更多,往往一个问题的解决方案会有很多。因此如何确认解决方案就不容易了。很多架构师在选择方案时容易犯下面的问题。
- 第一种常见的错误:设计最优秀的方案。
根据架构设计中的“合适”原则和“简单”原则,设计符合业务、团队、技术能力的方案才是最好的方案。否则会花费大量的人力开发出了一个无用的系统或者根本无法实现的系统。
第二种常见的错误:只做一个方案。
很多架构师在做方案时,可能会在心里简单的比较几种方案,然后再简单的判断下哪种方案最好,然后就开始做详细的设计了。这样做容易导致几下几个问题。
- 心里评估过于简单,可能没有想的那么全面,只是因为某个缺点就把方案给否决了,然而实际上没有哪个方案是完美的,某个地方有缺陷的方案可能综合下来是最好的方案。
- 无论架构师多牛,经验和技术都是有限的,有可能某个评估标准或者经验是不正确的,也可能是旧的经验不合适新的情况,甚至有可能是评估标准是架构师理解错误的。
- 单一方案容易出现过度辩护的情况,即架构评审时,针对方案存在的问题和情况,架构师会竭尽全力为自己的设计进行辩护,经验不足的设计人员可能会强词夺理。
因此,架构师应该设计多个备选方案,那应该如何做呢?
- 备选方案的数量应该以3到5个为最佳。
- 备选方案的差异要比较明显。
- 备选方案不能仅局限于自己已经熟悉的技术。设计架构时,架构师需要放宽自己的视野,考虑更多的可能性。
第三种常见的错误:备选方案过于详细。
备选方案过于详细的弊端在于:
- 耗费大量的时间和精力。
- 将注意力集中在细节,忽略了整体的技术设计,导致备选方案不够或者差异不大。
- 评审的时候其它人会被饶到细节里面去,评审效果差。
正确的做法是备选阶段关注的是技术选型,而不是技术细节,技术选型的差异要足够明显。
注:文章内容总结于极客时间11 | 架构设计流程:设计备选方案