デプロイメントの概要
これらのトピックでは、Adobe Commerce バージョン 2.2 以降を使用する実稼動サイトにCommerce アプリケーションをデプロイするプロセスについて説明します。 Adobeでは、大規模なサイトを持ち、デプロイメント中のダウンタイムを望まないユーザーには、このデプロイメント方法をお勧めします。
Commerceを 1 台のマシンにデプロイし、デプロイメント中のダウンタイムが許容される場合は、 シングルマシンのデプロイメントを参照してください。
パイプラインデプロイメント
Commerce バージョン 2.2 では、Adobeは最小限のダウンタイムで実稼動環境にデプロイする新しい方法として パイプラインデプロイメント を導入しました。 このデプロイメントプロセスは異なるシステムで行われ、すべてのパイプラインデプロイメントシステムで一貫した設定を維持する手段を提供します。 これは、通常の構成設定を、システム固有の設定(ホストやポートなど)や重要な設定(名前やパスワードなど)から分離できる、シンプルで強力なモデルです。
パイプラインデプロイメントを使用するために、Adobeでは以下を行うことを前提としています。
- Adobe Commerceの設定オプションに関する優れた知識を持つ、経験豊富なシステムインテグレーター。
- 大規模なCommerce サイト(何千もの在庫管理単位(SKU))を管理していて、実稼動サイトのダウンタイムを最小限に抑えたい。
- PHP プログラミングに関する知識。
- ソース管理メソッドの使用経験があります。
- コードはソース管理リポジトリーにあります。 このガイドでは、Git ベースのリポジトリを使用していることを前提としています。
ダウンタイムの短縮
静的アセットをデプロイし、実稼動システムとは別のマシンでコードをコンパイルする場合は、ダウンタイムを最小限に抑えることができます。 実稼動システムのダウンタイムは、静的ファイルとコンパイル済みコードをサーバーに転送するのに必要な時間に制限されます。
デプロイメントシステム
デプロイメントに関連するシステムを説明するために、以下の用語を使用します。
-
開発システム - デベロッパーがコードをカスタマイズし、Commerce Marketplaceから拡張機能、テーマ、言語パッケージをインストールする作業を行うマシン。 さらに、開発システム上のすべての設定変更を行います。 多くの開発システムを用意できます。
-
システムを構築 – 静的アセットをデプロイし、実稼動システムのコードをコンパイルする 1 つのシステム。 これらのアセットは実稼動環境にないシステムで構築するので、実稼動システムのダウンタイムは最小限に抑えられます。
お使いのビルドシステムには、Commerceがインストールされている必要はありません。 必要なのはCommerce コードのみですが、データベース接続は不要です。 また、ビルドシステムを物理的に別のサーバーにする必要はありません。
-
ステージングシステム—オプション。 オプションで、ユーザー受け入れテスト(UAT)を含む、すべての統合コードの最終テストに使用するステージングシステムを設定できます。 実稼動システムをセットアップするのと同じ方法で、ステージングシステムをセットアップします。 ステージングがライブストアではなく、顧客からの注文を処理しないという事実を除き、実稼動環境と同じです。
-
実稼動システム - ライブストア。 ここで直接設定の変更を最小限に抑える必要があります。ただし、ステージングインスタンスでテストされていない変更は特にしないでください。 可能な場合は、ステージング/開発インスタンスでテストされた データパッチを使用して設定を変更します。
その他のデプロイメント方法
オプションで、次のような他のデプロイメント方法を使用できます。
設定の管理
Commerceでは、12 要素アプリケーションの設計における 要素 3 以降のモデリングで、各システムの設定をシステム自体に保存するようになりました。 (開発構成設定は開発システムに格納され、実稼働設定は実稼働システムに格納されます。)
システムの設定を同期する方法を次に示します。
-
共有設定 - システム固有でも機密でもない設定。
共有設定は、開発システムと実稼動システムで一貫性を持たせるための設定です。 開発環境(またはクラウドインフラストラクチャー上のAdobe Commerce integration)システムの管理者で、共有設定を指定します。
共有設定ファイル
app/etc/config.php
は、開発、ビルド、実稼動の各システム間で共有できるように、ソース管理に含める必要があります。 -
システム固有の設定 – 検索エンジンのホスト名やポートなど、システムによって異なる設定。
-
機密設定 – 個人を特定できる情報(PII)または API キーやパスワードなどの設定が公開されるので、ソース管理に すべきでない 設定です。
システム固有の設定ファイル
app/etc/env.php
は、ソース管理に含めたり、システム間で共有したりしないでください __。 代わりに、magento config:set
およびmagento:sensitive:set
コマンドを使用して実稼動システムのこれらの設定に値を指定します。
共有、システム固有、機密の設定で設定した設定オプションは、ほとんどの場合、管理者で編集できません。 これにより、すべてのシステムで設定の一貫性を維持できます。 (オプションで magento config:set
コマンドを使用できます。このコマンドには管理者で編集可能な設定を --lock
オプションを使用する必要はありません)。
各Commerce設定オプションには、一意の 設定パス があります。 設定オプションの値を設定するには、CLI コマンドまたは環境変数を使用して、特定のシステム上のその設定パスの値を設定します。