Managed Runtime 概述

Managed Runtime 提供部署、托管和监控 PWA Kit 网店的基础架构。

本指南介绍 Managed Runtime 的主要部分以及如何访问它。

在可以使用 Managed Runtime 前,您必须请求访问。请联系您的 Commerce Cloud 管理员并要求他们使用 Account Manager 将以下任一角色添加到您的帐户:Managed Runtime UserManaged Runtime Admin

环境是用于描述 Managed Runtime 托管的特定网店的所有云基础架构和配置值的术语。环境用于将您的生产环境 (Production) 网店与为其他目的(例如开发或测试)部署的网店分开。

Managed Runtime API 中,环境称为“目标”,但两个术语指的是同一事物。

由于环境在可自动扩展和缩减的高效微服务上运行,因此您可以根据需要创建任意数量的环境,而无需额外费用。例如,您可以创建一个短期环境,专门用于单个敏捷开发冲刺或该冲刺中的单个用户故事。当您不再需要某个环境时,我们建议您将其删除。

标记为生产的环境优先由 Salesforce 的支持团队监控。要将环境标记为生产环境 (Production),您有两种选择:

  1. 使用 Runtime Admin 工具。有关创建新环境或编辑现有环境的分步说明,请参见管理指南的环境部分。
  2. 使用 Managed Runtime API。projects_target_createprojects_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 16+。

在 App Server 上运行的代码可以访问以下环境变量:

  • DEPLOY_TARGET:环境的 ID。
  • EXTERNAL_DOMAIN_NAME:在环境中设置的域名。
  • MOBIFY_PROPERTY_ID:环境所属项目的 ID。

支持应用服务器的是几个边缘服务,包括:

  • 用于保护您的环境免受攻击的 Web 应用程序防火墙 (WAF)
  • 加速 API 请求的代理服务器
  • 用于缓存请求并加快页面加载的内容交付网络 (CDN)
  • 处理请求和处理重定向的边缘函数

我们的代理请求指南中详细介绍代理服务器和 CDN。我们的最大化缓存命中率指南中介绍称为请求处理器的边缘函数。

Managed Runtime 的边缘服务战略性地分布在我们的公共云基础架构中。每个服务都尽可能靠近用户,以获得更快的性能。

为了管理您的组织、项目、环境和捆绑包的设置,我们提供两种不同的工具:

  1. Managed Runtime Admin,基于 Web 的 UI。
  2. 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 UserManaged Runtime Admin