Coursera 笔记

Module 03 · Serverless Overview

Serverless Reference Architecture and Use Cases无服务器参考架构与用例

Coursera ↗

Serverless Web 应用参考架构

Web 应用程序参考架构 是一个通用的、事件驱动的后端,它利用一系列 AWS 服务实现其业务逻辑和基础设施。

To Do App 架构组件

该架构以一个简单的 To Do 应用程序为例,该应用程序允许注册用户进行创建(Create)、读取(Read)、更新(Update)和删除(Delete)待办事项。

该 Web 应用程序主要由以下 3 个组件构成 :

组件 作用 使用的 AWS 服务
前端应用(Front-end) 包含所有静态内容,如 HTML、CSS、JavaScript 和图像。当用户连接到网站时,资源被下载并在浏览器中运行。 AWS Amplify Console (用于托管静态内容)
后端应用(Back-end) 实现实际的业务逻辑。 AWS Lambda (托管业务逻辑)
数据存储 存储待办事项数据。 Amazon DynamoDB(NoSQL 数据库)
用户注册与认证 允许用户注册并进行身份验证,以确保用户只能访问自己的待办事项。 Amazon Cognito User Pools(用户管理)
API 访问 前端通过 REST API 调用与后端通信。 Amazon API Gateway(REST API 访问 Lambda)

架构工作流

  1. 用户通过浏览器访问托管在 AWS Amplify Console 上的前端。
  2. 前端需要与后端通信时,会向 API Gateway 发出 REST API 调用。
  3. API Gateway 将请求路由到相应的 Lambda 函数。
  4. Lambda 函数执行业务逻辑,并与 DynamoDB 交互来存储或检索数据。
  5. Cognito User Pools 负责确保用户经过注册和认证,且只能访问自己的数据。

Serverless 的其他用例

Serverless 架构广泛应用于多种场景,尤其擅长处理事件驱动和后处理任务。

1. 事件流 (Event Streaming)

  • 定义: 这些应用程序可以在无需预先设置基础设施的情况下编写和部署。
  • 触发: 可由发布者/订阅者主题或事件日志触发。
  • 优势: 提供弹性、可伸缩的事件管道,无需维护复杂的集群。
  • 应用场景:
    • 为分析系统提供数据。
    • 更新二级数据存储和缓存。
    • 为监控系统提供数据流。

2. 后处理 (Post-processing)

  • 定义: 在主要操作完成后执行的额外处理。
  • 示例:
    • 图像和视频处理: 动态调整图像大小或更改视频转码以适应不同的目标设备。
    • AI/机器学习: 用于图像识别或人工智能目的,例如检测护照照片上是否有阴影。

3. 多语言应用 (Multi-language)

  • 优势: Serverless 应用程序可以是多语言的,这可以防止团队陷入语言锁定(language lock-in)——即团队被迫无限期地使用与其遗留软件相同的语言。
  • 资源分配优化: 它使得语言的选择可以真正根据项目需求来决定,而不是取决于现有资源的可用性。

总结

  • Web 应用参考架构是一个事件驱动的后端,使用了 AWS Lambda, Amazon API Gateway, Amazon DynamoDB, Amazon Cognito 和 Amazon Amplify Console。
  • 该 Web 应用程序由 前端、后端和用户注册/认证这 3 个主要组件组成。
  • Serverless Web 应用程序的用例包括事件流、后处理和多语言应用。