AEM as a Cloud Service によって、アドビは AEM インスタンス中心モデルから、Cloud Manager の CI/CD パイプラインによって駆動される、n-x AEM コンテナを持つサービスベースの表示に移行します。単一の AEM インスタンスでインデックスを設定および保守する代わりに、デプロイメントの前にインデックス設定を指定する必要があります。本番環境での設定変更は、CI/CD のポリシーを明らかに破るものです。インデックスの変更についても同じことが言えます。実稼働環境に移行する前にテストおよび再インデックスを指定しない場合、システムの安定性とパフォーマンスに影響を及ぼす可能性があるからです。
AEM 6.5 以前のバージョンと比較した主な変更点のリストを以下に示します。
単一の AEM インスタンスのインデックスマネージャーにアクセスできなくなり、インデックスのデバッグ、設定、または維持ができなくなります。ローカルデプロイメントおよびオンプレミスデプロイメントにのみ使用されます。
単一の AEM インスタンスのインデックスを変更したり、整合性チェックや再インデックスについて心配する必要はありません。
一般に、Cloud Manager の CI/CD パイプラインの品質の高いゲートウェイを迂回せず、実稼働環境のビジネス KPI に影響を与えないように、インデックスの変更は実稼働環境に移行する前に開始されます。
実稼働環境での検索パフォーマンスを含むすべての関連指標は、検索とインデックスのトピックの全体的な表示を提供するために、実行時に顧客が利用できます。
顧客は、必要に応じてアラートを設定できます。
SRE はシステムの正常性を 24 時間 365 日監視しており、必要に応じて可能な限り早急に対処します。
インデックスの設定は、デプロイメントを介して変更されます。インデックス定義の変更は、他のコンテンツの変更と同様に設定されます。
AEM as a Cloud Service の高レベルでは、Blue-Green デプロイメントモデルが導入され、1 つは古いバージョン用のセット(青)、もう 1 つは新しいバージョン用のセット(緑)の 2 組のインデックスが存在します。
Cloud Manager のビルドページで、顧客はインデックス作成ジョブが完了したかどうかを確認できます。新しいバージョンでトラフィックを引き受ける準備ができたら、通知を受け取ります。
制限事項:現在、AEM as a Cloud Service のインデックス管理は、lucene 型のインデックスに対してのみサポートされています。
インデックスの定義は、次の 3 つのユースケース で構成できます。
上記のポイント 1 と 2 の両方について、それぞれの Cloud Manager リリーススケジュールで、カスタムコードベースの一部として新しいインデックス定義を作成する必要があります。詳しくは、AEM as a Cloud Service へのデプロイドキュメントを参照してください。
次の命名パターンに従って、実際のインデックス定義を含む新しいインデックス定義パッケージを準備する必要があります。
<indexName>[-<productVersion>]-custom-<customVersion>
それらは ui.apps/src/main/content/jcr_root
の下に置く必要があります。現在、サブルートフォルダーはサポートされていません。
上記のサンプルのパッケージは、com.adobe.granite:new-index-content:zip:1.0.0-SNAPSHOT
としてビルドされます。
Jackrabbit Filevault Maven パッケージプラグインバージョン 1.1.0 には既知の問題があり、<packageType>application</packageType>
のモジュール oak:index
に追加できません。この問題に対処するには、バージョン 1.0.4 を使用してください。
インデックス定義は、カスタムおよびバージョン付きとしてマークされるようになりました。
/oak:index/ntBaseLucene-custom-1
)したがって、インデックスをデプロイするには、インデックス定義(/oak:index/definitionname
)を Git および Cloud Manager のデプロイメントプロセスを使用して ui.apps
経由で配信する必要があります。
新しいインデックス定義を追加したら、Cloud Manager を使用して新しいアプリケーションをデプロイする必要があります。デプロイメントを開始すると、2 つのジョブが開始され、それぞれ MongoDB と Azure Segment Store にオーサー用とパブリッシュ用のインデックス定義を追加(また必要に応じて結合)します。Blue-Green スイッチが起こる前に、基になるリポジトリのインデックスが新しいインデックス定義で再作成されています。
AEM as a Cloud Service を使用する場合に必要なパッケージ構造の詳細については、AEM プロジェクト構造ドキュメントを参照してください。
インデックス管理とは、インデックスの追加、削除、変更を行うことです。インデックスの定義変更はすぐにできますが、変更を適用する(「インデックスの構築」、または既存インデックスの場合は「インデックスの再構築」と呼ばれる)には時間が必要です。これは即時には実行されません。インデックスを作成するデータをリポジトリでスキャンする必要があります。
Blue-Green デプロイメントは、ダウンタイムを短縮できます。また、ダウンタイムをゼロにするアップグレードも可能で、高速なロールバックが可能です。アプリケーションの古いバージョン(青)は、アプリケーションの新しいバージョン(緑)と同時に実行されます。
リポジトリの特定の領域(リポジトリの読み取り専用の部分)は、古い(青い)バージョンと新しい(緑の)バージョンで異なる場合があります。リポジトリの読み取り専用領域は、通常、「/app
」と「/libs
」です。次の例では、読み取り専用領域に斜体を使用し、読み取り/書き込み可能領域に太字を使用します。
リポジトリの読み取り/書き込み領域は、アプリケーションのすべてのバージョン間で共有されますが、アプリケーションの各バージョンには、/apps
と /libs
の固有のセットがあります。
開発中、またはオンプレミスインストールを使用する場合は、インデックスを実行時に追加、削除または変更できます。インデックスは、利用可能になるとすぐに使用されます。まだ古いバージョンのアプリケーションでインデックスを使用することを想定していない場合は、通常、予定されたダウンタイム中にインデックスが構築されます。インデックスの削除時や、既存のインデックスの変更時にも同じことが起こります。インデックスを削除すると、ただちに使用できなくなります。
Blue-Green デプロイメントでは、ダウンタイムは発生しません。ただし、インデックス管理の場合は、インデックスが特定のバージョンのアプリケーションでのみ使用される必要があります。例えば、アプリケーションのバージョン 2 でインデックスを追加する場合に、アプリケーションのバージョン 1 ではまだインデックスを使用したくないことがあります。逆に、インデックスを削除する場合に、バージョン 2 で削除したインデックスがバージョン 1 ではまだ必要なことがあります。インデックス定義を変更する場合、古いバージョンのインデックスをバージョン 1 でのみ使用し、新しいバージョンのインデックスをバージョン 2 でのみ使用します。
次の表に、5 つのインデックス定義を示します。インデックス cqPageLucene
は両方のバージョンで使用され、インデックス damAssetLucene-custom-1
はバージョン 2 でのみ使用されます。
<indexName>-custom-<customerVersionNumber>
は、既存のインデックスの代わりとしてマークするために、AEM as a Cloud Service で必要です。
索引 | 標準提供インデックス | バージョン 1 で使用 | バージョン 2 で使用 |
---|---|---|---|
/oak:index/damAssetLucene | 可 | 可 | 不可 |
/oak:index/damAssetLucene-custom-1 | 可(カスタマイズ) | 不可 | 可 |
/oak:index/acme.product-custom-1 | 不可 | 可 | 不可 |
/oak:index/acme.product-custom-2 | 不可 | 不可 | 可 |
/oak:index/cqPageLucene | 可 | 可 | 可 |
バージョン番号は、インデックスが変更されるたびに増加します。製品自体のインデックス名と衝突するカスタムインデックス名を回避するには、カスタムインデックスと、標準提供のインデックスの変更を -custom-<number>
で終える必要があります。
アドビが「damAssetLucene」や「cqPageLucene」のような標準提供のインデックスを変更すると、damAssetLucene-2
または cqPageLucene-2
という名前の新しいインデックスが作成されます。また、インデックスが既にカスタマイズされている場合は、次のように、カスタマイズされたインデックス定義が標準提供のインデックス変更と結合されます。変更のマージは自動的におこなわれます。つまり、標準提供のインデックスが変更された場合、何もする必要はありません。ただし、後でインデックスを再びカスタマイズすることは可能です。
索引 | 標準提供インデックス | バージョン 2 で使用 | バージョン 3 で使用 |
---|---|---|---|
/oak:index/damAssetLucene-custom-1 | 可(カスタマイズ) | 可 | 不可 |
/oak:index/damAssetLucene-2-custom-1 | はい(damAssetLucene-custom-1 および damAssetLucene-2 から自動的に結合) | 不可 | 可 |
/oak:index/cqPageLucene | 可 | 可 | 不可 |
/oak:index/cqPageLucene-2 | 可 | 不可 | 可 |
インデックス管理は、現在、lucene
型のインデックスに対してのみサポートされています。
新しいバージョンのアプリケーションでインデックスを削除する場合は、空のインデックス(インデックスを作成するデータのないインデックス)を新しい名前で定義できます。例えば、/oak:index/acme.product-custom-3
と名前を付けることができます。これにより、/oak:index/acme.product-custom-2
インデックスが置き換えられます。システムによって /oak:index/acme.product-custom-2
が削除された後は、空のインデックス /oak:index/acme.product-custom-3
も削除できます。
新しいバージョン以降のアプリケーションで使用する「/oak:index/acme.product-custom-1」という名前のインデックスを追加するには、インデックスを次のように設定する必要があります。
acme.product-1-custom-1
これは、インデックス名の前にカスタム識別子を付け、その後にドット(.
)を付けることで機能します。識別子の長さは 2~5 文字です。
これにより、新しいバージョンのアプリケーションでのみインデックスが使用されます。
既存のインデックスを変更する場合は、変更したインデックス定義を使用して新しいインデックスを追加する必要があります。例えば、既存のインデックス「/oak:index/acme.product-custom-1」が変更されるとします。古いインデックスは /oak:index/acme.product-custom-1
下に、新しいインデックスは /oak:index/acme.product-custom-2
下に格納されます。
アプリケーションの古いバージョンでは、次の設定を使用します。
/oak:index/acme.product-custom-1
新しいバージョンのアプリケーションでは、次の(変更された)設定が使用されます。
/oak:index/acme.product-custom-2
インデックスの破損や予期しないイベントが発生した場合に、クエリに応答するためのフォールバックインデックスが使用できるように、非常に重要な機能のために重複インデックスを作成することをお勧めします(前述のインデックスの命名規則を考慮)。