

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

# 在上实现微服务 AWS
<a name="microservices-on-aws"></a>

发布日期：**2023 年 7 月 31 日** ([文档历史记录](document-revisions.md))

 微服务提供了一种简化的软件开发方法，可加快部署、鼓励创新、增强可维护性并提高可扩展性。这种方法依赖于通过定义明确的小型松散耦合服务 APIs，这些服务由自主团队管理。采用微服务可以带来诸多好处，例如增强的可扩展性、弹性、灵活性和更快的开发周期。

 本白皮书探讨了三种流行的微服务模式：API 驱动、事件驱动和数据流。 我们概述了每种方法，概述了微服务的主要功能，解决了微服务开发中的挑战，并说明了 Amazon Web Services (AWS) 如何帮助应用程序团队克服这些障碍。

 考虑到数据存储、异步通信和服务发现等主题的复杂性，我们鼓励您在做出架构决策时权衡应用程序的特定需求和用例以及提供的指导。

## 简介
<a name="introduction"></a>

 [微服务](https://aws.amazon.com/microservices/)架构结合了来自各个领域的成功且久经考验的概念，例如：
+  敏捷软件开发 
+  面向服务的架构 
+  API 优先的设计 
+  连续Integration/Continuous Delivery (CI/CD） 

 通常，微服务会整合 T [welve-](https://12factor.net/) Factor 应用程序中的设计模式。

 虽然微服务具有许多好处，但评估用例的独特要求和相关成本至关重要。在某些情况下，整体架构或替代方法可能更合适。应 case-by-case根据规模、复杂性和具体用例等因素，在微服务还是单体之间做出决定。

 我们首先探索一种高度可扩展、容错的微服务架构（用户界面、微服务实现、数据存储），并演示如何使用容器技术构建该架构。 AWS 然后，我们建议 AWS 服务来实现典型的无服务器微服务架构，从而降低运营复杂性。

 无服务器的特点是以下原则：
+  无需配置或管理基础架构 
+  按消耗单位自动缩放 
+  “按价值付费” 计费模式 
+  内置可用性和容错能力 
+  事件驱动架构 (EDA) 

 最后，我们将研究整个系统并讨论微服务架构的跨服务方面，例如分布式监控、日志、跟踪、审计、数据一致性和异步通信。

 本文档重点介绍在中运行的工作负载 AWS Cloud，不包括混合场景和迁移策略。 有关迁移策略的信息，请参阅[容器迁移方法白皮书](https://d1.awsstatic.com/whitepapers/container-migration-methodology.pdf)。

## 您使用 Well-Architected 了吗？
<a name="are-you-well-architected"></a>

 当您在云端构建系统时，[AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/) 可帮助您了解所做决策的利弊。利用此框架的六个支柱，您可以了解到设计和运行可靠、安全、高效、经济有效且可持续的系统的架构最佳实践。您可以使用[AWS 管理控制台](https://console.aws.amazon.com/wellarchitected)免费提供的 [AWS Well-Architected Tool](https://aws.amazon.com/well-architected-tool/)，回答与每个支柱相关的一组问题，即可根据这些最佳实践检查自己的工作负载。

 在[无服务器应用程序视角](https://docs.aws.amazon.com/wellarchitected/latest/serverless-applications-lens/welcome.html)中，我们重点介绍在上架构无服务器应用程序的最佳实践。 AWS

 有关云架构的更多专家指导和最佳实践（参考架构部署、图表和白皮书），请参阅 [AWS 架构中心](https://aws.amazon.com/architecture/)。

## 向微服务进行现代化改造
<a name="modernizing-to-microservices"></a>

 微服务本质上是构成应用程序的小型、独立的单元。[从传统的整体结构过渡到微服务可以遵循多种策略。](https://docs.aws.amazon.com/prescriptive-guidance/latest/modernization-decomposing-monoliths/decomposing-patterns.html)

 这种过渡还会影响贵组织的运作方式：
+  它鼓励敏捷开发，即团队在快速周期内工作。
+  团队通常很小，有时被描述为*两支披萨队*，足够小，两个披萨可以养活整个团队。
+  从创建到部署和维护，团队对其服务承担全部责任。