【软件架构篇】复杂度来源

架构设计的目的就是解决系统的复杂度。架构师首先需要识别出系统的复杂度,然后再针对性地给出备选方案,选择备选方案,进而进入备选方案的详细设计。可见识别出系统的复杂性是最关键的一步,如果错了,后面的分析步骤就没有多少意义。

常见的系统的复杂度来源表现在高性能、高可用、可扩展性、低成本、安全、规模。如下图:


image.png

高性能:淘宝和微信支持的QPS在亿级别,典型的高性能代表。一般以QPS、TPS来衡量一个系统的高性能。

高可用:高可用的目的是让用户感觉业务是持续提供的,也即业务高可用。为了实现业务高可用,常见的需要解决计算高可用、存储高可用,前端高可用等。

可扩展性:在进行架构设计时,需要预测接下来一段时间业务的变化,提前做好基础工作,等预测的业务到来时,就可以只实现新业务功能然后无缝集成原有系统,从这一点说明原有系统支持扩展性。

低成本:在进行架构设计时,需要合理控制成本在预算范围内,如果设计的架构成本超出了预算,则架构需要推导重来;如果重新设计的架构仍然超出预算,则可以找老板商量。

安全:安全分为功能安全(比如常见的XSS、CSRF、SQL注入),架构安全(比如针对传统行业的防火墙控制策略,针对互联网行业云服务商的强大带宽和流量清洗能力)。

规模:系统功能越来越多,数据越来越多,都可以体现出规模在不断增长。

你可能感兴趣的:(【软件架构篇】复杂度来源)