部署架构
ESP RainMaker 基于无服务器架构,采用亚马逊云服务(AWS),确保了可扩展性、灵活性、数据所有权以及最小的维护开销。下图展示了 ESP RainMaker 的总体架构,突出了其组件及在云后台使用的主要 AWS 服务。
详细信息请参阅云后端研发。
部署模型
ESP RainMaker 完全基于无服务器架构,使用 Lambda、DynamoDB 等服务,这些服务由 AWS 在区域内的多个可用区进行内部配置。
目 前,ESP RainMaker 针对每个 AWS 账号只能部署到一个区域,默认的部署模型为 SAM。
注意
我们仍支持使用 SAR 的部署升级,但所有新部署将仅使用 SAM。
SAM 部署模型
SAM 部署模型使用预定义和预配置模板,能够快速简便地在云上部署无服务器应用。
在部署 RainMaker 组件(作为更大无服务器应用的一部分)时,我们使用 SAM 包模板。这些模板是特殊文件,用于定义应用的结构,以及各个组件(如函数、数据库、API)在云端的协同工作方式。
SAM 模板通过提供简洁的应用描述,简化了部署过程。在后台,SAM 会自动将该模板转换为 CloudFormation (CF) 模板。CF 模板是 AWS 用来创建和管理云资源的实际指令。
必要组件
在部署私有 RainMaker 时,需要两个必要组件,分别由两个后台的 SAM 模板提供:
- ESP-RainMaker-Base
- 包含 DynamoDB、S3、基础 API 网关等。
- ESP-RainMaker-Core
- 包含 Lambda、API、SNS 等。
ESP RainMaker 的父级堆栈包含所有子模块堆栈,例如:
- 用户管理
- 节点管理
- 访问控制
- OTA 升级
启动父级堆栈的部署后,所有必要子模块堆栈将按顺序部署。
可选组件
父级 SAM 模板用于所有附加服务,用户可以选择要在其账号中部署的附加堆栈。
以下为可选的附加堆栈:
- ESP-Nested-AddOns
- ESP-TimeSeries
- ESP-RainMaker-Skills
提示
SAM 模板包括 Alexa 和 GVA 语音助手集成。
下一步骤将介绍更多关于账号设置以及仓库访问的信息。
术语
- SAM (无服务器应用模型) 模板
- 用于定义无服务器应用的配置文件,可处理复杂的 CloudFormation 语法,从而简化配置过程。参考链接
- SAR (无服务器应用库) (NRND)
- 托管库,支持开发者轻松发现、部署和共享无服务器应用,提供预构建的无服务器解决方案,从而简化应用部署。参考链接
- 资源
- 在 AWS 上创建和管理的组件或服务(例如 DynamoDB、S3、Lambda)。
- 堆栈
- 一组可以作为单个单位管理的 AWS 资源。创建、更新和删除堆栈需使用 CloudFormation 模板。
- 子模块堆栈
- 主堆栈中的较小堆栈,每个堆栈处理一个特定的功能或服务,例如用户管理、节点管理。
- 全球 RainMaker 与中国 RainMaker
- 中国 RainMaker 和全球 RainMaker 是 ESP RainMaker 平台的两个独立实例,前者为符合当地法规和基础设施的中国版,后者服务于国际用户。
- 标准 (Non-OAuth) RainMaker vs. OAuth-Only RainMaker
- ESP RainMaker 提供两种认证选项:标准 (Non-OAuth) 和 OAuth-only,用户可以按需选择其中一种。 标准 RainMaker 配置包括内置身份管理,支持基于电子邮件的登录、密码管理、多因素认证 (MFA)、多个身份提供者、用户迁移、管理工具、ESP Insights 和数据备份/恢复。 相比之下,OAuth-only RainMaker 依赖 OAuth 进行身份验证,支持单点登录 (SSO) 和与外部提供者(如谷歌和苹果)进行 OAuth 2.0 集成,但移除了电子邮件/密码登录、ESP Insights 和备份/恢复等功能。 用户可以根据安全性、身份管理和集成需求选择其中一种方式。