Google Cloud 部署原型指南的这一部分在可用性、可靠性与服务中断性、费用和操作复杂性方面比较了部署原型。
下表总结了基本部署原型的比较分析:可用区级、区域级、多区域和全球。对于 Hybrid 和多云端拓扑,用于 Google Cloud 拓扑的部署原型会影响可用性、稳健性以及服务中断、费用操作复杂性。
设计注意事项 | 可用区级 | 单区域 | 多区域级 | Global |
---|---|---|---|---|
基础架构可用性 | 99.9%(3 个 9) | 99.99%(4 个 9) | 99.999%(5 个 9) | 99.999%(5 个 9) |
针对可用区服务中断的基础架构稳健性 | 数小时或数天的 RTO | 如果复制是同步的,则 RTO 接近于零 | 如果复制是同步的,则 RTO 接近于零 | 如果复制是同步的,则 RTO 接近于零 |
基础架构针对区域服务中断的稳健性 | 数小时或数天的 RTO | 数小时或数天的 RTO | 如果复制是同步的,则 RTO 接近于零 | 如果复制是同步的,则 RTO 接近于零 |
Google Cloud 资源的费用 | 低 | 中 | 高 | 中 |
操作复杂性 | 比其他部署原型更简单 | 比可用区级复杂 | 比区域级复杂 | 可能比多区域简单 |
以下部分总结了上表汇总的比较分析。
基础架构可用性
以下部分介绍了部署原型在基础架构可用性方面的差异。
可用区级、区域级、多区域和全球部署原型
使用可用区级部署原型时,Google Cloud 基础架构可支持工作负载的以下目标可用性:99.9%;对于区域级部署,支持 99.99%;对于多区域和全球部署,支持 99.999%。这些可用性数字是平台级基础架构的目标。
除了部署原型之外,部署在 Google Cloud 中的应用所期望的可用性还取决于以下因素:
- 应用的设计
- 应用堆栈中的相互依赖层层数
- 使用的 Google Cloud 服务的正常运行时间服务等级协议 (SLA)
- 冗余资源量
- 资源的位置范围
如需了解详情,请参阅 Google Cloud 中的可靠性组件。
混合和多云部署原型
对于混合或多云端拓扑,总体可用性取决于每个环境中的基础架构以及环境之间的相互依赖关系。
- 如果 Google Cloud 中的组件与 Google Cloud 外部的组件之间存在关键的相互依赖性,则总体可用性低于所有环境中可用性最低的组件的可用性。
- 如果应用的每个组件都以冗余方式跨 Google Cloud 和本地或其他云平台进行部署,则冗余可确保高可用性。
针对可用区和区域服务中断的基础架构稳健性
以下部分介绍了部署原型在 Google Cloud 可用区和区域服务中断时继续支持工作负载的能力方面的差异。
可用区级部署原型
使用基本单可用区部署原型的架构无法抵御可用区服务中断。您必须根据恢复点目标 (RPO) 和恢复时间目标 (RTO) 计划从可用区服务中断恢复。例如,您可以在另一个(故障切换)可用区中维护被动或缩减的基础架构副本。如果主要可用区发生服务中断,您可以将故障转移可用区中的数据库提升为主数据库,并更新负载均衡器以将流量发送到故障切换可用区中的前端。
区域级部署原型
使用区域级部署原型的架构可防范可用区服务中断。一个可用区中的故障不太可能影响其他可用区中的基础架构。如果同步复制数据,则 RTO 接近为零。但是,如果服务中断影响了整个 Google Cloud 区域,则应用将变得不可用。根据应用的 RPO 和 RTO 计划,从服务中断中恢复。例如,您可以在其他区域预配基础架构的被动副本,并在区域服务中断期间激活副本。
多区域和全球部署原型
使用多区域或全球部署原型的架构可防范可用区和区域服务中断。如果同步复制数据,则 RTO 接近为零。应用作为全球分布式位置未知堆栈运行的架构,可防范最高级别的区域服务中断。
混合和多云部署原型
混合和多云架构的稳健性取决于每个环境(Google Cloud、本地环境和其他云平台)的稳健性以及环境之间的相互依赖关系。
例如,如果应用的每个组件在 Google Cloud 和其他环境(本地或其他云平台)上以冗余方式运行,那么应用将可靠防范任何 Google Cloud 服务中断。如果 Google Cloud 中的组件与在本地或其他云平台上部署的组件之间存在关键的相互依赖性,则针对 Google Cloud 服务中断的稳健性取决于您用于架构的 Google Cloud 部分的部署原型的稳健性。
Google Cloud 资源的费用
应用所需的 Google Cloud 资源费用取决于您使用的 Google Cloud 服务、您预配的资源数量、您保留或使用资源的时间段,以及您选择的部署原型。如需根据任何部署原型来估算架构中的 Google Cloud 资源费用,您可以使用 Google Cloud 价格计算器。
以下部分介绍了各种部署原型之间 Google Cloud 资源的费用差异。
可用区与区域级和多区域部署原型
与使用可用区级部署原型的架构相比,使用多区域部署原型的架构可能会产生额外的冗余费用。此外,对于跨区域边界的任何网络流量,您需要考虑跨区域数据传输费用。
全球部署原型
使用此原型,您可以使用高可用性的全球资源,例如全局负载均衡器。设置和操作云资源的费用可能低于预配和配置多个区域级资源实例的多区域部署。但在某些情况下,全球性资源可能会产生更高的费用。例如,全局负载均衡器需要高级层级网络,但对于区域级负载均衡器,您可以选择标准层级。
混合和多云部署原型
在混合或多云部署架构中,您需要考虑额外费用和所预配的资源的费用。例如,请考虑混合或跨云网络等费用,以及跨多个环境监控和管理资源的费用。
所有部署原型的注意事项
评估云工作负载的运行费用时,您需要考虑额外的费用以及您预配的 Google Cloud 资源的费用。例如,请考虑人员费用以及设计、构建和维护云部署的开销费用。
如需比较各种部署原型中的 Google Cloud 资源的费用,还要考虑应用执行的每工作单元的费用。识别反映应用业务推动因素的工作单元,例如应用处理的用户数或处理的请求数。
通过仔细管理 Google Cloud 资源的利用率并采用 Google 推荐的最佳做法,您可以优化云部署的费用。如需了解详情,请参阅 Google Cloud 架构框架:费用优化。
操作复杂性
以下部分介绍了部署原型之间操作复杂性的差异,具体取决于原型所需的基础架构资源、功能和应用堆栈的数量。
可用区与区域级和多区域部署原型
与其他部署架构相比,基于可用区部署原型的架构更易于设置和操作。在多个可用区或区域中以冗余方式运行的应用需要更多的操作工作量,原因如下:
- 必须在多个堆栈同时监控多个位置的应用堆栈的状态,以及应用的每个组件。
- 如果某个组件在任何位置都不可用,则必须正常处理进程内请求。
- 必须谨慎发布应用更改。
- 数据库必须在所有位置同步。
全球部署原型
通过全球部署原型,您可以使用高可用性全球性资源,例如全局负载均衡器和全球数据库。设置和操作云资源的工作量可能低于需要管理区域级资源的多个实例的多区域部署。但是,您必须谨慎管理对全球性资源的更改。
操作使用全球部署原型的架构的工作量还取决于您是部署分布式位置未知型堆栈还是多个区域隔离的堆栈:
- 位置未知的分布式应用可以进行扩展和扩缩,从而实现更高的灵活性。例如,如果某些组件仅在特定位置具有关键的最终用户延迟时间要求,则您可以在所需位置部署这些组件并在其他位置运行堆栈的其余部分。
- 由于以下因素,部署为多个区域隔离堆栈的应用需要更多的操作和维护:
- 必须在多个堆栈位置监控多个位置的应用堆栈的状态,以及每个组件的状态。
- 如果某个组件在任何位置都不可用,则必须正常处理进程内请求。
- 必须谨慎发布应用更改。
- 数据库必须在所有位置同步。
混合和多云部署原型
与仅使用 Google Cloud 的架构相比,混合或多云拓扑需要更多的设置和操作。
- 您必须在本地和 Google Cloud 拓扑中一致地管理资源。如需管理容器化混合应用,您可以使用 GKE Enterprise 等解决方案,这是一种统一的云运维模型,可预配、更新和优化多个位置的 Kubernetes 集群。
- 您需要一种方法来跨多个平台高效预配和管理资源。Terraform 等工具可以帮助减少预配工作。
- 安全功能和工具并非跨云平台的标准。您的安全管理员需要获得技能和专业知识,以管理分布在您使用的所有云平台上的资源的安全性。