什么是架构
软件架构是指软件系统的顶层结构。
架构是顶层设计;框架是面向编程或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相互协同可运行的实体。
架构设计的目的
为什么要架构设计
a、公司流程要求?
b、因为很重要,所以就要?
c、为了高性能、高可用、高扩展?
其实不是每个系统都要做架构设计,有时候开发效率才是“王道”。而架构设计的主要目的是为了解决软件系统复杂度带来的问题。
可用根据当前的业务的具体情况考虑性能、高可用、扩展性、安全性、成本、规模以及常见的故障,即需求驱动架构
小项目中甚至都不需要考虑缓存、只需要mysql数据库存储即可
架构的复杂度来源
高性能:单机向多机器集群演变,引起系统的复杂
高可用:计算高可用,存储高可用,都必须通过冗余或者民主选择来实现。
可扩展性:预测变化;变化层和稳定层;或者抽象层和实现层;
低成本:往往创新才能低成本,高性能,高可用性本身会增加成本。
安全: 功能安全,防小偷;架构安全防强盗
规模:带来的复杂度会由量变引起质变;功能、数据越来越多,最终引起系统复杂度质变
架构设计三原则
合适原则:合适优于业界领先,多少人干多少活,适合自己的业务场景才是最合适的
简单原则:简单优于复杂,结构复杂,逻辑复杂,越能引入故障,定位越难
演化原则:演化优于一步到位,通过不断优化,演变,使自身不断强大,适应当前的环境