其他注意事项

本文档重点介绍了在构建混合云和多云端总体架构时发挥关键作用的核心设计注意事项。全面分析和评估整个解决方案架构(包括所有工作负载,而不仅仅是特定工作负载)中的这些注意事项。

重构

在重构迁移中,您可以修改工作负载以利用云功能,而不仅仅是让它们在新环境中工作。您可以针对性能、功能、费用和用户体验来改进每个工作负载。如重构:迁移并改进中所述,在某些重构方案中,您可以在将工作负载迁移到云端之前对其进行修改。这种重构方法具有以下优势,尤其是当您的目标是构建混合架构作为长期目标架构时:

  • 您可以改进部署过程。
  • 投资持续集成/持续部署 (CI/CD) 基础架构和工具可以加快发布节奏并缩短反馈周期。
  • 您可以将重构作为基础,构建和管理具有应用可移植性的混合架构。

为了使这种方法能够顺利实施,通常需要对本地基础架构和工具进行投资。例如,设置本地 Container Registry 并配置 Kubernetes 集群以容器化应用。Google Kubernetes Engine (GKE) Enterprise 版在此方法中可用于混合环境。有关 GKE Enterprise 的更多信息将在下一部分中介绍。您还可以参阅 GKE Enterprise 混合环境参考架构,了解更多详情。

工作负载可移植性

借助混合云和多云架构,您可能希望能够在托管数据的计算环境之间迁移工作负载。为了帮助实现工作负载在环境之间的无缝迁移,请考虑以下因素:

  • 您可以将应用从一个计算环境迁移到另一个计算环境,而无需大幅修改应用及其运营模式:
    • 应用部署和管理在各个计算环境中保持一致。
    • 在各种计算环境中,可见性、配置和安全性保持一致。
  • 工作负载的可移植性不应与工作负载的云优先性质相冲突。

基础设施自动化

对于混合云和多云架构中的可移植性,基础架构自动化至关重要。自动创建基础设施的一种常见方法是通过基础设施即代码 (IaC) 实现。IaC 涉及在文件中管理基础架构,而不是在界面中手动配置资源(例如虚拟机、安全组或负载均衡器)。 Terraform 是一种常用的 IaC 工具,用于在文件中定义基础架构资源。Terraform 还可让您在异构环境中自动创建这些资源。

如需详细了解可帮助您自动预配和管理 Google Cloud 资源的 Terraform 核心功能,请参阅 Google Cloud的 Terraform 蓝图和模块

您可以使用 AnsiblePuppetChef 等配置管理工具来建立通用部署和配置流程。或者,您可以使用类似 Packer 这样的映像定义工具来创建适用于不同平台的虚拟机映像。通过使用单个共享配置文件,您可以使用 Packer 和 Cloud Build 创建用于 Compute Engine 的虚拟机映像。最后,您可以使用 Prometheus 和 Grafana 等解决方案来帮助确保跨环境监控的一致性。

基于这些工具,您可以汇编一个通用工具链,如下图所示。这种通用工具链可抽象出计算环境之间的差异。它还可让您统一预配、部署、管理和监控。

工具链可实现应用的可移植性。

虽然常见的工具链可以帮助您实现可移植性,但它有以下几个缺点:

  • 使用虚拟机作为通用基础很难实现真正的云优先应用。此外,仅使用虚拟机会使您无法使用云托管服务。您可能会错失减少管理开销的机会。
  • 构建和维护通用工具链会产生管理费用和运营成本。
  • 随着工具链的扩展,它可能会根据您公司的特定需求而变得非常复杂。这种复杂性的增加可能会导致训练成本上升。

在决定开发工具和自动化功能之前,请先了解云提供商提供的托管服务。如果您的提供商提供支持相同使用情形的托管服务,您可以抽象出其中的一些复杂性。这样一来,您就可以专注于工作负载和应用架构,而不是底层基础设施。

例如,您可以使用 Kubernetes 资源模型,通过声明式配置方法自动创建 Kubernetes 集群。您可以使用 Deployment Manager 转换将 Deployment Manager 配置和模板转换为 Google Cloud 支持的其他声明性配置格式(例如 Terraform 和 Kubernetes 资源模型),以便在发布时可移植。

您还可以考虑自动创建项目以及在这些项目中创建资源。这种自动化可帮助您采用基础架构即代码方法进行项目预配。

容器和 Kubernetes

使用云管理功能有助于降低构建和维护自定义工具链的复杂性,从而实现工作负载自动化和可移植性。不过,仅使用虚拟机作为通用基础很难实现真正的云优先应用。一种解决方案是改用容器和 Kubernetes。

当您将软件从一个环境移动到另一个环境时,容器可帮助您的软件可靠地运行。由于容器将应用与底层主机基础架构分离,因此有助于在混合云和多云等计算环境中进行部署。

Kubernetes 负责处理容器化应用的编排、部署、伸缩和管理。它是开源的,由 Cloud Native Computing Foundation 管理。使用 Kubernetes 可提供构成云优先应用的基础的服务。因为您可以在许多计算环境中安装和运行 Kubernetes,所以您还可以使用它在跨计算环境中建立通用运行时层:

  • Kubernetes 在云或私有计算环境中提供相同的服务和 API。此外,使用 Kubernetes 的抽象级别远高于使用虚拟机时的抽象级别,这通常会转化为较少的基础工作并提高开发者的工作效率。
  • 与自定义工具链不同,Kubernetes 被广泛用于开发和应用管理,因此您可以利用现有的专业知识、文档和第三方支持。
  • Kubernetes 支持以下所有容器实现:

当工作负载在 Google Cloud上运行时,您可以使用 Google Kubernetes Engine (GKE) 等托管式 Kubernetes 平台,从而避免安装和运行 Kubernetes 的工作。这样做有助于运维人员将注意力从构建和维护基础架构转移到构建和维护应用。

您还可以使用 Autopilot,这是一种 GKE 运维模式,可管理集群配置,包括节点、伸缩、安全性和其他预配置设置。使用 GKE Autopilot 时,请考虑伸缩要求及其伸缩限制

从技术上讲,您可以在许多计算环境中安装和运行 Kubernetes,以建立通用运行时层。不过,实际上,构建和运行此类架构可能会带来复杂性。如果您需要容器级安全控制(服务网格),架构会变得更加复杂。

为了简化多集群部署的管理,您可以使用 GKE Enterprise 在任何位置大规模运行现代应用。GKE 包含强大的受管开源组件,可用于保护工作负载、强制执行合规性政策,并提供深入的网络可观测性和问题排查功能。

如下图所示,使用 GKE Enterprise 意味着您可以将多集群应用作为舰队运行

堆栈图,展示了 GKE Enterprise 提供的舰队管理机会。

GKE Enterprise 提供以下设计选项,以支持混合和多云架构:

  • 在本地设计和构建类云体验,或构建统一的解决方案,以便将应用迁移到 GKE Enterprise 混合环境。如需了解详情,请参阅 GKE Enterprise 混合环境参考架构

  • 借助 GKE Multi-Cloud,您可以设计和构建解决方案,通过一致的治理、运营和安全状况来解决多云复杂性。如需了解详情,请参阅 GKE Multi-Cloud 文档。

GKE Enterprise 还提供类似环境的逻辑分组,这些环境具有一致的安全、配置和服务管理。 例如,GKE Enterprise 可支持零信任分布式架构。在零信任分布式架构中,部署在本地或其他云环境中的服务可以通过端到端 mTLS 安全服务间通信跨环境进行通信。

工作负载可移植性注意事项

Kubernetes 和 GKE Enterprise 为工作负载提供了一个抽象层,可以隐藏计算环境之间的许多复杂性和差异。以下列表介绍了其中一些抽象概念:

  • 应用可以通过最少的更改移植到不同的环境,但这并不意味着应用在两种环境中都能同样良好地运行。
    • 底层计算、基础设施安全功能或网络基础设施的差异以及与依赖服务的邻近性可能会导致性能大不相同。
  • 在计算环境之间移动工作负载可能还需要您移动数据。
    • 不同的环境可能具有不同的数据存储和管理服务及设施。
  • 通过 Kubernetes 或 GKE Enterprise 配置的负载平衡器的行为和性能在不同环境之间可能有所不同。

数据移动

由于在计算环境之间大规模移动、共享和访问数据可能很复杂,因此企业级公司可能会犹豫是否要构建混合云或多云架构。如果他们已经将大部分数据存储在本地或一个云平台中,这种犹豫可能会加剧。

不过, Google Cloud提供的各种数据迁移选项为企业提供了一整套解决方案,可帮助企业迁移、集成和转换数据。这些选项可帮助企业在不同环境中存储、共享和访问数据,以满足其特定使用场景的需求。这种能力最终将使业务和技术决策者能够更轻松地采用混合云和多云架构。

数据迁移是混合云和多云策略以及架构规划方面的一项重要考虑因素。您的团队需要确定不同的业务应用场景以及支持这些应用场景的数据。您还应考虑存储类型、容量、可访问性和迁移选项。

如果企业针对受监管行业进行了数据分类,则该分类有助于确定某些数据类别的存储位置和跨区域数据移动限制。如需了解详情,请参阅 Sensitive Data Protection。 Sensitive Data Protection 是一项全代管式服务,旨在帮助您发现、分类和保护数据资产。

如需了解从规划数据转移到使用最佳实践的完整流程,请参阅迁移到 Google Cloud:转移大型数据集

安全

随着组织采用混合云和多云架构,其攻击面可能会增加,具体取决于其系统和数据在不同环境中的分布方式。随着威胁形势的不断变化,攻击面不断扩大可能会导致未经授权的访问、数据丢失和其他安全事件的风险增加。在规划和实施混合云或多云策略时,请务必仔细考虑安全性。

如需了解详情,请参阅 Google Cloud的 Attack Surface Management

在设计混合架构时,将本地安全方法扩展到云端在技术上并不总是可行或可行的。不过,硬件设备的许多网络安全功能都是云优先功能,并且以分布式方式运行。如需详细了解 Google Cloud的云优先网络安全功能,请参阅云网络安全

混合云和多云架构可能会带来额外的安全挑战,例如一致性和可观测性。每家公有云服务提供商都有自己的安全方法,包括不同的模型、最佳实践、基础架构和应用安全功能、合规义务,甚至安全服务的名称。这些不一致可能会增加安全风险。此外,各云服务提供商的责任共担模型可能有所不同。在多云架构中,务必要明确划分责任范围。

可观测性对于从不同环境中获取数据洞见和指标至关重要。在多云架构中,每个云通常都会提供工具来监控安全状况和错误配置。不过,使用这些工具会导致可见性孤立,从而无法在整个环境中构建高级威胁情报。因此,安全团队必须在工具和信息中心之间切换,才能确保云安全。如果没有针对混合云和多云环境的全面端到端安全可见性,就很难确定漏洞的优先级并缓解漏洞。

为了全面了解所有环境的可见性和安全状况,请确定漏洞的优先级,并缓解您发现的漏洞。我们建议采用集中式可见性模型。集中式可视性模型无需手动关联不同平台的不同工具和信息中心。如需了解详情,请参阅混合云和多云环境的监控和日志记录模式

在规划如何缓解安全风险并在Google Cloud上部署工作负载时,为了帮助您规划和设计云解决方案以实现安全性和合规性目标,请探索 Google Cloud 安全最佳实践中心企业基础蓝图

合规性目标可能会有所不同,因为它们会受到行业特定法规以及不同区域和国家/地区的不同监管要求的双重影响。如需了解详情,请参阅 Google Cloud 合规性资源中心。 以下是构建安全混合云和多云架构的一些主要推荐方法:

  • 制定统一的定制化云安全策略和架构。混合云和多云安全策略应根据贵组织的具体需求和目标量身定制。

    在实施安全控制措施之前,务必要了解目标架构和环境,因为每种环境都可以使用不同的功能、配置和服务。

  • 考虑在混合云和多云环境中采用统一的安全架构。

  • 标准化云设计和部署,尤其是安全设计和功能。这样做可以提高效率,并实现统一的治理和工具。

  • 使用多项安全控制措施。

    通常,没有哪种单一的安全控制措施能够充分满足所有安全保护要求。因此,组织应采用分层防御方法(也称为深度防御),将多种安全控制措施结合使用。

  • 监控并持续改进安全状况:组织应监控其不同环境中的安全威胁和漏洞。它还应努力不断改善其安全状况。

  • 不妨考虑使用云安全状况管理 (CSPM) 来识别和修复安全配置错误以及网络安全威胁。CSPM 还可在混合云和多云环境中提供漏洞评估。

Security Command Center 是一款适用于 Google Cloud的内置安全和风险管理解决方案,可帮助识别错误配置和漏洞等问题。 Security Health Analytics 是一种代管式漏洞评估扫描工具。它是 Security Command Center 的一项功能,可识别Google Cloud 环境中的安全风险和漏洞,并提供有关如何修复这些风险和漏洞的建议。

借助 Mandiant Attack Surface Management for Google Cloud,您的组织可以更好地了解其多云或混合云环境资产。它可自动发现来自多个云提供商、DNS 和扩展的外部攻击面的资产,让您的企业更深入地了解其生态系统。您可以根据这些信息,优先修复风险最高的漏洞和暴露。

  • 云安全信息和事件管理 (SIEM) 解决方案:有助于收集和分析混合云和多云环境中的安全日志,以检测和应对威胁。 Google Security Operations SIEM(由 Google Cloud 提供)可在一个位置收集、分析、检测和调查您的所有安全数据,从而帮助您实现安全信息和事件管理。