我们在之前的游戏方案模块有一个话题是谷歌云的基础架构在游戏场景中的独特优势,里面介绍了 Google Cloud Load Balancing 所扮演的重要角色,有兴趣的小伙伴可以重温一下。(点此复习)那到底是什么是 Cloud Load Balancing ?

Cloud Load Balancing 是一种全分布式的负载平衡解决方案,可以将用户流量 (HTTP)、HTTPS/2 与 gRPC、TCP/SSL、UDP 和 QUIC 均衡到多个后端,以避免拥塞、减少延迟、提高安全性和降低成本。

Cloud Load Balancing 构建在与谷歌相同的前端服务基础设施上,支持每秒 100 多万次查询,并且具有一致的高性能和低延迟。

  • 软件定义的网络 (SDN)Cloud Load Balancing 不是基于实例或设备的解决方案,也就是说我们不会被锁定在物理基础设施中,也不会面临 HA、规模和管理挑战。
  • 单一全球任播 IP 和自动缩放 Cloud Load Balancing 会平衡分布在全球的所有后端实例。它提供跨区域的负载平衡,包括自动多区域故障转移。如果后端出现异常,它会逐步拆分转发流量;如果需要更多资源,那么 Cloud Load Balancing 也会根据需求自动扩缩。


Cloud Load Balancing 如何工作

外部负载均衡

这里有一个场景可供理解。加入我们有一个客户身处加利福尼亚。我们可以在该区域部署前段实例并配置一个负载均衡的 Virtual IP,当我们的用户扩展到其他区域时,我们只需在其他区域创建实例即可,这时的 Virtual IP 和 DNS 的位置都是没有变化的。

当我们的应用逐渐走向全球,我们同样可以复用这个模式。如来自印度的玛雅人的访问会被路由到离他最近的印度实例,如果印度的实例过载并自动扩缩以处理负载,在此期间,该访问会被无缝重定向到其他路由并在印度实例扩展到可以处理时路由回印度。(这是一个第7层外部负载均衡的例子)

内部负载均衡

在任何3层应用程序中,前端之后都有中间件和数据源进行交互,以满足客户需求。这也是我们需要在前端与其他内部层之间进行第4层内部负载均衡的地方。第4层内部负载均衡适用于RFC 1918 VIP 后面的 TCP/UDP 流量,其中保留了客户端 IP。

我们还会获得自动健康检查,并且没有中间代理,这是因为使用了 SDN 控制和数据平面进行负载平衡。

与其他服务的无缝集成

Google Cloud HTTP(S) Load Balancin 的关键特性之一是跨多个不同后端类型的负载均衡,而无服务器 NEG 的集成对此进行了改进:负载平衡器的 URL 映射现在可以将无服务器 NEG 与其他后端类型混合。例如,外部 IPv4 和 IPv6 客户端可以使用相同的基本 URL 以及路径 /catalog、/queries、/video 和 /images 来请求视频、API 和图像内容。通过负载均衡器的 URL 映射,对不同路径的请求被路由到不同的后端:

  • /queries -> 具有无服务器 NEG 后端的后端;
  • /catalog -> 具有虚拟机实例组或地区 NEG 后端的后端服务;
  • /images -> 带有 Cloud Storage 后端的后端存储桶;
  • /video -> 指向互联网 NEG 的后端服务,该 NEG 包含位于 GCP 外部的本地内部端点。

如何使用全球 HTTP (S)Load Balancing

  • 对于全局 HTTP(s) 负载平衡,全局任播 VIP(IPv4 或 IPv6)与转发规则相关联,该规则将流量定向到目标代理;
  • 目标代理终止客户端会话,对于 HTTPs,可以在此阶段部署证书,定义后端主机,并定义路径规则。URL 映射提供第 7 层路由并将客户端请求定向到适当的后端服务;
  • 后端服务可以是用于计算实例的托管实例组 ( MIG ),也可以是用于容器化工作负载的网络端点组 ( NEG )。这也是确定服务实例容量和运行状况的地方;
  • 启用 Cloud CDN 以缓存内容以提高性能。可以设置防火墙规则来控制进出后端的流量;
  • 内部负载平衡设置的工作方式相同;仍然有转发规则,但它直接指向后端服务、转发规则。转发规则包括“虚拟 IP 地址”、“协议”和最多5个端口。

如何使用 Cloud Load Balancing 保护你的应用程序

借助 HTTPS 和 SSL 代理负载平衡,你可以使用托管证书,Google 负责提供和管理 SSL 证书的生命周期。

  • Cloud Load Balancing 支持多个 SSL 证书,使您能够使用相同的负载平衡器 IP 地址和端口为多个域提供服务;
  • 它吸收并消除了 Google 全球负载平衡基础设施中的第 3 层和第 4 层容量攻击;
  • 此外,使用Cloud Armor,可以防止第 3 层到第 7 层应用级别的攻击;
  • 通过使用身份感知代理和防火墙,可以对后端服务的访问进行验证和授权。

在决定哪个负载平衡选项适合自己的使用案例时,需要考虑以下因素:内部与外部、全球与区域以及流量类型(HTTP、TLS 或 UDP。如果想要更详细的了解 Cloud Load Balancing,可以访问下方参考文档。

参考文档: https://cloud.google.com/load-balancing/docs


返回全部