构建多区域应用程序架构必要性
多区域应用程序架构能够提高应用程序的弹性,并通过为分布式用户群保持低延迟来提升最终用户体验。
1. 多区域应用架构中的容错
容错是系统承受某种故障并继续正常运行的能力。
不幸的现实是,故障时有发生。火灾、洪水或极端风暴都可能摧毁数据中心、可用区或整个区域。但这不一定会导致中断。多区域应用程序具有单区域和单可用区应用程序所不具备的弹性。单区域架构可以承受机器故障。单可用区架构可以承受可用区故障。但只有多区域应用程序架构才能承受区域故障。如果您的应用程序具有高可用性要求,那么多区域架构非常重要。
2. 为地理位置分散的用户提供低延迟
当用户分散时,如何实现低延迟?多区域应用程序架构有助于实现低延迟,即使用户分布在世界各地,它也能将数据保留在靠近用户的位置。
一个好的经验法则是将延迟保持在 100 毫秒以下。这是体验即时性的最高阈值。当用户群遍布全球时,将延迟保持在 100 毫秒以下是一项挑战,因为数据速度受限于光速。实现低延迟和卓越用户体验的唯一方法是使用多区域应用程序架构,让数据靠近用户。
3.扩大用户群
一些组织倾向于在新区域添加数据库之前,先在该地区获得足够数量的用户。这种策略存在风险。
4. 应用程序架构灵活性
一旦建立了多区域应用程序架构,应用程序的扩展和缩减就变得更加容易。主要原因有三:
数据库架构
在设计多区域架构的模式时,需要对数据库进行分区,这需要确定要分区的列,然后根据该列对数据库进行分区,最后设置区域约束。如果只执行一次分区操作,那么只需使用 ALTER 语句添加新区域即可,工作量会小得多。
云部署
数据库和应用程序已部署在多个服务器和多个区域上。大多数云提供商都可以轻松地添加另一个区域服务器。然后,只需将数据库和应用程序部署到该服务器即可。您可能已经使用 Docker 和 Kubernetes 引擎来部署数据库和应用程序,这意味着您已经编写了一些 Docker 和 Kubernetes 部署配置文件(例如 Dockerfile 和 Kubernetes 清单文件)。有了这些文件,只需使用它们即可部署到新区域。这比从头开始编写文件要容易得多。
应用程序逻辑
编写了应用程序来过滤分区查询,并且可能能够感知用户位置。这意味着在扩展到新区域时无需对应用程序进行大量编辑。
5. 遵守数据隐私法律法规
目前全球有超过 200 条数据隐私和数据存储法规,其中最著名的可能是 GDPR。所有迹象都表明,这些法规每年都会增多。这些法规通常禁止将某些数据存储在特定边界之外。通过正确的多区域部署,您可以将数据固定在物理位置的边界内,从而将数据合法地保存在需要的位置。

浙公网安备 33010602011771号