更新时间:2024-07-16 GMT+08:00
分享

RES01-01 应用组件高可用部署

应用系统内的所有组件均需要高可用部署,避免单点故障。

  • 风险等级

  • 关键策略

    应用系统内各组件需要根据其具体能力,采用不同的高可用部署方案:

    • 使用原生高可用实例:当云服务既支持单节点资源,又支持主备或集群资源时,应用的关键节点应使用主备或集群资源,如CCE高可用集群、RDS主备实例、DDS集群、DCS主备或集群实例等。对于运行在CCE集群上的工作负载,也需要配置多个,以避免单个节点故障就导致业务中断。
    • 单节点实例通过多实例实现高可用:当云服务只支持单节点发放,则需要应用层来实现多个节点之间的主备或负载均衡,如ECS实例,用户可以通过构建ELB+多ECS实例,来实现无状态业务在多实例之间的负载均衡和自动切换,或从应用层实现两个ECS实例的主备等。
    • 硬件依赖实例从应用层实现高可用:当ECS使用本地硬盘、直通FPGA、直通IB网卡等物理服务器强相关的硬件资源时,当硬件故障时会导致ECS故障,且无法通过虚拟机HA功能自动恢复;针对此类问题,需要应用系统在设计时就必须要预料到偶发故障,尽可能避免使用,若必须用时需要从应用层来实现高可用,以便在所依赖的硬件故障时业务能快速恢复。
    • 虚拟机HA:当ECS不依赖于特殊资源时,可以支持虚拟机故障自动恢复功能,在其所在物理服务器故障的情况下,可以自动在其他物理服务器上重启;对于部署在这种ECS中的工作负载,需要支持虚拟机重启后业务自动恢复的功能,并能容忍虚拟机HA期间业务处理性能短暂下降或中断。

    对已部署的应用系统,改造为支持高可用能力的实施步骤:

    1. 确定应用系统的关键组件;所谓关键组件是指一旦故障,会导致整个应用系统或其中的关键功能受损。
    2. 针对关键组件,检查其高可用能力,即在其故障的情况下,是否能自动故障转移,进行业务恢复。
    3. 针对未支持高可用的关键组件,进行如下优化处理:
    • 若云服务实例为单节点实例,如ECS,则通过申请多个实例承载相同业务,并利用ELB实现负载均衡和自动故障切换,或由应用层实现多实例的自动故障切换能力,来实现高可用。
    • 对于不依赖于特殊资源的ECS,支持故障自动恢复功能,在ECS所在物理服务器故障的情况下可以自动在其他物理服务器上重启;对于部署在这种ECS中的工作负载,需要检查ECS重启后业务是否能自动恢复。
    • 对于依赖特殊资源的ECS,如本地盘、直通FPGA卡、直通IB卡等,不支持故障自动恢复,针对此类ECS需要检查是否可以替换为不依赖于这些特殊资源的ECS,以提高ECS的可用性。
    • 对于ECS、BMS、MRS等实例,在使用本地盘时,由于磁盘存在使用寿命上的限制,长时间使用后出现故障的概率会比较高,需要避免使用,而尽可能使用具有高可用能力的EVS磁盘;若必须使用时,则建议使用RAID提升本地盘的可用性,并从应用层实现高可用,以便在一个实例故障时,应用可以自动故障切换和恢复业务。
  • 相关云服务和工具
    • 弹性云服务器 ECS
    • 裸金属服务器 BMS
    • 弹性负载均衡 ELB
    • 云容器引擎 CCE
    • 文档数据库服务 DDS
    • 分布式缓存服务 DCS
    • MapReduce服务 MRS

相关文档