什么是应用韧性
应用韧性是应用系统在运行过程中面对各种异常场景,如基础设施故障(如数据库异常)、外部攻击(如网络DDoS攻击超出预定限额流量)、外部依赖故障(如依赖系统访问超时或不可用)、地域灾难(如大面积停电、洪水)等,仍能提供和维持可接受的服务水平的能力,对系统至关重要。
系统韧性设计主要涉及以下两个方面:
- 确保系统具有高可用的架构,如无单点故障
- 各种故障场景下的恢复能力,如数据丢失、设备或站点故障等场景均能恢复
相对于传统数据中心,华为云可以提供具备高可用、弹性伸缩、自动备份、跨AZ容灾、跨Region容灾等高可用能力的基础设施与云服务,便于客户构建高可靠的系统。例如:
- EVS云硬盘、OBS对象存储采用分布式存储,可避免单个硬盘、单个服务器或单个机架等硬件故障的影响。
- RDS数据库提供自动数据备份、跨AZ和跨Region的数据复制与切换。
不过,即使应用系统利用云平台能力具有了这些高可用能力,要实现较高的可用性,仍需要构建针对各种偶发故障下的恢复能力,如:
- 由于硬件故障导致的高可用切换或跨AZ切换过程中,导致瞬时链接中断,需要应用系统具备链接中断重试的功能。
- 由于外部流量突发导致业务过载,需要应用系统具备流量控制的能力。
- 部分强依赖于硬件的负载,如依赖本地硬盘、GPU等,由于硬件故障导致服务中断,需要应用系统自身构建高可用的能力。
不同的应用系统,可用性要求可能不同,采用的韧性恢复方案会有差异。