具有模式和最佳实践的 AWS 无服务器微服务

AWS Serverless Microservices with Patterns & Best Practices

使用 AWS Lambda、API Gateway、EventBridge、SQS、DynamoDB 和 CDK for IaC 的 AWS 事件驱动型无服务器微服务

 学习内容

  • AWS 事件驱动的无服务器微服务
  • AWS Lambda、AWS DynamoDB、AWS API Gateway、AWS EventBridge、AWS SQS 和 AWS CDK
  • 使用 AWS Lambda、API Gateway 的 REST API 和 CRUD 终端节点
  • 使用 AWS DynamoDB 实现数据持久性
  • 使用 AWS EventBridge 将微服务与事件分离
  • 使用 AWS SQS 进行跨服务通信的消息队列
  • 使用 AWS CloudFormation CDK 通过 IaC 进行云堆栈开发
  • 无服务器设计模式和最佳实践
  • 开发电子商务事件驱动的微服务应用程序
  • 使用 AWS Lambda、Api Gateway 和 DynamoDb 执行 CRUD 操作的 RESTful 微服务
  • 使用 Amazon EventBridge 在微服务之间进行事件驱动的异步通信
  • 使用 AWS CDK 进行无服务器电子商务应用程序基础设施开发
  • AWS API Gateway – 用于 Restful API 驱动的开发和同步事件源
  • AWS EventBridge -for- 微服务之间的事件驱动异步通信
  • AWS SQS -for- 使用队列异步分离微服务和处理事件
  • 将事件发布并创建到 Serverless Eventbus,即 AWS EventBridge
  • 为 AWS EventBridge 创建规则和目标定义
  • 微服务发送轮询请求并从 AWS SQS 队列获取事件。
  • 与 AWS Api Gateway 同步通信,用于将请求从客户端应用程序路由到下游微服务
  • 与 AWS Serverless Eventbus 进行异步通信,后者是用于应用事件驱动异步通信模式的 EventBridge
  • 事件源将通信轮询队列记录从 lambda 服务映射到 AWS SQS-Simple Queue Service for Decouple Microservice
  • DevOps 最佳实践使用 AWS CDK 开发基础设施即代码无服务器堆栈 – Cloud Development Kit
  • AWS 开发人员和 AWS 解决方案架构工作
  • 以实用的方式准备您的 AWS 认证
  • AWS Serverless + CDK Automation + 集成模式 = AWSome 微服务!

 要求

  •  云基础知识
  •  Javascript 基础

 描述

本课程来自一个实时的 GitHub aws-microservices 存储库,该存储库通过社区验证,具有 250+ 颗星和 100+ 个分支。

在本课程中,我们将学习 AWS 事件驱动的无服务器微服务,并使用

  •  AWS Lambda、

  •  AWS DynamoDB 和

  •  AWS API 网关,

  •  AWS EventBridge、

  • AWS SQS 代表简单队列服务,

  • AWS CDK 代表 Cloud Development Kit for IaC – 基础设施即代码工具和

  • 用于监控的 AWS CloudWatch。

本课程将是 100% 动手实践的,您将开发一个实际应用程序,其中包括:

  • REST API 和 CRUD 终端节点(AWS Lambda、API Gateway)

  • 使用 (AWS DynamoDB) 的数据持久性

  • 使用 (AWS EventBridge) 将微服务与事件分离

  • 使用 (AWS SQS) 进行跨服务通信的消息队列

  • 使用 IaC 进行云堆栈开发 (AWS CloudFormation CDK)

在课程结束时,您将学习如何按照微服务架构开发可靠且可扩展的无服务器应用程序。我们将使用 AWS Serverless 服务开发事件驱动的微服务,这些服务具有云、高可用性和高可扩展性的强大功能。当然,在开发电子商务事件驱动的微服务应用程序时,我们将遵循无服务器设计模式和最佳实践。

有几个微服务在产品、购物篮和订购微服务上实现了电子商务模块。我们将使用 AWS Lambda 服务作为微服务,并使用 lambda 函数的强大功能。这个微服务数据库将存储 NoSQL AWS DynamoDB 数据库。

此外,在设计用于同步和异步通信的无服务器微服务通信时,我们还遵循了通信模式和最佳实践,使用 AWS API Gateway、AWS EventBridge 作为 Eventbus 和 AWS SQS 作为队列服务。这意味着我们在设计架构时依赖于异步连接,这为我们提供了更加灵活和有弹性的应用程序。

 我们将使用

  • AWS API Gateway – 用于 Restful API 驱动的开发和同步事件源

  • AWS EventBridge -for- 微服务之间的事件驱动异步通信

  • AWS SQS -for- 使用队列异步分离微服务和处理事件

本课程提出了使用事件驱动模式和最佳实践的面向微服务的架构实施,以及 AWS Serverless 世界。因此,该项目将是完全无服务器组件的电子商务应用程序。

让我尝试一一介绍无服务器组件;

 API 网关

  • 这是我们微服务的入口点。

  • API Gateway 提供 Restful API 驱动的开发和同步事件源。

  • 同步命令是请求/响应。

  • API Gateway 是一个同步事件源,为 AWS Lambda 提供无服务器 API 代理。

  • API 网关重定向到内部微服务的 CRUD 请求。

执行 Product Lambda 微服务;

  • 通过 AWS API Gateway 使用 DynamoDB 表执行 CRUD 操作

  • 这将涵盖微服务架构中完全无服务器的产品表操作。

  • 同步请求将由 AWS API Gateway 管理,并将请求路由到执行 CRUD 操作的产品 Lambda 微服务。

  • 我们将使用 AWS 开发工具包编写 Lambda 函数,以便与其他 AWS 资源进行交互,例如,在产品案例中,我们将与 AWS Serverless DynamoDB 交互以执行所有 crud 操作。

执行的 Basket Lambda 微服务;

  • 使用 AWS API Gateway 和 DynamoDB 进行添加-删除同步篮子操作

  • 同样,同步请求将由 AWS API Gateway 管理,并将请求路由到执行 CRUD 操作的 Basket Lambda 微服务。

  • 我们将使用 AWS 开发工具包编写 Lambda 函数,以便与其他 AWS 资源进行交互。例如,在 Basket 案例中,我们与 AWS Serverless DynamoDB 交互以执行所有 crud 操作。

 而且,

  • Basket 微服务触发事件驱动的用例,即 Checkout Basket。

  • 结帐购物篮时,这会将事件发布并创建到无服务器事件总线,即 AWS EventBridge。

  • 因此,这种异步通信将由 Basket Lambda 微服务和 AWS EventBridge 保存,并由 AWS SQS 上的订购微服务使用。

 AWS 事件桥接

因此,异步通信由 AWS Serverless Eventbus 服务(即 AWS EventBridge)持有。

我们将从 Basket Lambda 微服务为 AWS EventBridge 创建规则和目标定义。

这意味着,在将结帐消息发布到 AWS EventBridge 时,我们将开发 Basket Lambda 微服务,并使用 AWS 开发工具包进行开发。

AWS SQS 和订购 Lambda 微服务

因此,在将 checkout 事件发布到 EventBridge 后,此事件将按 Ordering 部分使用。

将 EventBridge 发送到 AWS SQS 的事件,以获得 AWS 队列的强大功能。

之后,Ordering lambda 微服务将通过轮询使用此事件。

这意味着,在使用事件、订购 lambda 微服务、发送轮询请求和从 AWS 队列获取事件时,我们将在此处使用事件源映射通信类型。

在使用 AWS 队列中的事件后,Ordering lambda 微服务会通过在其 DynamoDB 表中创建订单记录来处理该事件。

订购 lambda 微服务通过使用 AWS 开发工具包开发 lambda 函数来执行所有这些操作。

我们有 3 种通信类型;

  1. 与 AWS API Gateway 同步通信,用于将请求从客户端应用程序路由到下游微服务

  2. 与 AWS Serverless Eventbus 进行异步通信,后者是用于应用事件驱动异步通信模式的 EventBridge。

  3. 最后,在将队列记录从 lambda 服务轮询到 AWS SQS-Simple Queue Service 时,我们有事件源映射通信,用于分离微服务和异步处理事件。

在本课程中,我们将遵循这些带有 Lambda 调用的微服务通信类型,并按照这些箭头开发我们的部分。

使用 AWS CDK 的 IaC Serverless Stacks – 云开发工具包

  • 在编写基础架构代码时,将遵循 DevOps 最佳实践。在整个项目中,我们将使用 AWS CDK – 云开发工具包开发基础设施即代码 Serverless Stacks。

  • 我们将使用 AWS CDK 进行 IaC 无服务器堆栈开发,我们将逐步开发和预置所有服务。

AWS 开发人员和 AWS 解决方案架构工作

本课程为您准备了真正的 AWS 开发人员和 AWS 解决方案架构工作,为您提供 3 位数的薪水。

因为我们将开发一个真实世界的无服务器应用程序,该应用程序已被世界上许多公司使用和开发。

使用实用方法准备您的 AWS 认证

  • AWS 认证开发人员助理

  • AWS 认证解决方案架构师助理

不要记住所有主题,通过动手感受和发展,通过这种方式弄脏你的手,你可以实现你的目标AWS工作。本课程将帮助您准备 AWS 开发人员和解决方案架构师助理认证,包括开发无服务器电子商务应用程序的理论和大部分实践方式。

AWS Serverless + CDK Automation + 集成模式 = AWSome!

这将是我们课程的宣言。我们将遵循这些宣言,在我们的课程和无服务器电子商务应用程序的每个地方。

集成模式,在开发无服务器电子商务应用程序时,我们将在课程中遵循队列切换、发布订阅和扇出设计模式。

在本课程结束时,您将学习如何使用无服务器模式和最佳实践设计和开发 AWS 事件驱动的微服务。

本课程将是 100% 动手实践,我们将一起逐步开发所有基础设施和微服务代码。

本课程适合谁:

  • 想要使用 AWS Serverless Services 开发实际项目的软件开发人员
  • 希望使用 AWS Serverless Services 开发实际项目的软件/解决方案架构师
  • 谁想要在 AWS Serverless Services 上开发和部署微服务
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。