Google Cloud 谷歌云全球外部 HTTP(S) 负载均衡器优势详解
Google Cloud谷歌云负载均衡器是一项完全分布式、软件定义的代管式服务。它以不同的方式提供,例如全球外部、区域外部和区域内部等。当在Cloud 中配置工作负载以服务应用程序时,负载均衡器可以将用户应用程序请求重定向到具有服务请求能力的各种后端(实例组、网络端点组、云存储等),适合在应用程序或服务的前端使用。
首先,一起了解下两种模式的全球外部 HTTP(S) 负载均衡:
全球外部 HTTP(S) 负载均衡器
这是一个全球负载均衡器,在 Google Front End (GFE) 上作为代管式服务实现。它使用开源 Envoy 代理来支持高级流量管理功能,例如流量镜像、基于权重的流量分配、基于请求/响应的标头转换等。
全球外部 HTTP(S) 负载均衡器(经典版)
这在高级层级中是全球范围内的经典版外部 HTTP(S) 负载均衡器,但在标准层级中可以配置为区域级负载均衡器。此负载均衡器在 Google Front End (GFE) 上实现。这些 GFE 分布于全球各地,可通过 Google 的全球网络和控制平面协同运作。
全球外部 HTTP(S) 负载均衡器是具有高级流量管理的 HTTP(S) 外部负载均衡器的较新版本。但是,从设计的角度来看,可以在决定选择哪个选项之前先确定目标用例和所需的功能。
让我们从架构的角度分析以下要考虑的关键驱动因素。
下面的图 1 说明了全球外部 HTTP(S) 负载均衡器和全球外部 HTTP(S) 负载均衡器经典版的高级架构 。
注意:以下架构也适用于使用高级网络服务层部署的全球外部 HTTP(S) 负载均衡器(经典版)
图 1:谷歌云全球负载均衡器高级架构
- 增强的性能:它提供了向托管在 Google Cloud 全球负载均衡器后的应用程序注入流量的能力,以便从离客户端/最终用户最近的点进入 Google 可靠的全球网络基础设施(由高级网络服务层启用),这有助于减少客户端和后端服务器之间的延迟。此外,通过根据预定义的策略和健康检查指标将负载分配到后端实例,将流量定向到有能力处理请求的实例,最终将优化整体性能。此外,通过启用内容交付功能,可以通过在 Google 边缘位置缓存静态内容(例如图像和视频)来添加额外的性能优化(缓存并在更靠近最终用户的位置提供服务)。
- 优化的安全性:它充当应用程序或服务的第一个入口点,并在 Google 边缘位置终止客户端连接。在转发到后端之前,会针对网络层 DDoS 攻击和应用层攻击对流量进行检查。这是一种最佳方法,可以在到达后端系统之前缓解此类攻击。可以通过使用Google Cloud Armor为应用程序层安全性和身份识别代理添加额外的安全性,以帮助为通过 HTTPS 访问的应用程序建立中央授权层。这些功能是保护客户的云环境的纵深防御的关键推动力。
- 弹性:能够提供自动修复以重新启动未通过运行状况检查指标的实例,以及在出现故障情况后将流量重定向到后端实例(位于相同或不同区域),这通常会提高整体解决方案的弹性。
- 灵活性:提供灵活的混合架构,将云负载均衡能力扩展到驻留在本地或其他云中的后端。这是不同混合策略的关键推动力。此类架构可能是由从传统(本地)解决方案到现代基于云的解决方案的短期迁移驱动的,或者可能是启用某些功能或满足特定合规性要求的长期架构决策。
- 操作简单:因为它是一项托管服务,所以无需担心在高峰时段构建任何基础架构或对其进行扩展,这使其成为在全球范围内使用的无服务器功能。此外,借助 Google 外部全球 HTTP(S) 负载均衡器(高级层),前端使用单个Anycast IP,并且可以在全球范围内分发。这消除了为每个区域部署负载均衡器的需要,或者使用一层 DNS 解决方案和策略来重定向全球和区域级别的流量。
Google Cloud 全球 HTTP(S) 负载均衡器如何提供这样的架构优势?
为了简化答案,需要分析 Google Cloud 全球 HTTP(S) 负载均衡器的架构组件,如下图 2 所示。这种高级架构适用于这两种模式,除非标准层与全球外部 HTTP(S) 负载均衡器(经典版)一起使用。
图 2:Google Cloud 负载均衡器架构组件
- 软件定义的负载均衡:Google Cloud 全球负载均衡不是基于硬件的。相反,它是作为托管服务提供的完全分布式、软件定义的解决方案。外部负载均衡器驻留在Google 前端 (GFE)上。GFE 分布在全球各地,位于Google 入网点(PoP)。它们与其他系统和控制平面一起执行全球负载均衡。GFE 功能是此类架构中的关键,因为它确保所有安全 HTTP 连接都以正确的证书终止(尽可能靠近客户端)并遵循支持完美前向保密等最佳实践。GFE 还在 Google 全球网络的边缘层 (POP) 应用了针对 DoS 攻击的保护。
- 谷歌全球网络:是一个高度配置、低延迟的网络。它与为 Gmail、Google 搜索和 YouTube 等高度可扩展的产品提供支持的网络相同。Google Cloud 全球负载均衡建立在相同的前端服务基础架构 (GFE) 之上。此外,谷歌海底电缆在这个全球网络中发挥着关键作用,因为它连接了包括 100 多个网络边缘位置(或 POP)的云基础设施。它提供了将用户流量摄取到尽可能靠近流量请求源的 Google 主干网的能力,从而提供增强的用户体验。
这种连接被称为高级网络服务层,它遵循“the cold potato routing”方法,最大限度地延长通过 Google 快速可靠的专用全球网络的距离,如图 3 所示。这比将流量路由到终端更有效通过公共互联网结束,通常本地 ISP 会将流量传递给另一个 ISP(几乎总是流量通过多个 ISP 到达目的地)。因此,通过多个 ISP 和网络跃点的流量在路径上面临更高的延迟和带宽限制。
图 3:具有 Google Cloud 负载均衡的高级网络服务层
借助 Google Cloud 全球外部负载均衡器(经典版),客户可以选择任一高级层级,以使用单个 Anycast 虚拟 IP VIP 进行上述操作。同时,还可以选择标准层,其中全球外部负载均衡器(经典版)将在区域级别运行,其中每个区域都有一个 IP 和转发规则,并且后端需要位于区域 IP 和转发规则的同一区域如图 4 所示。
与高级层相比,标准层流量路由基于“the hot potato routing ”方法,其中来自后端实例的出站流量存在于来自该区域的 Internet 对等互连的 Google 网络上,即使目标位于另一个区域中(如图 4 所示)。使用标准层,流量通过 Internet 路由,可能通过多个 ISP 到达可能位于不同区域的目标 IP。因此,它的价格低于高级层级,并且可用于延迟不那么重要的某些用例。或者,所有系统和预期用户都位于同一区域。因此,决定选择哪个层非常重要,因为它将影响整体架构及其功能。
图 4:使用 Google Cloud 负载均衡的标准网络服务层
- 全球(外部)转发规则:全球转发规则在 Google 前端 (GFE) 分发和应用。这些提供了一个全球任播 IP,当在高级层中使用全球外部 HTTP(S) 负载均衡器和全球外部 HTTP(S) 负载均衡器(经典版)时,它可以是 IPv4 或 IPv6 地址。这些在 GFE 中注册,可用于站点、应用程序或后端存储桶的 DNS 记录,而无需担心全球分布式解决方案的每个区域的 IP 和 DNS。但是,如果在标准层中使用全球外部 HTTP(S) 负载均衡(经典版),则转发规则将在区域级别运行,并且后端需要驻留在包含转发规则的同一区域中,如所示图 4。
- URL 映射:在 HTTP(S) 请求发往特定 Anycast 或区域 VIP 后,它到达 Google 边缘前端,然后是负载均衡器,需要决定将请求路由到哪里(到特定后端服务或后端存储桶) ,这个决定是在转发规则和 HTTP(S) 代理转发请求后,根据 URL 映射中定义的规则完成的。通过这种方法,全球 HTTP(S) 负载均衡器可以使用单个 URL 映射,根据URL 映射级别的预配置规则将请求路由到不同的目的地。图 5 说明了架构组件URL 映射以及它在整个全球外部 HTTP(S) 负载均衡器架构中的位置。此外,URL 映射是可以配置高级流量管理的地方,其中可以使用其他匹配条件。
图 5:URL映射架构组件
使用这种方法,可以灵活地设计负载均衡解决方案,以根据不同的要求来运行和分配流量,包括但不限于:
基于邻近的路由,其中 GFE 级别的负载均衡器可以将流量重定向到最近的实例组到有能力处理流量的流量源(云全球或高级层中的全球经典版负载均衡器时的跨区域负载均衡用来 )。
基于 URL 内容的流量路由,对应用程序某些部分的请求。例如,多媒体可以重定向到容量更大的实例组,而扩展为静态内容的流量可以从Cloud CDN提供,以增强用户体验并降低延迟。URL 映射通过使用它处理的每个 URL 中的主机名和路径部分来执行此操作。此类处理可以提供基于标头和基于参数的路由,其中负载均衡器根据 HTTP 标头和 URL 查询参数做出流量路由决策,这最终有助于简化您的云架构,因为不需要部署额外的代理来做这种类型的路由。
因此,可以在许多不同的用例中使用 Google Cloud Global HTTP(S),尤其是在使用高级流量管理时,包括:
- A/B 测试
- 将用户的流量重定向到后端运行的不同服务集
- 提供与地理位置相关的内容或基于设备类型的内容,方法是根据请求发起的不同设备类别或地理位置提供不同的页面和体验
- 后端服务:它是实际应用程序实例、后端服务以及相关的健康检查的逻辑分组,以及有助于确定哪些实例是健康的或过度使用的均衡模式(CPU 利用率、每个实例每秒的请求),以及何时触发自动缩放。从配置的角度来看,负载均衡服务需要配置为将请求路由到后端服务。
- 后端:指从 Google Cloud 负载均衡器接收流量的端点。后端可以是一个实例组,用于添加和管理基于使用托管实例组(具有或不具有自动缩放功能)的,也可以是非托管实例组。或者它可以基于支持多个用例的网络端点组 NEG,例如提供容器原生负载均衡的容器化应用程序、将流量发送到本地和其他云的混合架构以及使用 Cloud Run、 App Engine的无服务器应用程序,云函数,或API 网关服务。
注意:可以在适用的情况下在负载均衡器上启用HTTP/3,以提高网页加载时间和更高延迟连接的吞吐量。
Google Cloud 提供了多种负载均衡选项,以简化不同用例的设计。对于全球外部 HTTP(S) 负载均衡,此负载均衡提供两种模式。因此,作为架构师或设计师,首先需要了解目标解决方案和应用程序要求,以做出最佳设计决策,即选择哪种类型的负载均衡器。此外,谷歌云负载均衡提供从简单到非常高级和复杂的设计和用例。作为一般设计建议,始终从简单而具体的用例开始,然后可以在定义高级规则和策略方面为其添加更多功能和改进。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论