云原生集成开发环境——TitanIDE
通过网页在任何地方更安全、更高效地编码2022-07-04
642
在这个时代,世界比以往任何时候都更加依赖全球联通,了解应用的数据流量如何在不同节点之间流动或在不同位置之间路由,以及如何设计一个具有弹性、高性能和合规性的网络变得越来越重要。
在构建网络以实现快速、安全和有弹性的应用程序交付(例如,用于跨国电子商务网站或流媒体服务)时,最重要的一点是:为了简单将所有基础设施放在一个IDC,还是建立一个跨地域的分布式网络?
为什么要构建异地分布式网络?
异地分布式网络提供了多样化的基础设施和对地理流量路由的精细控制。借助可供使用的多个网络位置,企业可以在一个IDC位置出现故障时依然保持业务在线稳定运营,并优先将流量路由到最合适的位置。
这可以为用户和企业业务带来各种好处。
1. 在发生灾难时将交通路由到其他位置
灾难难免会发生,无论我们准备得如何充分都无法百分百避免。某些特定位置的灾难可能导致整个数据中心出现故障:例如,区域性电源故障、洪水或电缆损坏等。在其他情况下, 一个位置的服务器可能会承受沉重的持续负载 ,导致性能下降,这可能导致网站出现 503 错误,因为服务器无法处理新请求。我们偶尔会看到 AWS 等公共云提供商出现区域性中断。
在这些情况下, 异地分布式网络提供了弹性应用基础设施和业务连续性。当运行状况检查发现局部性能问题或连接故障时,路由规则可以将流量引导到其他位置运行状况良好的服务器上。
2. 将流量路由到最近的服务器来降低延迟
延迟 (或数据往返所用的时间)与客户端与其连接的服务器之间的物理距离密切相关—— 距离越大,延迟越大。
那些玩过在线竞技游戏的人应该最了解延迟的影响。如果托管游戏的中央服务器在您输入后几百毫秒后才做出反应,那么它很可能会错过您的预期操作,您可能会输掉游戏。
同样,如果服务器距离客户端很远,浏览电子商务网站(及其所有数据库请求)会感觉特别迟钝,而与距离相关的延迟将影响每个页面加载,甚至最终将购物者拒之门外。
将客户端连接到距离其位置最近的服务器可减少延迟的整体影响,并确保及时响应式地体验。
3. 将流量路由到区域内服务器以提供特定位置的内容
我们生活在一个语言、文化、价格和偏好存在巨大差异的全球化世界中。考虑到这些差异,企业可能希望或需要向特定地理受众提供特定位置的内容。
流媒体服务可能在不同的地理市场提供不同的内容;电子商务商店可能销售不同的品牌或者不同的价格;美国的新闻网站可能会将报道翻译成西班牙语以供南美市场使用,而将报道翻译成加拿大语以供加拿大市场使用。
向本地地理受众提供特定于位置的内容的一种简单方法是:在每个区域的服务器上托管独特的内容。例如,主机可能将英国内容存储在英国的服务器上,将德国内容存储在德国的服务器上,将挪威内容存储在挪威的服务器上。然后,主机可以使用路由规则来确保每个国家/地区的客户端连接到区域内的服务器以获取相关内容。
4. 将流量路由到区域内服务器以遵守数据保护法规
将客户端连接到地理上的本地服务器不仅与价格和偏好有关。还有许多法律规范进出不同国家的数据和信息流。例如,欧盟的 GDPR 规则和对 “数字主权”的承诺 制定了关于从欧盟内部向第三国存储和传输个人数据的规定。某些国家/地区(例如德国)要求将某些个人和财务信息存储在区域内。
为了遵守这些规定,企业可以使用本地服务器和地理路由来确保在区域内收集、路由和存储数据。这样,即使两点之间的最快路线是通过第三国的某个位置,该路线也会避开第三国并确保数据保持在区域内。
异地分布式网络的挑战
在多个位置构建具有服务器和其他基础设施的网络比在一个位置构建网络要复杂得多。
如果企业依赖私有管理的本地基础架构,则需要维护自己的多站点数据中心。这意味着采购和维护服务器硬件;数据中心电源、连接性和 HVAC;和当地的 IT 人员。
如果您使用公有云来交付应用程序,这意味着要么配置您的云帐户以在特定位置部署应用程序(例如,使用 AWS 区域和区域),要么运行多云部署以确保您需要的地理存在。
最重要的是,您需要管理流量路由 ,以便将您的网站或应用程序的流量路由到您设置的最合适的地理位置。
然后是在部署中保持安全性、合规性和可观察性的挑战 ,您不一定要走进单个数据中心或登录单个仪表板来一次查看所有内容。
相比之下,管理一个位置很简单。一个物理站点或一个云,一组路由和负载平衡规则,一个管理您的安全的地方等。
如何在异地分布式网络中分配流量
在异地分布式网络中配置路由规则的最常见方法是使用全局服务器负载平衡器 (GSLB),以利用弹性、延迟和本地化的优势 。负载均衡器在网络中的 多个服务器或节点之间分配流量;GSLB 在地理或多位置级别上执行此操作。
当客户端尝试连接到使用 GSLB 进行多位置路由的域时,GSLB 通常会:
大型公共云和 CDN 通常提供某种级别的内置 GSLB。 还提供Snapt Aria 等专用 GSLB ,它们提供更多功能和灵活性,例如在任何环境(本地和云、VM 和容器)中部署的能力、更多路由选项以及高级健康检查和报告。
运行异地分布式网络的复杂性如何?
部署异地分布式网络的好处是显著的,对于跨国企业来说,成本和复杂性可能是值得的。但他们能减轻这些不利因素吗?
多位置策略通常会引入很多复杂性,因为有助于确保安全性、合规性和可观察性的应用程序基础架构也是本地化的。负载均衡器、Web 应用程序防火墙 (WAF) 以及 Web 应用程序和 API 保护 (WAAP) 通常部署在每个位置并单独管理。这会带来配置不一致、策略过时以及碎片化网络缺乏可见性的风险。
克服这个问题的最佳方法是使用集中式应用程序基础架构,其中部署、配置、监控和智能都在中央控制平面中进行管理,本地化的负载均衡器、WAF 和 WAAP 实例是轻量级的“工人”。数据平面。
这种方法提供了一个 “单一管理平台” ,可以在其中查看和控制跨多个云和多个位置部署的整个负载均衡器网络等。无需确保一致的配置或担心过时的策略,因为操作员可以集中执行更改并立即将其提交到每个节点。没有数据和可见性的碎片化,因为它是集中的、聚合的,并在一组报告和警报中呈现。
因此,运营异地分布式网络,多云管理和治理非常重要。
位置很重要
尽管单一位置部署固有的简单性,但将所有鸡蛋放在一个篮子中是存在风险的。异地分布式网络虽然更复杂,但提供了更大的弹性、更低的延迟和更多的本地化选项,这对跨国企业来说越来越重要。
企业可以使用全局服务器负载平衡器在分布式网络中启用简单的地理路由。您还可以通过选择集中管理的智能应用基础架构来应对复杂性挑战。
微服务架构时代的异地容灾更进一步
微服务架构逐渐成为了大型应用架构基础,而在微服务架构之上,除了做好异地分布式网络,还有一种更简单的异地容灾方案,那就是通过智能路由实现异地容灾。
在SolarMesh(高效可视化微服务治理平台)中,只需要声明哪些集群是属于同一个mesh,借助istio的智能路由能力,同名service将会获得多集群容灾的能力流量将会按照策略智能分配到正常的工作负载上。