
Temporal Technologies 这家公司开发了Temporal,这是一个专注于持久执行的开源微服务编排平台。该公司已经在亚马逊云科技市场上提供了Temporal Cloud。通过在亚马逊云科技上提供服务,该公司希望简化用于大规模应用程序的弹性分布式系统的开发工作。
在最近的一篇博客文章中,亚马逊云科技的高级合作伙伴解决方案架构师 Sai Kotagiri 和 Temporal 的工作人员解决方案架构师 Neil Dahlke 详细说明了 Temporal 平台与亚马逊云科技基础设施的结合,如何使组织能够构建出可以保持一致性,并在系统故障时自动恢复的容错应用程序。
文章讨论了分布式系统的固有挑战,特别是那些处理大量交易的企业所面临的挑战。它假设了一次高峰销售期间的电子商务网站中断作为例子。数据库故障、网络问题、API 超时和队列溢出等问题可能导致服务降级和数据不一致。作者认为,持久执行是一种确保交易完成不受中断影响的范式。这种方法会跟踪每个步骤的状态并允许从故障点恢复,这对于克服这些挑战来说是非常重要的。
在讨论持久执行的重要性时,Sewen,一位在 Hacker News 上讨论相关的持久执行引擎 Restate 的参与者解释道:
我们对持久执行的看法是,它不仅仅是用于长时运行的代码……持久执行对于任何有多个建立在彼此之上的步骤的事情都非常有帮助。只要你的服务与多个 API 交互、更新一些状态、保持锁或排队事件……几乎所有改变状态的后端逻辑最终都从持久执行基础中受益……问题是:我们能否使开销足够低,使系统足够轻量级,从而让它变得适合用于所有这些情况?这就是我们在这里试图构建的东西。
Temporal 的平台通过其SDK提供持久执行能力,允许应用程序在故障和分布式进程中保持状态。开发人员定义工作流来编排应用程序逻辑,并将它们分解为具有可配置重试策略的独立活动。然后,工作人员通过任务队列与 Temporal 服务器通信以执行这些工作流和活动。Temporal 服务管理这些工作流的执行和状态,部署选项包括在亚马逊云科技上自托管或使用 Temporal Cloud。

(来源:亚马逊云科技合作伙伴博客文章)
文章强调的一个关键优势是 Temporal 的事件驱动架构,它为每个工作流动作维护一个详细、不可变的事件历史。这与持久状态管理相结合,使 Temporal 能够通过检测问题、评估当前状态、审查事件历史并从最后一个有效点恢复执行来从故障中系统性地恢复。该平台保证了精确一次执行语义,确保即使在中断期间也能保持数据完整性。
正如 Reddit 帖子上的一位回应者所指出的:
是的,我使用过 Temporal.io。如果你需要管理可靠复杂的长时运行工作流,它是一个坚固的框架。与 AWS Step Functions 不同,它开箱即用地处理重试、状态持久性和故障恢复,而不需要你编写大量自定义代码。
文章还强调了在亚马逊云科技服务,如 Amazon Elastic Kubernetes Service(Amazon EKS)和 Amazon Elastic Container Service(Amazon ECS)上以容器化环境运行 Temporal Workers 时的效率提升。这种方法根据实时需求自动扩展处理能力,确保即使在高峰负载期间也保持一致的性能。

(来源:亚马逊云科技合作伙伴博客文章)
Temporal 和亚马逊云科技之间的集成还扩展到了安全性和运营卓越层面。AWS Certificate Manager 处理 mTLS 证书管理以实现安全通信,而 AWS PrivateLink 提供客户 VPC 和 Temporal Cloud 之间的私有连接。Amazon Kinesis 集成简化了实时审计日志记录,以增强运营可见性。客户可以在 Amazon EC2 实例或 ECS 或 EKS 上的容器化环境中部署基于 Temporal 的应用程序,利用 AWS 的可扩展性和资源利用。
博客文章总结说,通过结合 Temporal 的持久执行能力和亚马逊云科技的全面基础设施和管理服务,组织可以专注于业务逻辑而不是管理基础设施故障的复杂性,最终改善开发体验和减少运营开销。
最后,Learn Temporal上有示例和教程。
原文链接:
Temporal on AWS Aims to Ease Building Resilient Distributed Systems
评论