上一篇读书笔记简单介绍了看《从零开始学习架构》的缘由,以及这本书涉及的几大点。这篇文章主要涉及什么是架构和架构设计的原则是什么。
架构基础
架构是什么
在学习或者研究任何事物时,第一要做的事情就是清楚关键词的概念。毫无例外,学习架构,第一件事也是要清楚,什么是架构,以及它与框架等类似概念有什么区别。
首先,通过维基百科对比可以知道,框架更多的是一种规范,而架构则是结构。再结合系统,我们可以知道,系统是根据某种规则,将一群个体,比如子系统、模块、组件等,关联在一起,而架构则明确系统中包含哪些个体,以及明确个体运作和协作的规则。
架构设计目的
作者认为,探索一个事物的目的,最好的方式就是去追寻这个事物出现的历史背景和推动因素。
因此,通过作者对软件架构出现的历史探究和分析,我们不难发现,随着硬件和业务的不断发展,架构设计的主要目的是为了解决复杂度带来的问题。
明白这一点,能够让我们在设计架构的时候知道,面对错综复杂的业务需求,我们只需要识别系统复杂点,然后针对这些复杂点进行架构设计;或者在学习架构时,寻找它背后要解决的复杂点等。
复杂度来源
复杂度来源主要包括:高性能(单性能复杂度和集群的复杂度)、高可用(计算高可用和存储高可用)、可扩展(预测变化和应对变化)、低成本、安全和规模
架构设计原则
架构的设计原则,作者仅提出了三条,分别是:合适原则、简单原则和演化原则。
合适原则
简而言之,就是合适优先业界领先。
作者认为,业界领先的架构是基于他们公司的业务场景需要产生的,在模仿这些架构设计时,也需要考虑自己公司的人力、条件、业务等各种因素。真正优秀的架构是在企业当前人力、条件、业务等各种约束下设计出来的,能够合理地将资源整合在一起并发挥出最大功效,并且能够快速落地。
简单原则
也就是,简单优先于复杂。这样说的原因是,有些团队在设计架构时,为了体现架构设计得很厉害,有意无意会设计复杂的架构。这里的复杂主要体现在,结构的复杂性(设计过多的组件)和逻辑的复杂性(单个组件承载过多的功能)。
演化原则
即,演化优于一步到位。互联网行业发展一直很迅速,业务也是在不断变化,对于软件而言,变化是主题。所以,在设计架构时,不要想着一步到位。而是应该认真分析当前业务的特点,明确业务面临的主要问题,设计合理的架构,快速落地以满足业务需要,然后在运行过程中不断完善架构,不断随着业务演化架构。