跳到主要内容

部署架构

ESP RainMaker 基于无服务器架构,采用亚马逊云服务(AWS),确保了可扩展性、灵活性、数据所有权以及最小的维护开销。下图展示了 ESP RainMaker 的总体架构,突出了其组件及在云后台使用的主要 AWS 服务。

architecture of ESP RainMaker

详细信息请参阅云后端研发。


部署模型​

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

On this page