部署架构
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 和备份/恢复等功能。 用户可以根据安全性、身份管理和集成需求选择其中一种方式。