本指南展示了如何实施一个准确、有弹性、无服务器且由事件驱动的薪资处理系统,该系统的设计符合一次性处理的要求和故障处理模式。如果您在向记录系统写入数据时有事务处理要求,您很可能已经使用了关系数据库系统的固有功能。然而,当您转向云中的异步模式时,您的架构师和开发人员所依赖的许多方法可能都无法使用。本指南通过提供事务模式(也称为“Saga”模式)来处理多步骤薪资处理工作流程中出现故障时的回滚和补偿操作,以此应对数据一致性方面的挑战。
请注意:[免责声明]
开始使用

Well-Architected 支柱

当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
事件驱动型系统本质上是异步的,使用可以独立扩展和失效的解耦微服务。本指南旨在处理计划内和计划外的事件。例如,EventBridge 和 API Gateway 可协助处理计划内活动的预定请求和计划外活动的一次性请求。此外,无服务器服务的使用使微服务能够随着业务的扩展而动态扩展。Amazon SQS、Lambda、DynamoDB 和 Step Functions(提供分布式映射和生命周期挂钩)可以在维持持久编排工作流程的同时进行扩展。该系统保持幂等性,允许重复处理相同的操作,而不会产生意外副作用。
-
安全性
本指南采用多层安全措施,在数据跨系统移动以及从公共资源移动到私有资源的过程中对其进行保护。它使用 TLS 加密网络流量,并且 API Gateway 会使用身份验证和授权服务来保护后端服务免受不可信来源的侵害。此外,Shield 还提供了 DDoS 防护,而 AWS WAF 则提供了条件访问策略,用于控制对受保护内容的访问。
-
可靠性
在分布式系统中,每项服务都可以根据可变的传入请求或事件独立扩展,但这可能会导致单项服务的流量不可预测,因为每个组件接受、完成和移交工作的速度都不同。本指南使用 Amazon SQS 对分布式系统中的服务进行解耦,并提供一个持久队列,用于缓冲下游服务的流量高峰,直到它们能够处理这些工作为止。DynamoDB 可与无服务器系统集成和同步扩展,并通过跟踪工作在分布式系统中的全程状态来提供系统幂等性。
-
性能效率
本指南使用无服务器服务,您无需手动预置服务器来处理峰值流量。Step Functions、Amazon SQS、Lambda、EventBridge 和 API Gateway 等无服务器技术可随请求量的变化而扩展(通常在几秒内),并可高效地进行纵向扩展和缩减,以保护您的解决方案免受资源预置不足或过剩的影响。
-
成本优化
Lambda、Amazon SQS 和 API Gateway 等无服务器技术使用按使用量付费的计费模式,它们会随着事件的变化弹性地纵向扩展和缩减资源。这消除了容量管理和修补的运营开销,并优化了资源分配,以与负载相匹配。EventBridge 和 Lambda 还支持事件驱动型架构,因此无需持续分配资源来轮询或跟踪在服务间传递的工作。此外,事件驱动型组件是松散耦合的,这提高了应用程序的灵活性和可扩展性,进而提高了开发人员的运营效率。
-
可持续性
Step Functions、Amazon SQS、Lambda、EventBridge、API Gateway 和 DynamoDB 会根据工作负载量动态地随请求扩展,以实现最优的资源预置。因此,您无需过度预置服务来满足峰值需求。在可独立扩展的松散耦合微服务的支持下,这种事件驱动型系统可以将资源分配给需要处理事件的特定服务。此外,AWS 美国东部和西部地区使用 100% 可再生能源为其计算资源供电。
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。