Google Cloud 产品由特定的区域性故障网域提供,并受到服务等级协议的全面支持,以确保您在 Google Cloud 的结构中设计应用架构。
Google Cloud 基础架构服务目前可在北美洲、南美洲、欧洲、亚洲和澳洲的多个位置使用。这些位置分为区域和地区。您可以根据延迟时间、可用性和耐用性要求,选择要将您的应用部署在哪些位置。
区域和地区
区域是独立的地理位置,由多个地区组成。
地区是区域中用于部署 Google Cloud 资源的位置。地区应被视为区域中的一个故障网域。如需部署具备高可用性的容错应用以及防范意外故障,请跨区域中的多个地区部署您的应用。
为了防止因自然灾害导致整个区域服务中断,请制定一项灾难恢复计划,并了解如何在主要区域服务中断的情况下(这种情况不太可能发生)启动您的应用。如需了解详情,请参阅应用部署考虑因素。
如需详细了解每个位置选项中提供的特定资源,请参阅我们的 Cloud 位置。
Google Cloud 的服务和资源可以是地区性或区域性的,也可以由 Google 跨多个区域进行管理。如需详细了解这些方案对您数据的影响,请参阅数据的地理位置管理。
地区资源
地区资源在单个地区内运作。地区服务中断可能会影响该地区中的部分或全部资源。地区资源的一个示例是:位于特定地区内的 Compute Engine 虚拟机 (VM) 实例。
区域资源
区域资源是跨某个区域中的多个地区以冗余方式部署的资源,例如 App Engine 应用或区域性代管式实例组。因此,与地区资源相比,区域资源具有较高的可用性。
多区域资源
由 Google 管理的多项 Google Cloud 服务是分布在相同区域内和不同区域之间的冗余服务。这些服务有助于优化可用性、性能和资源效率。因此,这些服务需要在延迟时间或一致性模型间进行权衡。如需了解具体权衡,请参阅与特定产品相关的文档。
除了任何区域位置外,以下服务还具有一个或多个多区域位置:
- BigQuery
- Cloud Bigtable
- Cloud Data Loss Prevention
- Cloud Healthcare API
- Cloud Key Management Service
- Cloud Spanner
- Cloud Storage
- Datastore
- Firestore
这些多区域服务的设计初衷是为了能够在单个区域丢失后正常运行。
您可以在 Google Cloud 公共文档中找到对应于各区域和地区的每个产品的确切配置和选项。
全球均可运行的服务
Google Cloud 的设计初衷是为了支持全球的运营,持续全天候处理维护和升级工作,而无需您进行干预。我们的全球骨干可提供极大的灵活性以实现负载平衡,并通过靠近您进行互连来缩短最终用户延迟时间。我们的全球云管理平面简化了管理多区域开发的工作。
内部服务
为许多面向客户的 Google Cloud 服务提供支持是一组久经考验的内部服务,例如 Spanner、Colossus、Borg 和 Chubby。
这些内部服务可在多个区域间进行全局负载平衡,或者专用于其中提供了这些服务的每个可域。如果服务在多个区域之间实现负载平衡,我们将按区域逐步部署更新,这有助于检测并解决问题,而不会影响您的服务使用情况。这些内部服务都不限于单个逻辑数据中心或单个区域。
服务依赖项
一般来说,如果单个区域发生故障,则只有该区域中的资源会受到影响,多区域产品不会受影响。
所有 Google Cloud 服务都依靠核心内部工具来提供基本服务,例如网络(进出数据中心)、访问数据中心以及 Identity Authorization 系统。这些工具已区域化,如果其他区域发生故障,则其中一个区域不受影响。
Google Cloud 提供明确的指导,介绍如何通过公共文档在 Compute Engine、BigQuery、Pub/Sub 和其他服务中构建应用以实现所需级别的弹性。
维护和改善可用性和弹性
站点可靠性工程 (SRE) 是 Google 的内部组织,专注处理可用性、延迟时间、性能和容量。中断和服务不可用与新代码部署或环境更改有关。借助行业最佳做法,SRE 将平衡新软件的发布需求,还可保障环境的安全,因为了解这些必要更改或许会导致停机。
与客户合作构建弹性服务
如果您有重要的关键需求,并且需要设计架构以实现弹性和灾难恢复,我们的 SRE/CRE 和 PSO 团队将与您合作构建应用以桥接多个区域和地区,并可进一步帮助您设计高可用性 (HA) 系统。
如果您在特定日期(如黑色星期五/网购星期一)有更高的可用性要求,则 Google Cloud 会有意与您协作,让您能够检查并验证在 GCP 中运行的特定应用,并识别应用与服务之间任何意外的服务依赖项。
数据的地理位置管理
Google Cloud 服务的数据存储区域受服务条款(包括服务专用条款)的约束。Google 了解,每位客户可能都有独特的安全性和合规性需求。Google Cloud 销售团队可以帮助您满足您的要求。
使用区域或地区存储资源时,我们强烈建议您将数据复制到另一个区域,或截取数据快照并存储到一个多区域存储资源,以用于进行灾难恢复。
应用部署考虑因素
- 若想构建具备高可用性的服务和应用,以便能够应对地区不可用这一情况
使用以下资源:
- 若想构建具备灾难恢复能力的应用,以便能够应对整个区域长期丢失的情况
对于数据,请使用以下一种或多种策略:
- 使用代管式多区域存储服务,例如 Cloud Storage、Datastore、Firestore 或 Cloud Spanner。
- 使用地区资源或区域资源,但需要截取数据快照并存储到 Cloud Storage、Datastore、Firestore 或 Cloud Spanner 等多区域资源。
- 使用地区或区域资源,但需要将您自己的数据复制到一个或多个其他区域。
对于计算,请使用以下策略:
- 使用 Compute Engine 或 App Engine 等可用区资源或区域资源,但如果数据尚未包含在代管式多区域资源中,则当发生区域故障时,您需要在另一个引用主数据副本的区域中手动或自动启动您的应用。
如需详细了解服务依赖项,请与销售人员联系。
其他解决方案和教程
以下解决方案和教程介绍了如何确保您的应用具备高可用性并能够应对服务中断的情况:
构建可扩缩且弹性佳的应用时应遵循的模式
了解如何借助 Google Cloud,采用广泛适用于任何 Web 应用的模式和做法来构建可扩缩的弹性应用架构。
创建 HTTPS 负载平衡器
在不同区域中配置 Compute Engine 实例,同时使用 HTTP 负载平衡在不同区域之间分配流量,从而提高跨区域的可用性,并在服务中断时提供故障转移服务。
设计可靠的系统
在 Compute Engine 服务上设计稳健可靠的应用,使之能够抵御故障、网络中断和意外灾难。
使用 Cloud Storage 进行 Cassandra 备份和恢复
了解如何通过将数据备份到 Cloud Storage 并从 Cloud Storage 中恢复数据,为 Cassandra 安装添加基本灾难恢复能力。
灾难恢复规划指南
了解使用 Google Cloud 设计和测试灾难恢复计划的一般原则。