使用 Temporal Cloud 实现高可用性和灾难恢复

作者
Meagan Speare
日期
2024 年 3 月 27 日
时长
4 分钟

Temporal 使您的应用程序更可靠。但从运营角度来看,任何复杂的软件在规模上可靠运行都具有挑战性。 在本文中,我们将简要概述在规模上自托管 Temporal 的挑战,以及 Temporal Cloud 如何提供高可用性。 您可以 观看我们的关于此主题的网络研讨会录像,以获取更多详细信息。

自托管 Temporal 时维护高可用性的挑战#

实现 Temporal 高可用性的核心挑战在于 服务 由多个可独立扩展的组件组成。 您必须调整每个组件并维护其可用性

  • 一个数据库,通常是 Cassandra 或 Postgres,通常会分片并在多个可用区中以高可用方式部署。
  • 四个独立的组件构成了 Temporal Server。 这些服务必须得到适当的资源配置,以确保在服务请求的关键路径上没有瓶颈。
  • 与任何分布式系统一样,故障是不可避免的,并且了解如何在不同的故障条件下运行对于始终保持服务的稳定性和可用性至关重要。 一些故障相对容易处理(例如机器宕机),而另一些故障则比较微妙,需要仔细关注(例如网络分区)。

在较小规模下管理这些服务中的每一个都很简单。 但是,要在生产环境中大规模运行它们,您必须拥有大量的专业知识。 这并不是说这不可能。 许多开发人员成功地自托管 Temporal。 但他们可能难以满足高可用性 SLA,并且通常会花费大量时间和资源来运营 Temporal。 对于关键任务型应用程序和大规模用例,我们始终建议评估 Temporal Cloud

使用 Temporal Cloud 实现高可用性#

使用 Temporal Cloud,我们的团队提供 Temporal 即服务。 我们为您的负载正确调整支持数据库和服务,并确保它们具有高可用性。 由于我们的团队拥有深入的 Temporal 专业知识并管理着数千个命名空间,因此我们可以提供更好的服务可靠性、更高的可用性、更低的延迟,并且我们为意外事件保留了更多的资源缓冲。

作为 Temporal Cloud 的客户,您只需负责部署和管理您的 WorkerWorkflow,并将您的应用程序连接到您托管的 Temporal 服务。

以下是 Temporal Cloud 提供的可用性保证的详细信息

  • 容错性 - 默认情况下,Temporal Cloud 命名空间跨三个可用区部署,以实现容错性。 因此,任何可用区故障都不会对您的命名空间造成影响。
  • 99.99% 的服务级别目标 (SLO) - 作为一项服务,Temporal Cloud 定期提供四位数的可用性;换句话说,这就是端点的可用性。
  • 99.9% 的服务级别协议 (合同 SLA) - Temporal Cloud 合同 SLA 基于一个月内五分钟间隔的平均 gRPC 服务错误数。 从合同上讲,如果我们未能达到此目标,我们将根据停机时间退还云积分。

对于灾难恢复,Temporal Cloud 提供以下内容

  • 可用区故障的 RTO/RPO:由于 Temporal Cloud 在多个可用区中复制,因此可用区故障的 RTO/RPO 为零。
  • 区域故障的 RTO/RPO:RTO/RPO 最多为八小时,这是 Temporal Cloud 的两个备份周期。
  • 即将推出:多区域命名空间:目前处于 预发布 阶段,此功能将提供故障转移功能,以减轻由于区域故障引起的服务中断。 它还将将我们的合同 SLA 扩展到 99.99%。 使用多区域命名空间,您的云服务将由一个主云区域和一个待机云区域定义。 历史事件会自动异步地传输到待机区域。 在主区域发生故障时,您可以手动将流量切换到待机区域,而不会中断正在进行的 Workflow。 如果您的 Workflow 中断会导致收入损失、糟糕的最终用户体验或合规性问题,我们建议使用此功能。

这只是 Temporal Cloud 中高可用性主题的简要概述。 有关更多详细信息,我们建议观看网络研讨会

本文是关于 Temporal Cloud 的系列文章的一部分。请查看下面的其他文章

Temporal Cloud

准备好亲眼见证了吗?

今天注册 Temporal Cloud 并获得 1,000 美元的免费额度。

构建无懈可击的应用程序

听起来像魔法,我们保证不是。