译者 | 布加迪
审校 | 孙淑娟
多区域应用程序架构是任何云应用系统最重要的方面之一。它的意义不仅仅在于覆盖全球和接近客户,还在于确保应用程序可以在不同的区域和国家顺利运行。
因此,您的数据库应驻留在多个区域,那样即使遇到自然灾害或电力中断等意外问题,也能确保高可用性和高性能。
多区域意味着什么?
多区域意味着您的应用程序覆盖多个区域。每个区域都是一个独立的数据中心,含有自己的数据库和负载均衡系统。不同区域的数据库彼此之间没有连接,但是它们都有相同的模式,因此可以跨所有区域使用一组查询。
每个区域都有自己的服务器,这意味着对应用程序的任何请求都没有单一故障点。如果一个数据中心出现故障,来自其他地方的用户的流量将自动转移到另一个数据中心,用户不会注意到网站有任何异常。
为何使用多区域应用程序?
- 缩短延迟:多区域应用程序架构使您能够将数据库托管在不同的区域,从而缩短延迟。如果您的用户位于世界各地,这一点尤其有用。
- 减少数据丢失:使用多区域应用程序架构,您可以在多个区域之间使用同步复制,并确保即使出现硬件/网络故障或任何其他灾难,数据也不会丢失。就算其中一个区域因网络中断或硬件故障等某个原因出现故障,您的数据仍然在其他区域可以使用。
- 降低成本:您可以将数据库托管在云平台上,而不是购买昂贵的服务器在本地托管,从而节省成本,因为云提供商对其服务的收费低于本地托管提供商(这同样适用于其他的IT基础设施部件,比如存储)。
如何着手构建多区域应用程序?
想构建多区域应用程序,您需要使用在多个区域可用的数据库。比如说,如果您有一个驻留在AWS上的应用程序,并将亚马逊关系数据库服务(RDS)用于数据库,那么您可以将RDS实例配置为在多个区域可用。
还可以从具有多区域可用性的数据库中进行选择。Microsoft Azure SQL数据库就是一个典型例子:在该数据库中,用户可以创建数据库,可用性集(availability set)由复制相连接。您还可以使用Microsoft SQL Server 2017或更高版本的服务代理功能,使用流复制或合并复制跨不同区域复制数据。
第三种选择是使用支持多区域故障切换的数据库,因为其故障切换流程不需要任何停运,而是立即切换到另一个区域,不会中断服务,性能在切换期间也保持不变!
多区域架构的好处
多区域架构让您可以在不同的区域拥有数据库的多个副本。每个副本可以位于不同的区域,每个区域可以为相同的数据库使用不同的版本和语言。这为您在针对数据冗余和高可用性设计架构时提供了极大的灵活性。
您可能希望在一个区域保留存储成本较低的旧版本作为备份,而在另一个区域使用存储需求较高的新版本作为主版本,那样如果前者有任何问题,您可以比较轻松地切换到后者。
多区域架构面临的挑战
虽然区域部署架构的好处显而易见,但它也有自己的一系列挑战。最大的挑战是成本。虽然运行多区域数据库的成本可能低于单区域环境,但仍可能比在不同地方运行单区域环境的成本更高。原因是您需要为每个区域维护单独的基础设施和服务——比如说,您可能拥有跨区域的独立计算资源和存储实例,而不是依赖贵公司内的共享基础设施。多区域数据库的另一个挑战是数据延迟:两个距离遥远的地方因网络延迟或网络拥塞而导致延迟增加时,就会出现数据延迟。
虽然在多个地区管理如此大的数据集变得更容易,因为它们将容量分布到位于不同地区(数据中心)的多台服务器上,在不影响性能和可用性的情况下有助于降低操作成本。但是说到可扩展性和安全问题,情况变得棘手起来,因为以一致的方式确保这些工作负载正常运行可能需要额外的工作。
通过将应用程序分布到每个区域内的多个数据中心,可以减少应用程序的延迟和成本,并提高可靠性、性能和可用性。
在为数据库构建多区域应用程序架构时,还可以跨多个区域改进安全,比如数据加密。
除此之外,还有其他好处:
增强可扩展性——在任何一个区域出现高负载或流量突发的情况下,您都可以在部署应用程序的任何位置添加更多的计算资源,从而轻松提高容量。这让您在没有任何停运的情况下进行扩展,同时在高峰使用时间保持高性能。
简化管理——管理跨多个位置部署的应用程序需要的管理开销比管理单个位置的应用程序要少。
结论
我们已了解了使用多区域应用程序架构的原因。多区域数据库架构是个复杂的领域,需要数据管理、数据库和云解决方案等方面的专业知识。我们还讨论了在贵公司使用多区域数据库架构的好处。
原文标题:Why You Want Multi-Region Application Architecture for you Database,作者:Hiren Dhaduk