镜像模式是指将某个现有环境或多个现有环境的设计复制到新环境或多个新环境。因此,此模式主要适用于遵循环境混合模式的架构。在该模式下,您可以在一个环境中运行开发和测试工作负载,在另一个环境中运行暂存和生产工作负载。
镜像模式假设测试和生产工作负载不应直接相互通信。但是,应该能够以一致的方式管理和部署这两组工作负载。
如果您使用此模式,请以符合下列要求的方式连接这两个计算环境:
- 持续集成/持续部署 (CI/CD) 可以跨所有计算环境或特定环境部署和管理工作负载。
- 监控、配置管理和其他管理系统应可跨计算环境工作。
- 工作负载无法直接跨计算环境进行通信。如有必要,通信必须以精细且受控的方式进行。
架构
以下架构图展示了此模式的概要参考架构,该架构支持 CI/CD、监控、配置管理、其他管理系统和工作负载通信:
上图中架构的说明如下:
- 工作负载会根据功能环境(开发、测试、CI/CD 和管理工具)分布在 Google Cloud 侧的各个 VPC 中。
- 共享 VPC 用于开发和测试工作负载。另一个 VPC 用于 CI/CD 和管理工具。使用共享 VPC:
- 应用由不同团队按环境和按服务项目进行管理。
- 宿主项目负责管理和控制开发环境与测试环境之间以及与 VPC 外部的网络通信和安全控制。
- CI/CD VPC 已连接到在私有计算环境中运行生产工作负载的网络。
- 防火墙规则仅允许允许的流量。
- 您还可以使用具有入侵防御服务 (IPS) 的 Cloud Next Generation Firewall Enterprise,在不更改设计或路由的情况下实现深度数据包检测,以防范威胁。Cloud Next Generation Firewall Enterprise 的工作原理是创建 Google 管理的可用区级防火墙端点,这些端点使用数据包拦截技术以透明方式检查工作负载以查找配置的威胁签名。它还可以保护工作负载免受威胁。
- 允许使用内部 IP 地址在对等互连的 VPC 之间进行通信。
- 此模式中的对等互连可让 CI/CD 和管理系统部署和管理开发和测试工作负载。
- 不妨参考以下一般最佳实践。
您可以使用符合您的业务和应用要求的混合云和多云网络连接选项之一来建立此 CI/CD 连接。为了让您能够部署和管理生产工作负载,此连接可在不同的计算环境之间提供专用网络可达性。所有环境都应具有无重叠的 RFC 1918 IP 地址空间。
如果开发和测试环境中的实例需要访问互联网,请考虑以下选项:
- 您可以将 Cloud NAT 部署到同一共享 VPC 宿主项目网络中。部署到同一共享 VPC 宿主项目网络有助于避免从互联网直接访问这些实例。
- 对于出站 Web 流量,您可以使用 Secure Web Proxy。该代理具有多项优势。
如需详细了解可帮助您在 Google Cloud 以及混合云和多云环境中构建、测试和部署的 Google Cloud 工具和功能,请参阅 Google Cloud 上的 DevOps 和 CI/CD 详解博客。
变体
为了满足不同的设计要求,同时仍顾及所有通信要求,镜像架构模式提供了以下选项,我们将在下文中进行说明:
每个环境一个共享 VPC
“每个环境一个共享 VPC”的设计方案可在不同环境(包括 CI/CD 和管理工具)之间实现应用级或服务级分离,这可能有助于满足某些组织的安全要求。这些要求限制了不同服务(也需要由不同团队管理)的通信、管理网域和访问权限控制。
此设计通过在不同环境之间提供网络级和项目级隔离来实现分离,从而实现更精细的通信和 Identity and Access Management (IAM) 访问权限控制。
从管理和运营的角度来看,此设计可灵活地管理不同团队在每个环境和每个服务项目中创建的应用和工作负载。网络运营团队可以根据以下可能的结构来预配和管理 VPC 网络及其安全功能:
- 一个团队管理所有环境中的所有宿主项目。
- 不同的团队管理各自环境中的宿主项目。
有关管理宿主项目的决策应基于团队结构、安全运维以及每个团队的访问权限要求。您可以将此设计变体应用于为每个环境创建共享 VPC 网络着陆区设计选项。不过,您需要考虑镜像模式的通信要求,以定义不同环境之间允许的通信,包括通过混合网络的通信。
您还可以为每个主要环境预配一个共享 VPC 网络,如下图所示:
集中式应用层防火墙
在某些情况下,安全要求可能强制要求使用超出 Cloud Next Generation Firewall 功能的高级防火墙机制来实现应用层(第 7 层)和深度数据包检测。为了满足组织的安全要求和标准,您可以使用托管在网络虚拟设备 (NVA) 中的 NGFW 设备。许多 Google Cloud 安全合作伙伴都提供非常适合此任务的选项。
如下图所示,您可以使用多个网络接口将 NVA 放置在虚拟私有云与私有计算环境之间的网络路径中。
此设计还可以与多个共享 VPC 搭配使用,如下图所示。
在此设计中,NVA 充当边界安全层。它还可作为启用内嵌流量检查和强制执行严格访问权限控制政策的基础。
为了制定包含 VPC 防火墙规则和入侵防御服务功能的强大多层安全策略,请进一步检查东西向和南北向流量,并加强安全控制。
中心辐射型拓扑
另一种可能的设计变体是为开发和不同的测试阶段使用单独的 VPC(包括共享 VPC)。在此变体中,如下图所示,所有阶段环境都以中心辐射型架构与 CI/CD 和管理 VPC 相连。如果您必须在每个环境中分离管理网域和功能,请使用此选项。 hub-and-spoke 通信模型可帮助满足以下要求:
- 应用需要访问一组通用服务,例如监控、配置管理工具、CI/CD 或身份验证。
- 需要通过中心以集中方式将一组通用的安全政策应用于入站和出站流量。
如需详细了解中心辐射型设计选项,请参阅具有集中式设备的中心辐射型拓扑和没有集中式设备的中心辐射型拓扑。
如上图所示,VPC 间通信和混合连接都通过 hub VPC。在此模式中,您可以控制和限制 hub VPC 中的通信,以满足连接要求。
作为中心辐射型网络架构的一部分, Google Cloud上的主要连接选项(在 spoke VPC 和 hub VPC 之间)如下:
- VPC 网络对等互连
- VPN
- 使用网络虚拟设备 (NVA)
- 具有多个网络接口
- 借助 Network Connectivity Center (NCC)
如需详细了解在设计中应考虑哪个选项,请参阅中心辐射型网络架构。在辐条 VPC 和 hub VPC 之间选择 VPN 而不是 VPC 对等互连的一个关键影响因素是是否需要流量传递。流量传递性是指,来自 spoke 的流量可以通过 hub 到达其他 spoke。
微服务零信任分布式架构
混合云和多云架构可能需要多个集群才能实现其技术和业务目标,包括将生产环境与开发和测试环境分开。因此,网络边界安全控制措施非常重要,尤其是在需要遵守某些安全要求时。
仅仅支持当前以云优先的分布式微服务架构的安全要求是不够的,您还应考虑零信任分布式架构。微服务零信任分布式架构通过微服务级安全政策执行、身份验证和工作负载身份来支持您的微服务架构。信任基于身份,并会针对每个服务强制执行。
通过使用分布式代理架构(例如服务网格),服务可以有效地验证调用方,并为每个请求实现精细的访问权限控制政策,从而打造更安全、更可伸缩的微服务环境。借助 Cloud Service Mesh,您可以灵活地选择部署跨越Google Cloud 和本地部署的公用网格。网格使用授权政策来帮助确保服务间通信的安全。
您还可以将 Apigee Adapter for Envoy(Kubernetes 集群内的轻量级 Apigee API 网关部署)纳入此架构。Apigee Adapter for Envoy 是一款开源边缘和服务代理,专为云优先应用而设计。
如需详细了解本主题,请参阅以下文章:
- 零信任分布式架构
- Google Kubernetes Engine (GKE) 混合环境
- 连接至 Google
- 将本地集群连接到Google Cloud 网络。
- 设置多云或混合网格
- 跨环境和集群部署 Cloud Service Mesh。
镜像模式最佳实践
- 部署或重新配置生产部署所需的 CI/CD 系统必须具有高可用性,这意味着所有架构组件都必须经过精心设计,以提供预期的系统可用性。如需了解详情,请参阅Google Cloud 基础架构可靠性。
- 为消除代码更新等重复流程中的配置错误,自动化对于标准化构建、测试和部署至关重要。
- 在此设计中集成集中式 NVA 可能需要纳入具有不同安全访问权限控制级别的多个部分。
- 在设计包含 NVA 的解决方案时,请务必考虑 NVA 的高可用性 (HA),以避免可能阻止所有通信的单点故障。请按照您的 NVA 供应商提供的高可用性和冗余设计及实现指导操作。
- 通过不经由 VPC 对等互连或 VPN 将本地 IP 路由导出到开发和测试 VPC,您可以限制从开发和测试环境到本地环境的网络可达性。如需了解详情,请参阅 VPC 网络对等互连自定义路由交换。
- 对于需要访问 Google API 的专用 IP 地址工作负载,您可以使用 VPC 网络中的 Private Service Connect 端点公开 Google API。如需了解详情,请参阅本系列中的门控入站。
- 查看混合云和多云网络架构模式的一般最佳实践。