面向 Azure 专业人员的 Google Cloud Platform 指南:网络

更新时间:2017 年 7 月 18 日

本文对 Azure 和 Google 在各自的云端环境中提供的网络服务进行了比较。网络服务可提供跨虚拟机、其他云服务和本地服务器的连接。

虚拟网络

网络和子网

Azure 和 Cloud Platform 均提供隔离式虚拟网络。Azure VNet 属于区域性资源,而 Cloud Platform VPC 网络属于全球性资源。在 Azure 和 Cloud Platform 中,您都可以在给定订阅或项目中创建多个网络,并且可以进一步将这些网络细分为一个或多个子网。此外,无需任何额外配置,虚拟网络中部署的虚拟机即可相互通信,无论虚拟机所在的子网为何都是如此。

在 Azure 上,只有在子网尚未包含虚拟机或服务的情况下,您才能缩小或扩大子网的 IP 范围。相比之下,在 Cloud Platform 上,您可以随时扩大子网的 IP 范围,而不会影响子网中的虚拟机。但是,在创建子网或扩展其 IP 范围后,您无法再缩小子网。

此外,Cloud Platform 还可让您在属于同一 Cloud 组织的项目之间共享虚拟网络。此功能称为共享 VPC 网络。有了共享 VPC,Cloud 组织管理员便可授权多个项目使用一个共享虚拟网络和相应网络资源。如需详细了解共享 VPC,请参阅共享 VPC 网络概览。 Azure 没有与共享 VPC 相当的功能。

网络接口和 IP 地址

大体上来说,VPC 网络和 Azure VNet 对 IP 地址的处理方式是类似的。在启动时,所有虚拟机都有一个专用的内部 IP 地址。您可以视情况选择将外部 IP 地址与虚拟机关联;此 IP 地址可以是动态的,也可以是静态的。但是,每项服务的低层细节略有不同。

Azure

Azure 会将网络接口 (NIC) 和所有 IP 地址类型视为资源。您可以将一个公共 IP 地址资源关联至与特定虚拟机相关联的 NIC 资源。Azure 支持每台机器最多 32 个 NIC,具体取决于机器类型。每个 NIC 最多支持配置 50 个 IP 地址,配置的每个 IP 地址可以支持一个公共 IP 地址和一个专用 IP 地址。

默认情况下,您的公共 IP 地址是临时地址。如果您将公共 IP 地址资源与 NIC 资源分离,则公共 IP 地址资源会保留,但 IP 地址本身将被删除。如果将公共 IP 地址资源关联至新的虚拟机,则该资源会连接到一个新的 IP 地址。

虚拟机的专用 IP 地址也是临时地址。如果您停止或停用虚拟机,则虚拟机会删除其专用 IP 地址;如果您重新启动虚拟机,则虚拟机会选取一个新的 IP 地址。

您也可以将公共或专用 IP 地址配置为静态地址。 如果您的 IP 地址是静态的,则即使 IP 地址资源已与任何 NIC 分离,该地址也会保留。

Compute Engine

在 Compute Engine 上,NIC 不会被视为独立资源, 而是直接关联至给定的虚拟机实例。Compute Engine 虚拟机实例最多支持 8 个 NIC,具体取决于机器类型。每个 NIC 都支持一个外部 IP 地址和一个内部 IP 地址。

与 Azure 一样,Compute Engine 会为每个虚拟机实例提供一个内部 IP 地址,您可以附加一个临时或静态的外部 IP 地址。内部 IP 地址和临时外部 IP 地址都属于虚拟机实例的一部分,而非独立资源。但是,如果您将临时外部 IP 地址转换为静态地址,则该地址会变为可与虚拟机分离的独立资源。

与 Azure 相比,虚拟机实例的内部 IP 地址的预留期限以实例的生命周期为准。

此外,Compute Engine 可让您以别名形式将一系列 IP 地址分配给虚拟机实例的主 IP 地址。通过此功能,您可以为在同一虚拟机实例上运行的不同服务分配不同 IP,这对于涉及容器化的使用场景特别有用。 此外,您可以在自己的子网中设置次要 CIDR 范围,该范围可用于为该子网分配别名 IP。

IP 类型 Azure Cloud Platform
永久 IP 公共静态 IP 静态 IP
临时 IP 公共动态 IP 临时 IP
内部 IP 专用 IP 内部 IP

虚拟机迁移

当底层硬件发生更新或故障时,Azure 会自动处理虚拟机的迁移。尽管此过程通常是无缝执行的,但有时可能需要重新启动虚拟机才能使更新生效。在极少数情况下,Azure 可能需要强制重新启动虚拟机。

同样,Cloud Platform 也具有实时迁移功能,也就是说,当主机硬件需要维护或更换时,Cloud Platform 会自动以透明方式迁移虚拟机实例。 和 Azure 的迁移过程一样,实时迁移通常也是无缝执行的,但在极少数情况下,可能需要重新启动虚拟机实例。默认情况下,系统会为大多数机器类型启用实时迁移功能。但是,挂接了 GPU 的机器不能使用实时迁移功能,因为 GPU 会直接挂接到主机硬件上。如需详细了解实时迁移功能,请参阅此博文

防火墙

Azure 和 Compute Engine 都允许用户配置有状态的防火墙政策,以便选择性地允许和拒绝流量传入联网资源。 在这两种环境中,每个虚拟网络默认都会阻止从网络外部传入的所有流量。您可以通过应用规则来允许访问特定资源。在 Azure 上,每个规则都配置为一个网络安全组 (NSG),而在 Compute Engine 上,每个规则都配置为一项防火墙规则

在 Cloud Platform 和 Azure 中,您都可以将标记与 NSG 或防火墙规则进行关联,从而将规则应用于使用给定标记的资源。在 Azure 上,您只能将一个 NSG 与给定的子网或 NIC 关联。而相比之下,在 Cloud Platform 上,您可以对一个资源应用多个防火墙规则,从而更细致地管理防火墙。

此外,Azure 还允许用户通过创建端点访问控制列表 (ACL) 来配置无状态防火墙规则,这些列表可以在虚拟机级层应用。 Cloud Platform 不支持无状态防火墙规则。

负载平衡

负载平衡器会在多个实例之间分配传入流量。 经过适当配置后,负载平衡器可让应用具备容错能力,并提升应用可用性。

概括来讲,Azure 的负载平衡组件与 Cloud Platform 的负载平衡组件之间的对应关系如下:

组件 Microsoft Azure Google Cloud Platform
HTTP 负载平衡 Application Gateway(与流量管理器搭配使用时,可以提供跨区域负载平衡服务) Compute Engine HTTP(S) 负载平衡器
TCP/UDP 负载平衡 Azure 负载平衡器(面向互联网的负载平衡器) 网络负载平衡器、TCP 代理负载平衡器(跨区域)
内部负载平衡 Azure 负载平衡器(内部负载平衡器) Compute Engine 内部负载平衡器
SSL 负载平衡 Application Gateway(HTTPS 流量) Compute Engine HTTP(S) 负载平衡器(HTTPS 流量)、SSL 代理负载平衡器(加密非 HTTP 流量)

HTTP(S) 负载平衡

Azure 和 Compute Engine 均提供第 7 层负载平衡服务,该服务会在应用层分配客户端请求;与第 4 层负载平衡服务相比,其路由更为复杂。Azure 通过 Application Gateway 提供此服务,而 Compute Engine 通过其 HTTP(S) 负载平衡器提供此服务。这两项服务的具体对比如下:

特性 Application Gateway Compute Engine HTTP(S) 负载平衡器
HTTP 负载平衡
跨区域的单一全局 IP 有(IPv4 和 IPv6)
跨区域负载平衡 需要与流量管理器搭配使用(基于 DNS) 原生支持(基于 IP)
基于内容的负载平衡
会话粘性 有(基于 Cookie) 有(基于 Cookie 和基于 IP)
SSL 终止服务
端到端 SSL
WebSocket 支持
运行状况监控
日志记录 有(目前为 Alpha 版)
负载分配 轮循机制 CPU 利用率或每秒请求数 (RPS)
自动调节

跨区域 HTTP(S) 负载平衡

Application Gateway 和 Compute Engine 都可以实现跨地区 HTTP(S) 负载平衡。

在 Azure 上,您可以通过将流量管理器(Azure 的基于 DNS 的流量路由服务)放置在多个 Application Gateway 端点之前,配置跨地区 HTTP(S) 负载平衡服务。然后,流量管理器会根据您选择的路由策略,将流量路由到离最终用户最近的 Application Gateway 端点。

同 Application Gateway 相比,Compute Engine HTTP(S) 负载平衡以原生方式支持跨区域 HTTP(S) 负载平衡。构建 HTTP(S) 负载平衡器时,您需要设置包含一个全球通用的 IP 入口点的全球性转发规则。此规则通过一个将流量分配到相关后端的目标代理来发送流量。HTTP(S) 负载平衡器会将流量定向到离最终用户最近的后端。但是,Compute Engine 基于全球 IP 地址的负载平衡服务具备显著的性能优势:

  • 基于 IP 地址的负载平衡是一项负载感知服务。 您可以配置 Compute Engine 的全球负载平衡器,以根据 CPU 利用率或每秒请求数分配流量。相比之下,基于 DNS 的负载平衡是一项负载无感知型服务,必须根据一般路由策略来路由流量。
  • 基于 DNS 的负载平衡服务受 ISP 约束。 为使 DNS 更改生效,必须在 ISP 级别记录更改。由于 ISP 缓存的 DNS 记录通常会在几个小时后失效,因此 ISP 可能无法及时获取 DNS 更改,从而导致最终用户被路由到利用率过高(甚至失败)的后端服务。基于全局 IP 的负载平衡服务可帮助您消除这种潜在问题。

会话粘性

通过会话粘性,您可以将特定客户端映射到特定后端,从而有可能节省服务器端的资源。

Application Gateway 提供基于 Cookie 的会话粘性,因此可通过存储客户端 Cookie 将客户端与特定的后端虚拟机关联起来。

Compute Engine 的 HTTP(S) 负载平衡器也提供基于 Cookie 的粘性。此外,HTTP(S) 负载平衡器还提供了基于 IP 的粘性,因此可以将来自特定客户端 IP 地址的所有请求转发到同一虚拟机实例。

扩缩

在 Application Gateway 上,当超出负载平衡器的服务容量时,您必须手动添加虚拟机。相比之下,Compute Engine 的 HTTP(S) 负载平衡器可根据负载平衡器的服务容量自动调节虚拟机实例,因此无需人工干预即可处理流量溢出的问题。这种自动调节功能会即时启用,无需预热。如需了解详情,请参阅负载平衡和调节功能

TCP/UDP 负载平衡

Azure 和 Compute Engine 均提供第 4 层负载平衡服务,用于在网络传输层分配某一区域内的客户端请求。Azure 通过 Azure 负载平衡器提供此服务,而 Cloud Platform 通过 Compute Engine 网络负载平衡器提供此服务。

这两项服务的具体对比如下:

特性 Azure 负载平衡器 Compute Engine 网络负载平衡器
TCP/UDP 负载平衡
内部负载平衡
面向互联网的负载平衡
支持的应用层协议 不限 不限
支持的端点 Azure 虚拟机(不包括基本虚拟机)、云服务角色实例 目标池、目标虚拟机实例、后端服务(仅限内部负载平衡)
运行状况监控
默认负载平衡模式 5 元组(来源和目的地 IP、来源和目的地端口、协议类型) 5 元组(来源和目的地 IP、来源和目的地端口、协议类型)
会话粘性模式 2 元组(来源和目的地 IP)、3 元组(来源和目的地 IP、端口) 2 元组(来源和目的地 IP)、3 元组(来源和目的地 IP、协议类型)

跨区域 TCP/UDP 负载平衡

在 Azure 上,如果要缩短最终用户延迟时间,您可以将流量管理器置于 Azure 负载平衡器之前,并将其配置为动态地路由到其公共 IP 地址。通过这种布局,您可以使用单一 DNS 配置将流量路由到离用户最近的虚拟机。

在 Compute Engine 上,您可以通过设置 TCP 代理负载平衡SSL 代理负载平衡来实现类似结果。这些服务在设计上与 Compute Engine HTTP(S) 负载平衡器类似,但支持的应用层协议更为广泛。与 HTTP(S) 负载平衡器一样,这两种服务都允许您使用单一的全球通用 IP 地址将流量分配到离用户最近的虚拟机实例。

与基于 DNS 的负载平衡服务相比,基于 IP 地址的负载平衡服务具有显著性能优势,可以提供基于负载的流量分配功能和更一致的性能。如需了解详情,请参阅跨区域 HTTP(S) 负载平衡部分。

费用

Azure 负载平衡器费用包含在 Azure 虚拟机的价格中。

对于每个网关,Application Gateway 按每小时费率收费;对于通过该网关处理的流量,Application Gateway 按每 GB 费率单独收费。

对于每条转发规则,Compute Engine 按每小时费率收费;对于通过负载平衡器处理的流量,Compute Engine 按每 GB 费率单独收费。

DNS

DNS 服务会将人能识别的域名转换为 IP 地址,以供服务器用来相互连接。托管式 DNS 服务(如 Azure DNS 和 Google Cloud DNS)会在云端提供可扩缩的托管式 DNS。

Azure DNS 和 Cloud DNS 非常相似。两者都支持最常见的 DNS 记录类型,以及基于 Anycast 的服务。目前,这两项服务均不支持 DNSSEC

连接

Azure 的连接服务与 Cloud Platform 的连接服务之间的具体比较如下:

特性 Azure Cloud Platform
VPC 对等互连 VNet 对等互连 VPC 网络对等互连
虚拟专用网 Azure VPN 网关 Cloud VPN
经由运营商合作伙伴的专用私有连接 ExpressRoute 不适用
经由运营商合作伙伴的专用公共连接 不适用 运营商对等互连
专用直接连接 不适用 直接对等互连
CDN 对等互连 不适用 CDN 互连

VPN

Azure 和 Cloud Platform 均提供虚拟专用网 (VPN) 服务。Azure 提供了 Azure VPN 网关,Cloud Platform 通过 Compute Engine 提供 Cloud VPN。在每项服务中,您可以创建一条从外部网络到内部 Azure 或 Compute Engine 虚拟网络的隧道,然后通过该隧道建立安全连接。

如需在 Cloud Platform 上路由流量,您可以使用 Cloud Router,该路由器可以在 Compute Engine 网络和非 Google 网络之间实现动态 BGP 路由更新。Azure 通过 Azure VPN 网关服务提供类似的路由服务。

虚拟网络对等互连

Azure 和 Cloud Platform 均可为一个或多个虚拟网络建立对等互连。在 Azure 上,此功能称为 VNet 对等互连,而在 Cloud Platform 上,此功能称为 VPC 网络对等互连。 与外部 IP 地址或 VPN 相比,虚拟网络对等互连服务具有多项优势,具体如下:

  • 延迟时间比公共 IP 网络短
  • 安全性更高,因为服务所有者无需将其服务公开给公共互联网,自然也无需应对相关风险

Azure 的 VNet 对等互连服务与 Cloud Platform 的 VPC 网络对等互连服务之间的具体对比如下:

特性 Azure Cloud Platform
位置限制 对等互连的网络必须位于同一区域中 无限制
支持的服务 虚拟机、云服务 Compute Engine、App Engine 柔性环境
每个网络的对等互连网络数上限 默认上限为 10 个(可以提出申请,但不能超过 50 个) 最多 25 个
重叠 IP 地址 不支持 不支持
传递性对等互连 不支持 不支持

跨单元对等互连

在 Azure 上,您可以在属于不同订阅的 VNet 之间建立对等互连。 类似地,在 Cloud Platform 上,您可以在属于不同项目或组织的 VPC 网络之间建立对等互连。 如需在不同项目之间建立 VPC 网络对等互连,您可以将给定的 VPC 网络与共享 VPC 网络对等互连。如需在不同组织之间建立 VPC 网络对等互连,您可以与属于这些组织所拥有项目的 VPC 网络对等互连。

专用互连

在某些情况下,本地到云端的 VPN 可能无法提供特定工作负载所需的速度或安全性。为了应对这些情况,Azure 和 Google 与多个合作伙伴联手打造了一项网络线路租用服务,旨在确保容量水平。

运营商对等互连

Azure 提供了 ExpressRoute,可让您通过合作伙伴运营商设施建立到 Azure 的专用租用线路连接。每个合作伙伴位置服务于一个特定地区。

Google 提供了一项名为 Cloud Interconnect 的等效服务。与 ExpressRoute 和 Azure 一样,Cloud Interconnect 可让您通过合作伙伴设施建立到 Cloud Platform 的地区性租用线路连接。但是,这种线路使用的是公共网络。

直接对等互连

除了运营商对等互连以外,Cloud Platform 还允许您直接连接到 Google 的网络,而无需通过第三方合作伙伴。 Azure 没有此项服务。

内容分发网络 (CDN) 对等互连

内容分发网络 (CDN) 对等互连服务可经由网络边缘位置来提供您的云端资源与 CDN 提供商之间的连接。Google 通过其 CDN Interconnect 服务为多个 CDN 提供商提供 CDN 对等互连。

Azure 没有 CDN 对等互连服务。但是,Azure 可以通过其 Azure CDN 服务提供专用的 Akamai 和 Verizon CDN 连接。

费用

Azure 和 Cloud Platform 都按小时费率收取 VPN 服务费。

对于 Cloud Interconnect,运营商对等互连的费用由租赁线路的合作伙伴制定。对于 ExpressRoute,Azure 提供两种计费模型:

  • 无限量数据:在此模型中,您需按月支付无限量数据的传输费用。
  • 计量数据:在此模型中,您需按月支付一小笔费用,但系统还会根据每 GB 网络出站流量费率向您收费。

Cloud Platform 不会对直接对等互连服务收费。

与运营商对等互连一样,Cloud Platform 的 CDN 对等互连费用由对等互连合作伙伴制定。Cloud Platform 不会对 CDN Interconnect 收费。

后续步骤

下一篇:存储