镜像模式基于将某个现有环境或多个现有环境的设计复制到新环境或多个新环境。因此,此模式主要适用于遵循环境混合模式的架构。在该模式下,您可以在一个环境中运行开发和测试工作负载,在另一个环境中运行暂存和生产工作负载。
镜像模式假定测试工作负载和生产工作负载不应直接相互通信。但是,应该能够以一致的方式管理和部署这两组工作负载。
如果您使用此模式,请以符合以下要求的方式连接这两个计算环境:
- 持续集成/持续部署 (CI/CD) 可以跨所有计算环境或特定环境部署和管理工作负载。
- 监控、配置管理和其他管理系统应可跨计算环境工作。
- 工作负载无法跨计算环境直接通信。如有必要,必须以精细且受控的方式进行通信。
架构
下图展示了此模式的概要参考架构,该架构支持 CI/CD、监控、配置管理、其他管理系统和工作负载通信:
上图中架构的说明如下:
- 工作负载会根据功能环境(开发、测试、CI/CD 和管理工具)分布在 Google Cloud 端的各个 VPC 中。
- 共享 VPC 用于开发和测试工作负载。额外的 VPC 用于 CI/CD 和管理工具。使用共享 VPC:
- 每个环境和每个服务项目的应用由不同的团队管理。
- 宿主项目管理和控制开发环境和测试环境之间的网络通信和安全控制,以及 VPC 外部的网络通信和安全控制。
- CI/CD VPC 连接到在私有计算环境中运行生产工作负载的网络。
- 防火墙规则仅允许允许的流量。
- 您还可以将 Cloud Next Generation Firewall Enterprise 与入侵防御服务 (IPS) 搭配使用,在不更改设计或路由的情况下实现深度数据包检测,以防范威胁。Cloud 新一代防火墙企业版的工作原理是创建 Google 管理的可用区级防火墙端点,这些端点使用数据包拦截技术以透明方式检查工作负载以查找配置的威胁签名。它还可以保护工作负载免受威胁。
- 允许使用内部 IP 地址在对等互连的 VPC 之间进行通信。
- 在此模式中,通过对等互连,CI/CD 和管理系统能够部署和管理开发和测试工作负载。
- 请考虑以下常规最佳实践。
您可以使用上述符合业务和应用要求的混合云和多云网络连接选项之一来建立此 CI/CD 连接。为了便于您部署和管理生产工作负载,此连接可在不同的计算环境之间提供专用网络可达性。所有环境都应具有无重叠的 RFC 1918 IP 地址空间。
如果开发和测试环境中的实例需要访问互联网,请考虑以下选项:
- 您可以将 Cloud NAT 部署到同一共享 VPC 宿主项目网络。部署到同一共享 VPC 宿主项目网络有助于避免这些实例可直接从互联网访问。
- 对于出站网络流量,您可以使用安全 Web 代理。该代理具有多项优势。
如需详细了解 Google Cloud 有助于您在混合云和多云环境中以及跨这些环境构建、测试和部署的工具和功能,请参阅DevOps 和 CI/CD 简介 Google Cloud 博文。 Google Cloud
变体
为了满足不同的设计要求,同时仍顾及所有通信要求,镜像架构模式提供了以下选项,这些选项在以下部分中进行了介绍:
每个环境一个共享 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 连接。如果您必须在每个环境中分离管理网域和函数,请使用此选项。轮辐通信模型有助于满足以下要求:
- 应用需要访问一组常见的服务,例如监控、配置管理工具、CI/CD 或身份验证。
- 需要通过中心集中地对传入和传出流量应用一组共同的安全政策。
如需详细了解中心辐射型设计选项,请参阅具有集中式设备的中心辐射型拓扑和无集中式设备的中心辐射型拓扑。
如上图所示,VPC 之间的通信和混合连接都通过 hub VPC 进行。在此模式中,您可以控制和限制 hub VPC 中的通信,以符合您的连接要求。
在中心辐射型网络架构中, Google Cloud的主要连接选项(辐条 VPC 和中心 VPC 之间的连接)如下:
- VPC 网络对等互连
- VPN
- 使用网络虚拟设备 (NVA)
- 使用多个网络接口
- 使用 Network Connectivity Center (NCC)
如需详细了解您在设计中应考虑哪些选项,请参阅中心辐射型网络架构。在需要流量传递性时,选择在 spoke 和 hub VPC 之间使用 VPN 而非 VPC 对等互连是一个关键影响因素。流量传递性是指一个 spoke 的流量可以通过 hub 到达其他 spoke。
微服务零信任分布式架构
混合架构和多云架构可能需要多个集群来实现其技术和业务目标,包括将生产环境与开发和测试环境分隔开来。因此,网络边界安全控制措施非常重要,尤其是在需要遵守特定安全要求时。
这还不足以支持当前云优先分布式微服务架构的安全要求,您还应考虑零信任分布式架构。微服务零信任分布式架构通过微服务级安全政策强制执行、身份验证和工作负载身份,为您的微服务架构提供支持。信任基于身份,并会针对每项服务强制执行。
通过使用分布式代理架构(例如服务网格),服务可以有效验证调用方,并为每个请求实现精细的访问权限控制政策,从而实现更安全、更可伸缩的微服务环境。借助 Cloud Service Mesh,您可以灵活地选择部署跨越Google Cloud 和本地部署的公用网格。该网格使用授权政策来帮助确保服务间通信安全。
您还可以将 Apigee Adapter for Envoy(Kubernetes 集群内的轻量级 Apigee API 网关部署)纳入到此架构中。Apigee Adapter for Envoy 是一款开源边缘和服务代理,专为云优先型应用而设计。
如需详细了解此主题,请参阅以下文章:
- 零信任分布式架构
- GKE Enterprise Hybrid 环境
- 连接至 Google
- 将本地 GKE Enterprise 集群连接到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。如需了解详情,请参阅本系列中的受限入站。
- 查看混合云和多云网络架构模式的一般最佳实践。