业务连续性

借助边缘节点服务部署应用,可以让终端用户访问服务时延迟大幅降低,提升体验。但提升体验的同时,关注应用的连续性也是非常重要的。本文将介绍一些关键能力,帮助您构建高可用的边缘计算应用。

责任共担

实现云上的业务连续不中断是阿里云和阿里云客户的共同责任。

阿里云负责边缘节点服务 ENS 本身的稳定性,确保其可用性不低于服务等级协议中的承诺值。

阿里云的客户需要负责业务系统的架构设计合理性,确保能在必要时实现故障转移,保障业务连续不中断。

建议您根据本文介绍的相关方案,来建设您的边缘计算应用的业务连续性能力。

最佳实践

多实例容灾

为了确保高可用,应用必须能处理高负载、避免单节点故障造成业务中断。这些可以通过边缘负载均衡 ELB来实现。为此,您可以先在多个 ENS 实例上部署应用,然后结合ELB来实现流量负载均衡。这样即使某个 ENS 实例出现故障,ELB 仍然可以将流量分配到其他 ENS 实例上,保障业务持续可用。

跨地域主备容灾

应用的主备切换

为了避免地域级别的故障造成业务中断,在某个边缘节点上部署应用之外,还应该在其他边缘节点或公共云地域部署备份应用。

您可以借助全局流量管理服务,在出现地域级别故障时,自动将域名解析指向到其他地域的应用上,实现故障时的流量切换,保障业务持续可用。

在设计备服务时,您可以考虑将应用部署到其他边缘节点服务地域上,甚至也可以部署到其他就近的公共云地域上。不过需要注意的是,启用备服务时,终端用户访问服务的延迟可能会增大。

数据的备份和恢复

故障时流量转移可以很好地避免地域级别故障造成业务中断,但此时故障地域的数据服务也可能同样不可用。

为了让业务在备地域的应用启用期间也能正常运转,您需要根据自身的业务设计合适的方案,在非故障期间将数据从主地域同步到备地域中。

比如,您可以:

  • 在应用程序中双写,向当前地域的存储服务上写入数据,同时也向备地域写入数据。这么做的好处是备地域的数据和主地域几乎是一致的,但代价是写入的延迟会增大。

  • 向主地域的存储服务中写入数据后,异步地将主服务数据同步到备地域的存储服务中。这么做的好处是写入延迟不会增大,但启用备地域服务时,数据可能和主地域有一些差异。

此外,您还需要设计好应用程序的恢复机制。在主地域故障消除后,应该将备地域服务在故障期间记录的新增数据同步到主地域,确保主地域恢复时,用户看到的业务数据不会丢失。

部署架构示意图

为了尽可能地提升可用性以确保业务连续不中断,上述实践是可以组合使用的。下图是一个同时采用了负载均衡、应用主备切换、数据备份和恢复能力的系统部署架构示意图。

image

您可以结合自身业务的需要,来有选择地参考。

  • 该系统的主服务是部署在瑞士的 ENS 节点,主服务采用了多实例加负载均衡的架构,以规避 ENS 实例单点故障引起的业务中断。

  • 备服务部署在就近的德国 ENS 节点(备服务也可以选择就近的公有云地域中),备服务同样采用了多实例加负载均衡的架构。同时,主地域正常期间会将数据同步到备地域,以确保启用备地域服务时,数据尽可能的和主地域保持一致。

  • 该系统的域名解析引入了全局流量管理服务:

    • 全局流量管理服务会跟进设置的频率,周期性地对主服务进行健康检查。

    • 主服务工作正常时,域名解析会指向主服务。

    • 主服务异常时,全局流量管理服务执行的健康检查失败指定的次数后,会自动将域名解析指向备服务,从而实现自动的主备切换。

  • 主服务故障期间,流量切换到了备服务,数据会记录在备服务的存储服务中。因此在故障恢复后,还需要将备地域的数据同步回主地域。