在 AWS 上实施微服务
发布日期:2021 年 11 月 9 日(文档历史记录和贡献者)
摘要
微服务是一种用于软件开发的架构和组织方法,旨在加快部署周期、促进创新和所有权、提高软件应用程序的可维护性和可扩展性,以及通过使用敏捷方法(该方法可帮助团队独立工作)来扩大交付软件和服务的组织的规模。使用微服务方法时,软件由小型服务组成,这些服务通过明确定义且可独立部署的应用程序编程接口 (API) 进行通信。这些服务归小型自主团队所有。这种敏捷方法是成功扩大组织规模的关键。
当AWS客户构建微服务时已观察到三种常见模式:API 驱动、事件驱动和数据流。本白皮书介绍所有这三种方法、总结微服务的共同特性、讨论构建微服务的主要挑战,并描述产品团队如何使用 Amazon Web Services (AWS) 来克服这些挑战。
由于本白皮书中讨论的各种主题的性质(包括数据存储、异步通信和服务发现)相当复杂,因此,建议您在进行架构选择之前,除了考虑提供的指导之外,还考虑其应用程序的具体要求和使用场景。
介绍
微服务架构并不是一种全新的软件工程方法,而是各种经过验证的成功概念的组合,例如:
-
敏捷软件开发
-
面向服务的架构
-
API 优先设计
-
持续集成/持续交付 (CI/CD)
在许多情况下,微服务使用十二要素应用程序
本白皮书首先介绍高度可扩展且具有容错能力的微服务架构的不同方面(用户界面、微服务实施和数据存储),以及如何利用容器技术在AWS上构建该架构。然后,本白皮书建议使用相应的AWS服务来实施典型的无服务器微服务架构,以降低操作复杂性。
无服务器是指遵循以下原则的一种操作模型:
-
无需预置或管理基础设施
-
按消耗单位自动扩展
-
按价值付费计费模型
-
内置可用性和容错能力
最后,本白皮书介绍整个系统并讨论微服务架构的跨服务方面,如分布式监控和审计、数据一致性和异步通信。
本白皮书仅重点介绍在 AWS 云中运行的工作负载。它不包括混合方案或迁移策略。有关迁移的更多信息,请参阅容器迁移方法