1. コマースDevOps

Sitecore XCソフトウェアアーキテクチャ

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Experience Commerce (XC) ソリューションは、アーキテクチャ エンティティの組み合わせを使用して、設定、スケーラビリティ、拡張性を実現します。

Commerce Engineプラグインは、Commerce Engineポリシー、Commerce Engineの機能と動作の側面を制御するために設定できるCommerceプラグインの要素など、Sitecore XCソリューションのすべてのCommerce機能を提供します。

Sitecore XCは、JSONファイルで設定のポリシーを公開します。関連する環境ポリシーファイルを編集することで、構成を変更できます。

Sitecore XCは、Commerce Engineの動作を制御するすべてのポリシーと設定を、一元化されたCommerceポリシー ストアであるGlobalデータベースに保存します。ポリシーは、ブートストラップ・プロセスを使用してグローバル・データベースに保持されます。ポリシーは大量にキャッシュされ、デプロイ シナリオ以外で値が変更されることはめったにありません。

環境

Sitecore Experience Commerceは、environmentsの概念を使用して、さまざまなCommerce Engine設定を可能にします。Commerce Engineでは、環境は、Commerce Engineの動作方法と、Commerce Engineが操作するデータセットを決定するポリシーのコレクションを定義します。クライアントがCommerce Engineを呼び出すと、呼び出しヘッダー によってターゲット環境が指定され、Commerce Engineはその環境構成のコンテキストで要求に応答できます。

Commerce環境では、個別に構成可能なデータとサービス機能のプールを個別のCommerce Engine環境として実行できる柔軟性があり、呼び出し元のクライアントの要件に合わせて調整し、デプロイの要求に応じて拡張できます。1つのCommerce Engineサービス インスタンスで複数のCommerce環境を構成することも、同じサーバー上またはScaling Deploymentのサーバー間でCommerce Engineサービスの複数のインスタンスに環境を分散することもできます。

Commerce環境は、次のものを含むコアCommerceエンティティ クラス (Sitecore.Commerce.Core.CommerceEnvironment) です。

  • Commerce Engineの呼び出しに対するシステムの動作に影響を与えるポリシーのコレクション。

  • Commerceデータセットに対応するアーティファクト ストアID。

クライアントがCommerce Engineを呼び出すときは、呼び出しヘッダーにCommerce環境の名前を指定します。環境名により、Commerce Engineはクライアントが期待する動作とデータセットで応答できます。

The ArtifactStoreID property and the environment "Name" property in the Plugin.Habitat.CommerceAuthoring.json file.

独自の環境を作成し、必要に応じて構成をカスタマイズできます。

ブートス トラップ

ブートストラップは、デプロイメント中に作成されたディスク上のJSONファイルからポリシーと環境データを グローバルデータベースにロードするプロセスであり、他のコマースエンジンがアクセスできるようにします。

ブートストラップ後、Commerce Engineは、通常のランタイム操作中に後続の環境設定をデータベースから直接取得するため、環境JSONファイルが不要になります。ただし、その後に環境のJSONファイルに変更を加えた場合は、Commerce Engineを再度ブートストラップして、変更がグローバル データベースに反映されるようにする必要があります。

Commerce Engineロール

Sitecore XCソリューションは、スケーラビリティをサポートするためにCommerce Engineロール の概念を実装します。Commerce Engineロールは、コアCommerce処理のデプロイされたインスタンスであり、それぞれが異なる論理ロールを提供します。ロール間の区別は、インストールされている異なるロール間でデプロイされたビットに実際の違いはないため、純粋に論理的です。ロール間の区別は、トラフィックの発信元と、呼び出されるCommerce環境の構成によって定義されます。

クライアントがCommerce Engineを呼び出すときは、呼び出しのヘッダーでターゲットCommerce環境を指定する必要があります。これは、リクエストヘッダーで指定された環境のコンテキストで、Commerce Engineの動作がリクエストをどのように処理するかを決定するのは、ターゲット環境の設定です。

Commerce Engineロールは、同じサーバー上に共存させることも、別々のサーバーに配置することもできます。必要に応じて、個別にスケーリングできます。

本番環境では、通常、トラフィックは、この 参照アーキテクチャ図に示すように、Commerce Engineの複数のインストール済みインスタンスに分割され、通常はトラフィック ソースの近くに物理的に配置されます。

環境ごとに異なるCommerce Engineインスタンスを使用すると、キャッシング、データ ストレージ、統合接続など、デプロイされた各ロールの機能を明示的に独立して制御できます。

サンプルのSitecore XCソリューションでは、Commerce Engineの3つのインスタンスを定義し、それぞれがロールを表します。

テーブル 1.

役割

形容

オーサリング  

オーサリング ロールは、Business Toolsからのトラフィックを処理するCommerce Engineのインスタンスです。この役割はトラフィックが少ないため(eコマースソリューションのビジネスユーザーは買い物客の数に比べて比較的少ないため)、通常、スケーリング要件は比較的低くなります。

メモ

Sitecore XC 10.2以降、デフォルトのXCデプロイメントでは、DevOps操作専用の個別のCommerce Engineサービス インスタンスは作成されません。代わりに、オーサリング コマース エンジン ロールは、DevOpsオペレーション (ブートストラップ、環境初期化関数、その他のCommerceOps APIリクエストなど) のターゲット環境としても機能します。

ショップ

Shopsロールは、1つ以上のストアフロントからのトラフィックを処理するCommerce Engineのインスタンスです。ストアフロントからの要求は、Commerce ConnectとCommerce Engine Connectによって処理されます。このコンテンツ配信ロールは、需要に応じて拡張でき、通常はトラフィックを生成するSitecore XPインスタンスのすぐ近くにインストールされます。

手先

ミニオン ロールは、独立して実行され、非同期処理 (注文後のキャプチャ処理やクリーンアップを含む) をサポートするCommerce Engineのインスタンスです。ミニオン ロールは通常、ワーカー ロール (Webロールではない) として設定され、Webトラフィックは受信しません。このロールには一連のミニオンが含まれており、それぞれに特定のタスク (たとえば、未決注文キューの処理に使用される未決注文ミニオン) があります。

大事な

Commerceソリューションには、ミニオン ロールを実行するCommerce Engineのインスタンスが1つだけ必要です。Commerce Engineの複数のインスタンスで複数のミニオン ロールを実行すると、同時実行エラーが発生します。



データベース

Sitecore XCは、次のCommerceデータベースを使用します。

  • すべてのCommerceデータセットを格納する共有環境データベース (SitecoreCommerce_SharedEnvironments)。

  • Commerce Engine環境の設定を保存するグローバル データベース。

  • アーカイブ データベースは、古い仕訳入力や非アクティブな注文など、アーカイブされたCommerceエンティティ (有効になっている場合) を格納します。

Commerce Shared Environmentsデータベース

Commerce Shared Environmentsデータベースには、カタログ データ、顧客レコード、価格情報、構成済みプロモーションなど、すべてのコマース ビジネス データが格納されます。ビジネスデータに加えて、Shared Environmentsデータベースには、さまざまなプラグインによって提供されるコアコマース機能を強化する汎用エンティティとリストも格納されます。

同じビジネス データセットの一部であるコマース エンティティは、共通のアーティファクト ストアID値を共有します。たとえば、デフォルトの共有環境データベースでは、Habitatデータセットの一部であるすべてのCommerceエンティティは、同じアーティファクト ストアID値に対して格納されます。Adventure Worksデータセットの一部であるエンティティは、異なるアーティファクト ストアIDに対して格納されます。次に、エンティティが異なるアーティファクト ストアID値に対して格納されるsitecore_commerce_storage.CatalogEntityテーブルの例を示します。

Commerce entities with different Artefact store ID value based on dataset.

クライアントがCommerceデータを要求すると、呼び出し要求で指定された環境IDは、Commerce環境ファイルで構成されているアーティファクト ストアIDに対応します。アーティファクト ストアIDは、データの初期化プロセス中に生成されます。共有環境データベースでは、同じCommerceデータセットに属するすべてのCommerceエンティティが同じアーティファクト ストアID値を共有します。

手記

Sellable商品などのCommerceエンティティは、このリファレンス アーキテクチャ図に示すように、ストアフロントで公開するためにSitecore Webデータベースに移動されません。コマースデータは、アイテムがストアフロントに公開されているかどうかに関係なく、共有環境データベースに残ります。Commerceエンティティの場合、ストアフロントへの公開は、ビジネス ツールの公開ワークフローの結果として、エンティティに対して設定される "published" プロパティ値 (bool.) の関数です。

グローバルデータベース

グローバル データベースには、指定されたCommerce環境に対してクライアントによって開始された要求に対するCommerce Engineの動作を制御するすべてのCommerce Engine環境構成データが格納されます。

ブートストラップ・プロセスは、環境構成とポリシー・データをグローバル・データベースに登録する役割を担います。

プラグイン

Commerce Engineには、既存の機能を拡張または変更するためのプラグ可能なフレームワークが含まれています。Sitecore XCプラグイン アーキテクチャは、アップグレード性を損なうことなく、カスタム機能の拡張ポイントを提供します。

このプラグイン アーキテクチャにより、Sitecore XCソリューションのオプトインの複雑さと漸進的な強化が可能になります。コネクタのプラグインを作成して、サードパーティのシステムを統合できます。また、ビジネスロジックを拡張したり、ビジネスツールを拡張したりするためのプラグインを作成することもできます。

この記事を改善するための提案がある場合は、 お知らせください!