Managed Runtime 概述
Managed Runtime 提供部署、托管和监控 PWA Kit 网店的基础架构。
本指南介绍 Managed Runtime 的主要部分以及如何访问它。
在可以使用 Managed Runtime 前,您必须请求访问。请联系您的 Commerce Cloud 管理员并要求他们使用 Account Manager 将以下任一角色添加到您的帐户:Managed Runtime User
或 Managed Runtime Admin
。
环境是用于描述 Managed Runtime 托管的特定网店的所有云基础架构和配置值的术语。环境用于将您的生产环境 (Production) 网店与为其他目的(例如开发或测试)部署的网店分开。
在 Managed Runtime API 中,环境称为“目标”,但两个术语指的是同一事物。
由于环境在可自动扩展和缩减的高效微服务上运行,因此您可以根据需要创建任意数量的环境,而无需额外费用。例如,您可以创建一个短期环境,专门用于单个敏捷开发冲刺或该冲刺中的单个用户故事。当您不再需要某个环境时,我们建议您将其删除。
生产环境 (Production)
标记为生产的环境优先由 Salesforce 的支持团队监控。要将环境标记为生产环境 (Production),您有两种选择:
- 使用 Runtime Admin 工具。有关创建新环境或编辑现有环境的分步说明,请参见管理指南的环境部分。
- 使用 Managed Runtime API。projects_target_create 和 projects_target_partial_update 端点都具有
is_production
参数。要使用这些端点将环境标记为生产环境 (Production),请将is_production
设置为true
。
默认情况下,您最多可以将 10 个环境标记为生产环境 (Production)。要增加您的限度,请联系支持部门。
在环境中运行的网店代码称为捆绑包。使用 PWA Kit 中包含的开发人员工具生成一个捆绑包并将其推送到 Managed Runtime。
捆绑包是您的代码在特定时间点的快照。它是不可变的:创建捆绑包后,将无法更改。拥有完整且准确的捆绑包历史记录可以更轻松地排除部署故障。
推送捆绑包后,您可以使用 Runtime Admin(运行时管理员)或 Managed Runtime API 将该产品指定为“已部署”。每个项目可以有多个捆绑包,但每个环境只能有一个指定为已部署的捆绑包。您可以随时更改指定为已部署的捆绑包。有关更多信息,请参阅推送和部署捆绑包。
为了帮助您管理多个环境,每个环境也属于一个项目,每个项目都属于一个组织。一个组织可以包含多个网店的多个项目,每个项目可以包含多个环境。Managed Runtime 用户可以属于多个组织以分隔不同的工作流。
每个组织最多总计可以有 100 个环境和最多 10 个生产环境。如果您需要提高这些限度,请联系您的 Salesforce 支持代表。
组织在 Account Manager 中创建并在 Managed Runtime 中复制。组织中的会员资料由 Account Manager 中的会员资料设置确定。用户可以作为成员或管理员属于组织。成员只能与分配了项目角色的 Managed Runtime 中的项目进行交互。管理员可以与组织内的所有项目进行交互。
对于 Managed Runtime 项目,用户可以具有以下能力:
- **浏览:**在 Runtime Admin 中查看项目。
- **管理重定向:**管理项目的重定向。
- **部署:**部署新捆绑包或将部署恢复为旧捆绑包。
- **管理团队:**查看、添加、邀请、删除和编辑项目团队成员的角色。
每个用户均被分配项目角色,该角色决定他们拥有哪些能力。(一个用户只能有一个角色。)项目角色可以分配给组织内的任何用户。
下表显示了与每个角色相关的能力:
角色 | 浏览 | 管理重定向 | 部署 | 管理团队 |
---|---|---|---|---|
管理员 | 是 | 是 | 是 | 是 |
开发者 | 是 | 是 | 是 | 否 |
营销人员 | 是 | 是 | 否 | 否 |
只读 | 是 | 否 | 否 | 否 |
在每个 Managed Runtime 环境中,已发布捆绑包中的 React 应用程序在 Node.js 环境中运行。为了响应页面请求并渲染结果,我们在 PWA Kit 的渲染和路由系统的帮助下使用 Express 框架。我们称这种 React、节点和 Express 的组合为应用服务器。(尽管从技术上讲,应用服务器在“无服务器”技术上运行。)应用服务器经过优化,可在提供低计算成本、高可用性、快速渲染和大规模扩展能力的云基础架构上运行。
因为 PWA Kit 的渲染和路由系统处理本地开发环境和 Managed Runtime 环境之间的差异,所以您的代码在部署时以可预测的方式运行。这种可预测性鼓励开发团队更频繁地部署捆绑包,从而提高开发团队的生产力。
目前,应用服务器支持 Transport Layer Security (TLS) 版本 1.2 及更高版本。
所有网店捆绑包必须使用 Node 14.17+。
环境变量
在 App Server 上运行的代码可以访问以下环境变量:
DEPLOY_TARGET
:环境的 ID。EXTERNAL_DOMAIN_NAME
:在环境中设置的域名。MOBIFY_PROPERTY_ID
:环境所属项目的 ID。
支持应用服务器的是几个边缘服务,包括:
- 用于保护您的环境免受攻击的 Web 应用程序防火墙 (WAF)
- 加速 API 请求的代理服务器
- 用于缓存请求并加快页面加载的内容交付网络 (CDN)
- 处理请求和处理重定向的边缘函数
我们的代理请求指南中详细介绍代理服务器和 CDN。我们的最大化缓存命中率指南中介绍称为请求处理器的边缘函数。
Managed Runtime 的边缘服务战略性地分布在我们的公共云基础架构中。每个服务都尽可能靠近用户,以获得更快的性能。
为了管理您的组织、项目、环境和捆绑包的设置,我们提供两种不同的工具:
- Managed Runtime Admin,基于 Web 的 UI。
- Managed Runtime API,这是一种 REST API,提供与基于 Web 的工具相同的功能和一些附加功能。
将 Runtime Admin 工具用于日常任务,例如将新代码捆绑包部署到环境。在您需要编程控制时使用 API,例如自动创建作为持续集成脚本一部分的环境。
管理工具为您提供了一种自助方式来配置许多设置,包括:
- 允许的 IP 地址
- 当前部署的捆绑包
- 部署区域
- 代理
- 重定向
- 用户权限
- 生产环境标记
某些设置要求您打开支持请求,包括:
- 静态 IP 地址(用于 VPN)
对管理工具的访问由 Account Manager 角色和 API 密钥控制。对于持续集成 (CI) 和持续交付 (CD) 流程,具有自己 API 密钥的专用机器人用户通常由您的组织设置。
有趣的事实:与您的网店一样,Runtime Admin 工具是部署到 Managed Runtime 的无标头 React 应用程序。
在构建网店时,请牢记 Managed Runtime 环境的以下限制条件:
- 路径
/
仅接受 HTTP GET 请求。 - 请求和响应大小不能超过 6 MB。
- 不支持
Set-Cookie
标头。 - App Server 请求执行时间限制为 20 秒。
- 未处理的承诺拒绝会破坏应用程序渲染。
- 您可以使用 HTTP 请求标头绕过 CDN 缓存:
x-mobify-cachebreaker: 1
现在您已经了解了 Managed Runtime 的主要部分,是时候动手实践了!推送并部署捆绑包指南就是很好的起点。
在可以使用 Managed Runtime 前,您必须请求访问。请联系您的 Commerce Cloud 管理员并要求他们使用 Account Manager 将以下任一角色添加到您的帐户:Managed Runtime User
或 Managed Runtime Admin
。