在上构建六角架构AWS - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在上构建六角架构AWS

Furkan Oruc、Dominik Goby、Darius Kunce 和 Michal Ploski,Amazon Web Services es (AWS)

2022 年 6 月文件历史记录

本指南描述了一种心理模型和一组用于开发软件架构的模式。随着产品采用率的提高,这些架构易于维护、扩展和扩展到整个组织。诸如 Amazon Web Services (AWS) 之类的云超大规模服务为小型和大型企业提供创新和创建新软件产品的基石。这些新服务和功能的快速引入使业务利益相关者期望他们的开发团队更快地对新的最低可行产品 (MVP) 进行原型设计,以便尽快对新想法进行测试和验证。通常,这些 MVP 会被采用并成为企业软件生态系统的一部分。在制作这些 MVP 的过程中,团队有时会放弃软件开发规则和最佳实践,例如 SOLID 原理和单元测试。他们认为这种方法将加快开发速度并缩短上市时间。但是,如果他们无法为各个级别的软件架构创建基础模型和框架,则为产品开发新功能将变得困难甚至不可能。在开发过程中,缺乏确定性和不断变化的要求也会减慢团队的速度。

本指南介绍了一种拟议的软件架构,从低级六边形架构到高级架构和组织分解,该架构使用域驱动设计 (DDD) 来应对这些挑战。随着新功能的开发,DDD 可帮助管理业务复杂性并扩大工程团队的规模。它通过使用无处不在的语言将业务和技术利益相关者与称为域名的业务问题联系起来。Hexagonal 架构是这种方法在非常特殊的领域(称为有界环境)中的技术推动力。有界上下文是业务问题中高度凝聚且松散耦合的子领域。我们建议您为所有企业软件项目采用六边形架构,无论其复杂程度如何。

Hexagonal Architecture 鼓励工程团队首先解决业务问题,而传统的分层架构则将工程重点从领域转移到首先解决技术问题上。此外,如果软件遵循六边形架构,则更容易采用测试驱动的开发方法,这减少了开发人员测试业务需求所需的反馈回路。最后,使用命令和命令处理程序是应用 SOLID 的单一责任和开放封闭原则的一种方式。遵循这些原则会生成一个代码库,参与项目的开发人员和架构师可以轻松浏览和理解,并降低对现有功能进行重大更改的风险。

本指南适用于有兴趣了解在软件开发项目中采用六角架构和 DDD 的好处的软件架构师和开发人员。它包括一个为您的应用程序设计支持六角架构的基础架构AWS的示例。有关实现示例,请参阅 AWS 规范指南网站上的 Python 项目在六边形架构中构建 Python 项目。AWS Lambda