识别复杂度

茫茫人海,预见就是缘分,交个朋友,点个关注

理解复杂度的来源

一般来说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代表主库/写入节点的数量

一个写库必须要有两个备库才算高可用