架构设计流程:评估和选择备选方案
极客时间:《从 0 开始学架构》:架构设计流程:评估和选择备选方案
1、引言
上一章节提出针对技术选型尽量提出3~5种备选方案,采用什么方法来评估和选择备选方案呢?
作者的答案是“360度环评”。
2、具体做法
列出我们需要关注的质量属性点,然后分别从这些质量属性的维度去评估每个方案,再综合挑选适合当前情况的最优方案。
常见的方案质量属性点有:性能、可用性、硬件成本、项目投入、复杂度、安全性、可扩展性等。遵从“合适原则”和“简单原则”切莫贪大求全,避免过度设计,导致投入浪费。当业务发展到该系统不能满足时,遵从“演化原则”,设计方案。
完成方案的 360 度环评后,我们可以基于性能、可用性、硬件成本、项目投入、复杂度、安全性、可扩展性等属性的评估结果整理出 360 度环评表,一目了然地看到各个方案的优劣点。但该表只能帮我们分析各个方案的优劣点,并没有具体要选哪个方案。
正确的做法是按优先级选择,即架构师综合当前的业务发展情况、团队人员规模和技能、业务发展预测等因素,将质量属性按照优先级排序,首先挑选满足第一优先级的,如果方案都满足,那就再看第二优先级……以此类推。
Ps:Kafka 的设计目的是为了支撑大容量的日志消息传输,