微服务是一种开发软件的架构和组织方法,其中软件由通过明确定义的 API 进行通信的小型独立服务组成。这些服务由各个小型独立团队负责。

微服务架构使应用程序更易于扩展和更快地开发,从而加速创新并缩短新功能的上市时间。

通过整体式架构,所有进程紧密耦合,并可作为单项服务运行。这意味着,如果应用程序的一个进程遇到需求峰值,则必须扩展整个架构。随着代码库的增长,添加或改进整体式应用程序的功能变得更加复杂。这种复杂性限制了试验的可行性,并使实施新概念变得困难。整体式架构增加了应用程序可用性的风险,因为许多依赖且紧密耦合的进程会扩大单个进程故障的影响。

使用微服务架构,将应用程序构建为独立的组件,并将每个应用程序进程作为一项服务运行。这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务是围绕业务功能构建的,每项服务执行一项功能。由于它们是独立运行的,因此可以针对各项服务进行更新、部署和扩展,以满足对应用程序特定功能的需求。

整体式与微服务

将整体式应用程序拆分为微服务

可以对微服务架构中的每个组件服务进行开发、部署、运营和扩展,而不影响其他服务的功能。这些服务不需要与其他服务共享任何代码或实施。各个组件之间的任何通信都是通过明确定义的 API 进行的。

每项服务都是针对一组功能而设计的,并专注于解决特定的问题。如果开发人员逐渐将更多代码增加到一项服务中并且这项服务变得复杂,那么可以将其拆分成多项更小的服务。

微服务促进若干小型独立团队形成一个组织,这些团队负责自己的服务。各团队在小型且易于理解的环境中行事,并且可以更独立、更快速地工作。这缩短了开发周期时间。您可以从组织的总吞吐量中显著获益。

通过微服务,您可以独立扩展各项服务以满足其支持的应用程序功能的需求。这使团队能够适当调整基础设施需求,准确衡量功能成本,并在服务需求激增时保持可用性。

微服务支持持续集成和持续交付,可以轻松尝试新想法,并可以在无法正常运行时回滚。由于故障成本较低,因此可以大胆试验,更轻松地更新代码,并缩短新功能的上市时间。

微服务架构不遵循“一刀切”的方法。团队可以自由选择最佳工具来解决他们的具体问题。因此,构建微服务的团队可以为每项作业选择最佳工具。

将软件划分为小型且明确定义的模块,让团队可以将功能用于多种目的。专为某项功能编写的服务可以用作另一项功能的构建块。这样应用程序就可以自行引导,因为开发人员可以创建新功能,而无需从头开始编写代码。

服务独立性增加了应用程序应对故障的弹性。在整体式架构中,如果一个组件出现故障,可能导致整个应用程序无法运行。通过微服务,应用程序可以通过降低功能而不导致整个应用程序崩溃来处理总体服务故障。


AWS 集成了支持任何应用程序架构的构建快,无论规模、负载或复杂程度如何。

微服务的处理能力。

Amazon EMR

Amazon Elastic Container Service

一种可高度扩展的高性能容器管理服务,支持 Docker 容器,可让您轻松地在 Amazon EC2 实例的托管集群上运行应用程序。
了解更多 »

现在,使用 Amazon ECS,Coursera 在资源隔离的环境中只需要几分钟而不是几个小时即可完成软件更改的部署。
了解更多 »

Amazon EMR

AWS Lambda

通过 AWS Lambda,无需预置或管理服务器即可运行代码。只需上传您的代码,Lambda 会管理运行和扩展高可用性代码所需的一切工作。
了解更多 »

Localytics 利用 AWS Lambda 构建微服务,允许其开发团队在没有中央支持的情况下构建自定义分析。 了解更多 »


可扩展、持久且安全的数据存储。    

Amazon ElastiCache

Amazon ElastiCache 允许您从快速的托管内存缓存中检索信息,而无需完全依赖于速度较慢的基于磁盘的数据库,从而提高了服务性能。了解更多 »

Amazon S3

Amazon S3 为开发人员和 IT 团队提供适用于所有数据(无论大小)的高度可靠、安全且可扩展的对象存储。 了解更多 »

Amazon DynamoDB

一项快速灵活且完全托管的 NoSQL 数据库服务,适合所有需要一致性且延迟低于 10 毫秒的任意规模的应用程序。 了解详情 »

Amazon RDS

在云中轻松设置、操作和扩展关系数据库。有六种常见的数据库引擎可供选择,其中包括 Oracle、Microsoft SQL Server、PostgreSQL、MySQL 和 MariaDB。 了解更多 »

Amazon Aurora

一种关系数据库引擎,既具有高端商用数据库的速度和可靠性,又具有开源数据库的简单性和成本效益。提供的吞吐量最高可为同一硬件上运行的标准 MySQL 的 5 倍。 了解更多 »

通过在 Amazon ECS 上为微服务构建 PaaS,将应用程序响应时间缩短 200%。 
了解更多 »


具有高吞吐量和亚毫秒级延迟的联网服务。

AWS Cloud Map

AWS Cloud Map 是一种针对所有云资源的服务发现功能。借助 Cloud Map,您可以为应用程序资源定义自定义名称,并维护这些动态变化资源的更新位置。

了解更多 »

AWS App Mesh

AWS App Mesh 使您可以轻松监控和控制运行于 AWS 上的微服务。App Mesh 标准化了微服务的通信方式,为您提供端到端的可见性,并有助于确保应用程序的高可用性。

了解更多 »

Application Load Balancer

Application Load Balancer 对应用程序层(第 7 级)的 HTTP 和 HTTPS 流量进行负载均衡,面向交付包括微服务和容器在内的现代应用程序架构,提供高级请求路由功能。

了解更多 »

网络负载均衡器

网络负载均衡器提供高性能负载均衡,在网络连接层(第 4 级)运行,并且允许您根据 IP 协议数据路由到微服务的连接。网络负载均衡器每秒可以处理数百万个请求,同时保持超低延迟。

了解更多 »

Amazon API Gateway

Amazon API Gateway 为 API 管理提供了一个综合平台。借助 Amazon API Gateway,您可以处理成千上万个并发 API 调用和流量管理、授权、访问控制、监控以及 API 版本管理。

了解更多 »

Amazon Route 53

Amazon Route 53 是一种具备高可用性和可扩展性的云域名系统 (DNS) Web 服务,可将请求有效连接到在 AWS 中运行的基础设施。它可用于微服务的 IP 运行状况检查和服务发现。

了解更多 »

将应用程序重新设计为在 AWS 上运行的微服务之后,Airtime 能够以更加快速可靠的方式为客户提供社交体验,而且不会产生任何延迟。 了解更多 »


发布和协调进程间通信。

Amazon Simple Notification Service (Amazon SNS)

Amazon SNS 是一种完全托管的发布/订阅消息收发服务,可轻松分离和扩展微服务、分布式系统和无服务器应用程序。
了解更多 »

Amazon Simple Queue Service (Amazon SQS)

Amazon SQS 是一种完全托管的消息队列服务,可让您轻松分离和扩展微服务、分布式系统和无服务器应用程序。
了解更多 »

Lyft 使用 AWS 快速发展公司并管理其指数级增长,利用 AWS 产品支持 100 多种微服务,从而增强客户体验的每个元素。 了解更多 »


监控服务性能和资源利用率。跟踪复杂的架构,以进行问题排查和优化。

AWS CloudTrail

借助 CloudTrail,您可以记录日志、持续监控并保留与整个基础设施中的操作相关的账户活动。CloudTrail 事件历史记录可以简化安全性分析、资源更改跟踪和问题排查工作。了解更多 »

Amazon CloudWatch

使用 Amazon CloudWatch 来收集和跟踪各项指标、收集和监控日志文件、设置警报,以及自动应对正在运行的服务和 AWS 资源中的更改。
了解更多 »

AWS X-Ray

可在请求通过应用程序时提供请求的端到端视图,并展示应用程序底层组件的映射。由于一组微服务协同工作才能处理请求,因此 AWS X-Ray 可以帮助您集中浏览日志,从而监控复杂的交互并对其进行故障排除。了解更多 »

通过使用 Amazon ECS 上托管的微服务,Shippable 得以专注于为其客户交付新功能,并加快了功能部署速度(从每周一次到每日多次)。 了解更多 »


管理从提交到运行的代码生命周期。

Amazon Elastic Container Registry (Amazon ECR)

一种完全托管的 Docker 容器注册表,可用于存储、管理和部署 Docker 容器映像。Amazon ECR 与 Amazon Elastic Container Service (Amazon ECS) 集成,从而简化容器生产工作流程的开发。 了解更多 »

AWS 开发人员工具

AWS 开发人员工具是一组服务,利用这些服务,模拟开发运营的开发人员和 IT 运维专业人员可以快速安全地交付软件。这些服务结合起来,可以帮助您安全地存储应用程序的源代码并对其进行版本控制,同时还可自动构建、测试应用程序并将其部署到 AWS 或您的本地环境中。了解更多 »

Gilt 将其本地数据中心迁移到 AWS 以利用基于云的微服务基础设施的速度和效率优势。
了解更多 »