扩展的体系结构
云基础架构可根据您的资源需求进行扩展,以实现更高的效率。 云基础架构上的Adobe Commerce可监控您的应用程序,并可调整容量以保持稳定、可预测的性能。 转换为此架构有助于缓解问题,例如延迟或流量大量激增。
分层体系结构
过去,Pro体系结构由三个节点组成,每个节点包含一个完整的技术栈栈。 现在,有一个可扩展的基础架构,它提供了至少六个节点的分层体系结构:三个节点用于核心数据库和服务,三个节点用于Web服务器。 此分层体系结构提供独立扩展分层的功能,以实现性能的最佳平衡。
服务层
数据存储、缓存和服务有三个服务节点: OpenSearch 或 Elasticsearch、MariaDB、Redis 等等。 当服务层接近容量时,进行扩展的唯一方法是增加服务器大小,例如增加CPU功率和内存。 容量受限于可用节点的大小。 由于数据库群集是为高可用性而设计的,因此不能以可靠的方式横向扩展所使用的技术。
考虑一个示例,服务节点实例类型为 m5.2xlarge,RAM为32-Gb。 服务(如数据库)占用相当多的内存(30 Gb)。 扩展至下一个可用实例大小 m5.4xlarge 可提供64 Gb RAM,这可使内存增加一倍,并适应不断增长的数据库需求。
您可以根据节点类型路由流量,进一步优化服务层的性能。 缺省情况下,数据库节点与Web通信隔离。 例如,您可以选择在数据库节点上提供Web流量。
Web层
有三个Web节点用于处理请求和Web流量: php-fpm 和 NGINX。 除了通过增加功率和内存进行垂直扩展外,Web层还可以通过将Web服务器添加到现有群集来水平扩展(在PHP级别进行限制时)。 查看自动缩放以了解Web节点如何自动缩放。
这补充了服务层提供的垂直扩展。 随着服务层在规模和能力上扩展以适应不断增长的数据库和服务使用,Web层在规模、能力和实例上扩展以适应不断增长的流程请求和更高的流量要求。
考虑一个Web节点实例类型为 C5.2xlarge的示例,它有八个CPU和16-Gb RAM。 对网站的请求数量大幅增加。 可以添加C5.2xlarge节点来处理php-fpm进程中的增加,也可以将每个实例类型更改为 C5.4xlarge,具有16个CPU和32-Gb RAM。 添加节点可减少喘振容量不足的风险。
项目结构
最低限度,具有可扩展体系结构的Pro项目具有6个可用节点。
-
3个Web节点c5.2xlarge(8个CPU,16 Gb RAM)
-
3个服务节点m5.2xlarge(8个CPU,32 Gb RAM)
但是,每个项目都是独一无二的,需要进行性能监控才能正确分析资源管理。 每个帐户都包含New Relic服务,该服务会自动与应用程序数据和性能分析连接,以提供动态服务器监控。 具体来说,您可以使用New Relic服务来监控CPU和RAM利用率,以确定哪些节点需要其他资源。 当资源达到容量或您注意到基于分析的性能下降时,您可以创建请求来扩展基础架构以满足需求。
SSH访问
某些文件和日志(如/app/<project-id>/var/log
目录)未在节点之间共享。 每个节点都有唯一的SSH访问权限。 无法使用magento-cloud
CLI登录到服务或Web节点,但可以在Cloud Console的SSH访问列表中找到节点地址。
ssh <node>.<project-ID>-<environment>-<user-ID>@ssh.<region>.magento.com
-
node
1到3 — 用于访问服务节点的地址 -
node
4到 n — 用于访问Web节点的地址
登录到 服务节点 时的示例响应包括 统一 角色:
__ __ _ ___ _ _
| \/ |__ _ __ _ ___ _ _| |_ ___ / __| |___ _ _ __| |
| |\/| / _` / _` / -_) ' \ _/ _ \ | (__| / _ \ || / _` |
|_| |_\__,_\__, \___|_||_\__\___/ \___|_\___/\_,_\__,_|
|___/
Welcome to Magento Cloud.
This is server unique-server-id, role project-id:unified.
project-id@server-id:~$
登录到 Web节点 时的示例响应包括 Web 角色:
__ __ _ ___ _ _
| \/ |__ _ __ _ ___ _ _| |_ ___ / __| |___ _ _ __| |
| |\/| / _` / _` / -_) ' \ _/ _ \ | (__| / _ \ || / _` |
|_| |_\__,_\__, \___|_||_\__\___/ \___|_\___/\_,_\__,_|
|___/
Welcome to Magento Cloud.
This is server unique-server-id, role project-id:web.
project-id@server-id:~$
日志位置
日志位置会因节点而略有不同。 例如,数据库日志,如 MySQL错误日志,在服务节点(/var/log/mysql/mysql-error.log
)上可用,但在Web节点上不可用。
每个Pro帐户都包含New Relic日志服务,该服务会自动与来自应用程序的日志数据连接以提供动态日志管理。 来自所有节点的聚合日志数据将显示在New Relic日志应用程序中,以便您可以从单个功能板排除特定节点的性能问题。