部署概述
以下主题将讨论将Commerce应用程序部署到Adobe Commerce版本2.2及更高版本的生产站点的过程。 Adobe建议对拥有大型站点、不想在部署期间遇到停机时间的任何人使用此部署方法。
如果您在单个计算机上部署Commerce,并且可以在部署期间允许停机一段时间,请参阅单计算机部署。
管道部署
在Commerce版本2.2中,Adobe引入了 管道部署 作为在最短停机时间内部署到生产环境的新方法。 此部署过程发生在不同的系统中,并为所有管道部署系统提供了一种保持配置一致的方法。 它是一种简单但功能强大的模型,可让您将普通配置设置与特定于系统的设置(如主机和端口)或敏感设置(如名称和密码)分开。
要使用管道部署,Adobe假定您是:
- 经验丰富、对Adobe Commerce配置选项具有极佳了解的系统集成商。
- 管理大型Commerce站点(数千个库存单位(SKU)),并希望将生产站点的停机时间降至最低。
- 了解PHP编程。
- 具有源代码控制方法使用经验。
- 您的代码位于源代码控制存储库中。 在本指南中,我们假定您使用的是基于Git的存储库。
减少停机时间
当您将静态资产部署到与生产系统不同的计算机上并编译代码时,可将停机时间降至最低。 生产系统上的停机时间仅限于将静态文件和编译的代码传输到服务器所需的时间。
部署系统
我们使用以下术语来描述与部署有关的系统。
-
开发系统 — 开发人员用于自定义代码的计算机;并从Commerce Marketplace安装扩展、主题和语言包。 此外,您还可以在开发系统上更改所有配置。 您可以有许多开发系统。
-
生成系统 — 一个系统,可在其中部署静态资源并编译生产系统的代码。 由于您是在不在生产中使用的系统上构建这些资产,因此可将生产系统的停机时间降至最低。
您的生成系统上不必安装Commerce。 它只需要使用Commerce代码,而无需数据库连接。 此外,您的构建系统不需要是物理上独立的服务器。
-
暂存系统—可选。 您可以选择设置一个暂存系统,用于所有集成代码的最终测试,包括用户验收测试(UAT)。 使用与设置生产系统相同的方法设置暂存系统。 除了暂存不是您的实时商店并且不处理客户订单这一事实之外,它与生产环境完全相同。
-
生产系统 — 您的实时商店。 您应该在这里进行最小的直接配置更改,当然没有在暂存实例上测试过的任何内容。 如果可能,请使用已在暂存/开发实例上测试的数据修补程序进行配置更改。
其他部署方法
或者,您也可以使用其他部署方法,包括:
- 使用SCP或rsync安全复制
- 卡皮斯特拉诺
- Deployer工具
管理配置
在12因素应用程序设计🔗中的因素3之后进行建模,Commerce现在将每个系统的配置存储在系统本身。 (开发配置设置存储在开发系统中,生产设置存储在生产系统中。)
我们提供一种同步系统配置的方法:
-
共享配置 — 非特定于系统或不敏感的设置。
共享设置是您希望开发系统和生产系统一致的设置。 在开发(或Adobe Commerce on cloud infrastructure 集成)系统的管理员中设置共享配置。
共享配置文件
app/etc/config.php
应包含在源代码管理中,以便在开发、生成和生产系统之间共享。 -
特定于系统的配置 — 随系统而异的设置,如搜索引擎主机名和端口。
-
敏感配置 — 应 不 的设置处于源代码管理中,因为它们会公开个人身份信息(PII)或API密钥或密码等设置。
系统特定的配置文件
app/etc/env.php
应该 不 包含在源代码管理中或在系统之间共享。 请改用magento config:set
和magento:sensitive:set
命令为您的生产系统中的这些设置提供值。
大多数情况下,在共享、系统特定或敏感配置中设置的配置选项无法在Admin中进行编辑。 这有助于使您的设置在所有系统中保持一致。 (您可以选择使用不带--lock
选项的magento config:set
命令来配置可在管理员中编辑的设置。)
每个Commerce配置选项都有一个唯一的 配置路径。 要设置配置选项的值,可以使用CLI命令或环境变量在特定系统上设置该配置路径的值。