亚马逊云科技无服务器设计原则
主要内容与关键数据
-
分布式系统目标:
- 商业敏捷性
- 更快的反馈循环
- 组织扩展性
- 减少冲击范围
- 减少外部依赖
-
无服务器在分布式系统中的作用:
- 从繁重的工作中解放出来,专注于最大化业务价值的活动
- 是一种策略
-
无服务器产品组合(部分):
- AWS Lambda
- Amazon API Gateway
- Amazon SNS
- Amazon SQS
- AWS Step Functions
- Amazon Aurora Serverless
- Amazon S3
- Amazon DynamoDB
- AWS IAM
- AWS CloudFormation
-
无服务器的优势:
- 自动扩展
- 管理基础设施
- 降低总拥有成本(TCO)
- 安全性和隔离性设计
- 专注于业务价值
-
设计无服务器应用的关键原则:
- 模块化
- 强化封装
- 大量使用设计模式
- 解耦业务逻辑与环境
- 配置优先于代码
- 更多内置行为控制
-
设计工作负载示例:
- 业务需求:为电商平台生成礼品码,并在礼品码使用时通知客户支持团队、更新用户账户历史记录、必要时通知第三方公司
- 工作负载特性:关键路径99.99%可用性,其余系统99.9%可用性,跨上下文事件通信,用户面向API响应时间小于1秒,可扩展至每秒3000次请求并保留50%余量
- 高层面架构:CRM -> 用户账户 -> 礼品码服务 -> 第三方礼品码系统
- 实现细节:
- 同步API
- 快速用户确认
- 根据用户流量仅此部分需要扩展
- 使用DynamoDB Streams作为异步系统的粘合剂
通过上述内容可以看出,无服务器设计在构建高效、灵活的分布式系统时具有重要作用,尤其适用于注重业务价值和敏捷性的场景。