AEM ヘッドレスデベロッパージャーニーのこの部分では、ヘッドレスアプリケーションを実稼働環境にデプロイする方法を説明します。
AEM ヘッドレスジャーニーの前のドキュメント AEM Assets API を使用してコンテンツを更新する方法では、API を使用して AEM の既存のヘッドレスコンテンツを更新する方法を説明し、以下を達成できました。
この記事は、これらの基本事項に基づいているので、独自の AEM ヘッドレスプロジェクトの運用開始準備をする方法を理解できます。
このドキュメントは、AEM ヘッドレス公開パイプラインと、アプリケーションの運用を開始する前に認識しておく必要があるパフォーマンスに関する考慮事項を理解するうえで役に立ちます。
AEM SDK は、カスタムコードのビルドとデプロイに使用されます。これは、ヘッドレスアプリケーションを開発し運用開始前にテストするために必要な主なツールです。次のアーティファクトで構成されます。
AEM SDK に加えて、コードとコンテンツのローカル開発およびテストを容易にする下記の追加ツールが必要になります。
AEM は Java アプリケーションなので、AEM as a Cloud Service の開発をサポートするには、Java と Java SDK をインストールする必要があります。
ソース管理、および変更内容の Cloud Manager へのチェックインと実稼動インスタンスへのデプロイには、Git を使用します。
AEM Maven プロジェクトアーキタイプから生成されたプロジェクトをビルドするために、AEM では Apache Maven を使用します。主要な IDE はすべて Maven との統合をサポートしています。
Node.js は、AEM プロジェクトの ui.frontend
サブプロジェクトのフロントエンドアセットを操作するために使用される JavaScript ランタイム環境です。Node.js は npm と一緒に配布され、JavaScript の依存関係の管理に使用される事実上の Node.js パッケージマネージャーとなっています。
次に、AEM 環境の構成要素を見てみましょう。
完全な AEM 環境は、オーサー、パブリッシュ、ディスパッチャーで構成されます。運用開始前にコードとコンテンツをプレビューしやすくするために、これらと同じコンポーネントがローカル開発ランタイムで使用可能になります。
オーサーサービスでは、内部ユーザーがコンテンツの作成、管理、プレビューを行います。
パブリッシュサービスは「ライブ」環境と考えられ、通常はエンドユーザーがやり取りする相手になります。コンテンツは、オーサーサービスで編集および承認された後、パブリッシュサービスに配信(レプリケート)されます。AEM ヘッドレスアプリケーションで最も一般的なデプロイメントパターンは、実稼動版のアプリケーションを AEM パブリッシュサービスに接続させることです。
ディスパッチャーは、AEM Dispatcher モジュールで拡張された静的 Web サーバーです。パブリッシュインスタンスで生成された Web ページをキャッシュしてパフォーマンスを向上します。
ローカル開発プロジェクトは Apache Maven をベースに構築され、ソース管理に Git を使用します。プロジェクトを更新するために、開発者は、Eclipse、Visual Studio Code、IntelliJ など、好みの統合開発環境を使用できます。
ヘッドレスアプリケーションによって取り込まれるコードまたはコンテンツのアップデートをテストするには、そのアップデートをローカルの AEM ランタイム(AEM オーサーサービスおよびパブリッシュサービスのローカルインスタンスを含む)にデプロイする必要があります。
アップデートが最も重要な場所でアップデートをテストすることが大切なので、ローカル AEM ランタイムの各コンポーネントの違いに注意してください。例えば、オーサーインスタンスでコンテンツのアップデートをテストしたり、パブリッシュインスタンスで新しいコードをテストしたりします。
実稼動システムでは、ディスパッチャーと HTTP Apache サーバーは常に AEM パブリッシュインスタンスの前に配置されます。これらは AEM システムのキャッシュサービスとセキュリティサービスを提供するので、ディスパッチャーに対してもコードとコンテンツのアップデートをテストすることが最も重要です。
AEM ヘッドレスプロジェクトのローンチの準備をするには、プロジェクトの構成要素がすべて正常に機能していることを確認する必要があります。
それには、コード、コンテンツ、設定をすべて 1 つにまとめ、ローカル開発環境でテストして運用開始準備を行う必要があります。
ローカル開発環境は、次の 3 つの主な領域で構成されます。
ローカル開発環境をセットアップしたら、静的な Node サーバーをローカルにデプロイすることで、React アプリに対するコンテンツ提供をシミュレートできます。
ローカル開発環境のセットアップと、コンテンツのプレビューに必要なすべての依存関係について詳しくは、実稼働デプロイメントのドキュメントを参照してください。
それではいよいよ、以下に示すベストプラクティスに従って、AEM ヘッドレスアプリケーションのローンチの準備を行います。
CDN とキャッシングについて詳しくは、その他のリソースを参照してください。
Last-modified-since
を利用してリソースを更新します。_reference
出力を使用すると、完全な JSON ファイルを解析しなくても、アセットのダウンロードを開始できます。実稼動環境へのデプロイは、Maven を使用してデプロイする従来の AEM インスタンスがあるか、または Adobe Managed Services(AMS)上にあり、つまり Cloud Manager を使用しているかどうかによって異なります。
Maven を使用した従来のデプロイメント(AMS 以外)の概要については、WKND チュートリアルを参照してください。
Cloud Manager を使用して AMS をお使いの場合は、すべてがテスト済みで正常に機能していることを確認したら、コードの更新を Cloud Manager の一元化された Git リポジトリにプッシュできます。
アップデートが Cloud Manager にアップロードされたら、Cloud Managerの CI/CD パイプラインを使用して、アップデートを AEM にデプロイできます。
AEM ヘッドレスアプリケーションの使用時に最高のユーザーエクスペリエンスを得るためには、以下に説明するように、主要パフォーマンス指標を監視することが重要です。
デバッグに対する一般的なアプローチとして、次のベストプラクティスに従います。
さらにサポートが必要な場合に備えてサポートにバグを効率的に登録するには、次の手順に従います。
おめでとうございます。AEM ヘッドレスデベロッパージャーニーが完了し、以下を理解できました。
皆さんは初めての AEM ヘッドレスプロジェクトの運用を既に開始したかもしれませんし、そうでなくても、そのために必要な知識はすべて習得したことになります。お疲れ様でした。
ただし、AEM のヘッドレスストアは、ここで終わる必要はありません。ジャーニーの「はじめに」のパートでは、AEM でヘッドレス配信と従来のフルスタックモデルをサポートできるだけでなく、両方の利点を組み合わせたハイブリッドモデルもサポートできることを簡単に説明しました。
このような柔軟性がプロジェクトに必要な場合は、さらにジャーニーのオプションパート AEM で単一ページアプリケーション(SPA)を作成する方法に進んでください。
CDN キャッシュ
CDN Rewriter の設定(CDN Rewriter の検索)