Google Cloud 的物理网络是如何连接的?
Google Cloud 分为 regions,regions 又分为 zones。
- region 是一个地理区域,其中一个 VM 到另一个 VM 的往返时间 (RTT) 通常小于 1毫秒;
- zone 是 region 中的部署区域,拥有自己完全独立的故障域。
这也意味着在出现单个故障的情况下,位于不同 region 或者不同 zone 的两台机器无法“共命运”。
目前,Google 已经在200多个国家拥有超过27个 region 和82个 zone。这其中包括 146个网络边缘位置和 CDN ,同时这个网络也支持谷歌搜索、地图、Gmail 和 YouTube 。
谷歌网络基础设施
谷歌网络基础设施由三种主要类型的网络组成:
- 数据中心网络,将网络中的所有计算机连接在一起;
- 基于软件的私人网络 WAN ,将所有数据中心连接在一起;
- 软件定义公共 WAN ,用于面向用户的流量进入 Google 网络;
数据中心和面向 WAN 的互联网之间铺设了上千英里的光缆,包括十几条海底电缆。机器通过公共 WAN 从互联网连接,并通过专用 WAN 连接到网络上的其他计算机。比如,当您从在某个 region 的云上运行的 VM 向另外一个 region 中的 GCS 存储桶发送数据包时,该数据包不会脱离 Google 网络骨干。此外,在网络边缘部署了网络负载均衡器和第7层反向代理,它们在离用户最近的位置终止 TCP/SSL 连接,进而消除建立 HTTPS 连接所需的两次网络往返。
云联网服务
Google 的物理网络基础设施为云上运行应用程序提供了所需的全球虚拟网络,还提供了虚拟网络以及所需的工具来提升、转换、扩展或更新应用程序:
连接
我们需要做的第一件事是配置一个虚拟网络,从其他云上或者本地与其进行连接,并对资源进行隔离,以免其他项目或资源无意中访问网络。
混合连接:假设有一个公司 A,它拥有一个子网和开发网络的内部环境,他们想要本地环境和 Google Cloud 进行连接,这样资源和服务就可以轻松地在两个环境之间连接。他们可以使用 Cloud Interconnect 进行专用连接,也可以使用 Cloud VPN 通过 IPSec 安全通道连接。
这两种方法都可行,具体选择取决于他们对于带宽的要求。
对于更高的带宽和更多的数据,建议使用专用连接,这样云路由器可以帮助本地环境与谷歌云 VPC 之间启用动态路由。如果他们拥有多个网络或位置,那么还可以使用网络连接中心,通过谷歌网络作为广域网络 WAN 来连接谷歌云之外的不同企业站点。
虚拟专用云 VPC:所有资源都部署在 VPC 中,但有一个要求是 Prod 环境和 Dev 环境必须分离。为此,团队可以采用共享 VPC 将多个项目的资源连接到一个公共 VPC 网络中,通过该网络内部的 IP 来实现团队间的高效通信。
Cloud DNS:通过 Cloud DNS 我们可以管理公共和私有的 DNS 区域 、VPC 内部和 internet 上的公网 IP 地址、DNS 对等、水平分割、连接、转发以及 DNS 安全分析。
规模
扩展不仅包括快速扩展应用程序,还支持跨单个或多个 region 的资源实时分配负载,并加速内容交付以优化最后一公里的性能。
云负载平衡 : 在 Compute Engine 上快速扩展应用——不需要预热。在满足高可用性需求的同时,将负载均衡计算资源分布到单个或多个 region (和用户附近)。云负载均衡可以将资源放在单个 anycast IP 后面,通过智能自动扩缩进行伸缩,并与 Cloud CDN 集成。
Cloud CDN : 通过谷歌的全球分布式边缘缓存,加速 Compute Engine 提供的网站和应用程序的内容交付。Cloud CDN 降低了网络延迟,减轻了源流量,降低了服务成本。
一旦设置了 HTTP(S) 负载平衡,就可以通过一个复选框启用 Cloud CDN 。
安全
网络安全工具,用于防御基础设施 DDoS 攻击,降低与 Google Cloud 连接时数据外流的风险,以及网络地址转换,以便没有公共 IP 地址的资源能够受控地访问互联网。
防火墙规则:允许用户根据指定的配置允许或拒绝与 VM 实例的连接。每个 VPC 网络都充当分布式防火墙。虽然防火墙规则在网络级别上定义,但每次实例都可以允许或拒绝连接。也可以认为 VPC 防火墙规则不仅存在于实例和其他网络之间,还存在于同一网络中的单个实例之间;
Cloud Armor :它与 HTTP (S) 负载平衡器并肩工作,以提供内置防御 DDOS 攻击的基础设施。基于 IP 和基于地理的访问控制、对混合和多云部署的支持、预先配置的 WAF 规则和命名的 IP 列表;
数据包镜像:当需要监控和分析安全状态时,数据包镜像会发挥重要作用。VPC 数据包镜像可以对VPC 网络中特定实例的流量进行克隆并转发。它可以捕获所有流量(出站入站)和数据包,包括有效负载。镜像发生在虚拟机 (VM) 实例上,而不是网络上,这意味着它只消耗 VM 上的额外带宽;
Cloud NAT:允许某些没有外部 IP 地址的资源创建到互联网的出站连接;
Cloud IAP:帮助在不使用 VPN 的情况下从不受信任的网络中工作。验证用户身份并使用上下文来确定是否应授予用户访问权限。使用身份和上下文来保护对本地和基于云的应用程序的访问。
优化
还需密切关注网络性能,以确保基础设施满足性能需求。这包括可视化和监控网络拓扑、执行诊断测试和评估实时性能指标。
网络服务层:高级层通过使用谷歌的低延迟、高可靠的全球网络将流量从外部系统交付到 Google Cloud 资源,而标准层用于在互联网上路由流量。选择高级层获得性能、标准层获取低成本;
网络智能中心:为 Google Cloud 网络的可观察性、监控和故障排除提供控制台 。
现代化
随着基础设施现代化,采用基于微服务的架构,并扩大使用集装箱化,我们将需要访问有助于管理异质服务库存和其中路线流量的工具。
GKE 网络:(Anthos中的+ 本地部署)——当你使用GKE 时,Kubernetes 和谷歌Cloud会根据Kubernetes 部署的声明模型和 Google Cloud 上的集群配置,在每个节点上动态配置 IP 过滤规则、路由表和防火墙规则。
Traffic Director:帮助用户在全球服务网格中(集群之外)运行微服务。应用逻辑与网络逻辑的分离有助于提高发展速度,增加服务可用性,并在组织中引入现代 DevOps 实践。
Service Directory :发现、发布和连接服务的平台,无论环境如何。它提供关于单个位置上所有服务的实时信息,使用户能够大规模地执行服务库存管理,无论有几个服务端点还是数千个服务端点。