识别复杂度
茫茫人海,预见就是缘分,交个朋友,点个关注
理解复杂度的来源
一般来说ERP、财务系统都是规模比较大的系统,大规模导致了复杂性的增加。
前面我们说了架构设计是为了解决复杂度。但是我们可能还是不知道复杂度怎么进行识别。只有先识别出复杂度,才能够找到复杂度的解决方案。
软件的复杂度其实可以来源于几个方面,只要你记住这几个方面,那么就能够比较容易的找出软件的复杂度
复杂度经常出现在软件的三高当中; - 高可用 - 高性能 - 高可扩展
高可用
首先是高可用。高可用指的是系统可以不宕机连续的使用。其指标一般是99.99%,类似于这样来描述系统是否高考用。系统高可用的指标越高,对系统的设计来说特别是部署提出了高要求
高可用的复杂性在于服务不能中断。中段不但是软件层面的,而且还可能是硬件层面的。甚至掉电以及运营商的网络问题,也会导致非高可用出现问题
例如,笔者曾经有一个服务器部署在阿里云的,有一次阿里云的光纤被挖断。到处比较的服务,停留了很长一段时间。
分类: - 存储高可用 - 网络高可用 - 计算高可用
什么是存储高可用
为了满足生产系统高实时性和生产数据的高可用性要求,通常采用两套存储阵列,结合主机、存储虚拟化技术以及卷管理技术(e.g. LVM)来构建的全冗余架构高可用存储系统(Storage HA)
硬件存储高可用
举个例子:RAID技术解决多备份问题
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
冗余的方式解决高可以用。
软件存储高可用
数据库的高可用
缓存系统的高可用,如Redis、Memcache
什么是网路高可用
网络高可用也是冗余,容错技术,网路出现问题时,快速恢复:
- 网络设备自身元件冗余,如双电源,双风扇
- 运营商冗余,电信、移动
- 虚拟技术,堆叠技术
什么是计算高可用
计算高可用,是机器出现故障的时候,另一台机器能够快速继续运行。
高可用计算公式 2F+1 F=1,2,3...
F代表主库/写入节点的数量
一个写库必须要有两个备库才算高可用