ヘッドレスアプリケーションの運用開始方法 go-live

AEM ヘッドレスデベロッパージャーニーのこのパートでは、Git 内のローカルコードを CI/CD パイプライン用に Cloud Manager Git に移行することでヘッドレスアプリケーションをライブ環境にデプロイする方法を説明します。

これまでの説明内容 story-so-far

AEM ヘッドレスジャーニーについての前のドキュメント、すべてをまとめる方法 - AEM ヘッドレスのアプリとコンテンツで、AEM 開発ツールを使用して、プロジェクトのすべてのファセットをまとめる方法を学びました。

この記事は、これらの基本事項に基づいているので、独自の AEM ヘッドレスプロジェクトの運用開始準備をする方法を理解できます。

目的 objective

このドキュメントは、AEM ヘッドレス公開パイプラインと、アプリケーションの運用を開始する前に認識しておく必要があるパフォーマンスに関する考慮事項を理解するうえで役に立ちます。

  • ローンチ前のアプリケーションのセキュリティ確保とスケーリング
  • パフォーマンスとデバッグの問題の監視

AEM ヘッドレスアプリケーションのローンチに備えるには、以下に示すベストプラクティスに従います。

ローンチ前のヘッドレスアプリケーションのセキュリティ確保とスケーリング secure-and-scale-before-launch

  1. GraphQL リクエストにトークンベースの認証を設定します。
  2. キャッシュを設定します。

モデル構造と GraphQL 出力 structure-vs-output

  • 15 KB を超える JSON コード(gzip で圧縮)を出力するクエリを作成しないようにします。長い JSON ファイルの場合、クライアントアプリケーションで解析する際に大量のリソースを消費します。
  • フラグメント階層のネストレベルは 5 以内にします。レベルを増やすと、コンテンツ作成者は変更の影響を考慮しにくくなります。
  • モデル内の依存関係階層を使用したクエリをモデル化するのではなく、複数オブジェクトクエリを使用します。これにより、多くのコンテンツ変更を行うことなく、JSON 出力の再構築をより長期的に柔軟に行うことができます。

CDN キャッシュヒット率の最大化 maximize-cdn

  • サーフェスからライブコンテンツをリクエストする場合を除き、直接の GraphQL クエリは使用しません。

    • 可能な限り、永続的クエリを使用します。
    • これらのクエリを CDN でキャッシュするために、CDN の TTL 値を 600 秒以上に設定します。
    • AEM は既存のクエリに対するモデル変更の影響を計算できます。
  • CDN へのクライアントトラフィックを減らし、より高い TTL を割り当てるため、JSON ファイル/GraphQL クエリをコンテンツ変更率の低いものと高いものに分けます。これにより、CDN でのオリジンサーバーに対する JSON の再検証が最小限に抑えられます。

  • CDN からコンテンツを能動的に無効にするには、ソフトパージを使用します。これにより、CDN は、キャッシュミスを引き起こすことなくコンテンツを再ダウンロードできます。

ヘッドレスコンテンツのダウンロード時間の短縮 improve-download-time

  • HTTP クライアントで必ず HTTP/2 を使用します。
  • HTTP クライアントで gzip に対するリクエストには必ず Accept ヘッダーを付けます。
  • JSON および参照先アーティファクトをホストするために使用するドメインの数を最小限に抑えます。
  • Last-modified-since を利用してリソースを更新します。
  • JSON ファイルで _reference 出力を使用すると、完全な JSON ファイルを解析しなくても、アセットのダウンロードを開始できます。

実稼動へのデプロイ deploy-to-production

すべてがテストされ、正しく動作していることを確認したら、Cloud Manager に一元化されている Git リポジトリーにコードのアップデートをプッシュする準備が整います。

アップデートが Cloud Manager にアップロードされたら、Cloud Manager の CI/CD パイプラインを使用して、アップデートを AEM as a Cloud Service にデプロイできます。

コードのデプロイを開始するには、Cloud Manager CI/CD パイプラインを使用します。このパイプラインについて詳しくは、Cloud Manager およびパッケージマネージャーを使用したコンテンツパッケージのデプロイを参照してください。

パフォーマンスの監視 performance-monitoring

AEM ヘッドレスアプリケーションの使用時に最高のユーザーエクスペリエンスを得るには、以下に説明するように、主要パフォーマンス指標を監視することが重要です。

  • アプリのプレビューバージョンと実稼動バージョンの動作を検証する

  • AEM ステータスページで現在のサービス稼働状況を確認する

  • パフォーマンスレポートにアクセスする

    • 配信のパフォーマンス

      • CDN(Fastly)パフォーマンス - 呼び出し数、キャッシュ率、エラー率、ペイロードトラフィックを確認する
      • オリジンサーバー - 呼び出し数、エラー率、CPU 負荷、ペイロードトラフィックを確認する
    • オーサーのパフォーマンス

      • ユーザー数、リクエスト数、読み込み数を確認する
  • アプリおよびスペース固有のパフォーマンスレポートにアクセスする

    • サーバーが起動したら、一般的な指標が緑/オレンジ/赤のどれになっているかを確認し、アプリの具体的な問題を特定する
    • アプリやスペース(Photoshop デスクトップ、ペイウォールなど)にフィルタリングされた上記と同じレポートを開く
    • Splunk ログ API を使用してサービスやアプリケーションのパフォーマンスにアクセスする
    • その他の問題が発生した場合は、カスタマーサポートに連絡する

トラブルシューティング troubleshooting

デバッグ debugging

デバッグに対する一般的なアプローチとして、次のベストプラクティスに従います。

  • アプリケーションのプレビューバージョンで機能とパフォーマンスを検証する
  • アプリケーションの実稼動バージョンで機能とパフォーマンスを検証する
  • コンテンツフラグメントエディターの JSON プレビューを使用して検証する
  • クライアントアプリケーションで JSON を調べて、クライアントアプリケーションや配信の問題の有無を確認する
  • GraphQL を使用して JSON を調べ、キャッシュされたコンテンツまたは AEM に関係する問題の有無を確認する

サポートへのバグの登録 logging-a-bug-with-support

さらにサポートが必要な場合に備え、サポートにバグを効率的に記録するには、次の手順に従います。

  • 必要に応じて、問題のスクリーンショットを撮る
  • 問題の再現方法を説明する
  • 問題が再現するコンテンツを説明する
  • AEM サポートポータルを通じて問題を適切な優先度で登録する

ジャーニーの完了 journey-ends

おめでとうございます。AEM ヘッドレスデベロッパージャーニーが完了し、以下を理解できました。

  • ヘッドレスコンテンツ配信とヘッドフルコンテンツ配信の違い
  • AEM のヘッドレス機能
  • AEM ヘッドレスプロジェクトを編成する方法
  • AEM でヘッドレスコンテンツを作成する方法
  • AEM でヘッドレスコンテンツを取得および更新する方法
  • AEM ヘッドレスプロジェクトの運用を開始する方法
  • 運用開始後の作業

皆さんは初めての AEM ヘッドレスプロジェクトの運用を既に開始したかもしれませんし、そうでなくても、そのために必要な知識はすべて習得したことになります。お疲れ様でした。

単一ページアプリケーションの調査 explore-spa

ただし、AEM のヘッドレスストアは、ここで終わる必要はありません。ジャーニーの「はじめに」のパートでは、AEM でヘッドレス配信と従来のフルスタックモデルをサポートできるだけでなく、両方の利点を組み合わせたハイブリッドモデルもサポートできる方法について簡単に説明に説明しました。

このような柔軟性がプロジェクトに必要な場合は、さらにジャーニーのオプションパート AEM で単一ページアプリケーション(SPA)を作成する方法に進んでください。

その他のリソース additional-resources

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab