コードのデプロイ

AEM as a Cloud Serviceの Cloud Manager パイプラインを使用して、コードを実稼動環境にデプロイする方法を説明します。

実稼動パイプライン図

コードをステージング環境にシームレスにデプロイし、実稼動環境にデプロイするには、実稼動パイプラインを使用します。 実稼動パイプラインの実行は、2 つの論理フェーズに分類されます。

  1. ステージ環境へのデプロイメント
    • コードは、自動化された機能テスト、UI テスト、エクスペリエンス監査、ユーザー受け入れテスト (UAT) のために、ステージング環境に構築およびデプロイされます。
  2. 実稼動環境へのデプロイメント
    • ステージ上でビルドの検証がおこなわれ、実稼動環境へのプロモーションが承認されると、同じビルドアーティファクトが実稼動環境にデプロイされます。

コードスキャン、関数テスト、UI テスト、エクスペリエンス監査をサポートするのは、フルスタックコードパイプラインタイプのみです。

AEM as a Cloud Serviceでの Cloud Manager でのコードのデプロイ

一度 実稼動パイプラインを設定済み リポジトリ、環境、テスト環境を含め、コードをデプロイする準備が整いました。

  1. my.cloudmanager.adobe.com で Cloud Manager にログインし、適切な組織を選択します。

  2. コードをデプロイするプログラムをクリックします。

  3. クリック デプロイ のコールトゥアクションから 概要 画面を開いて、デプロイメントプロセスを開始します。

    CTA

  4. パイプライン実行​画面が表示されます。「ビルド」をクリックしてプロセスを開始します。

    パイプライン実行画面

ビルドプロセスにより、3 つの段階を経てコードがデプロイされます。

  1. ステージのデプロイメント
  2. ステージテスト
  3. 実稼動のデプロイメント
ヒント

テスト条件のログを表示したり、結果を確認したりして、様々なデプロイメントプロセスの手順を確認できます。

ステージのデプロイメントフェーズ

この ステージのデプロイメント フェーズ。 には、これらの手順が含まれます。

  • 検証 — この手順では、現在使用可能なリソースを使用するようにパイプラインが設定されるようにします。 例えば、設定されたブランチが存在し、環境が使用可能であることをテストします。
  • ビルドおよび単体テスト — この手順は、コンテナ化されたビルドプロセスを実行します。
  • コードスキャン — この手順では、アプリケーションコードの品質を評価します。
  • 画像の作成 — このプロセスでは、ビルド手順で生成されたコンテンツおよび Dispatcher パッケージを Docker イメージと Kubernetes 設定に変換します。
  • ステージにデプロイ — イメージは、 ステージテスト段階。

ステージのデプロイメント

ステージテストフェーズ

この ステージテスト フェーズでは、これらの手順を実行します。

  • 製品機能テスト - Cloud Manager パイプラインは、ステージ環境に対して実行されるテストを実行します。

  • カスタム機能テスト — パイプライン内のこのステップは常に実行され、スキップできません。 ビルドでテスト JAR が生成されない場合、テストはデフォルトで合格します。

  • カスタム UI テスト — この手順は、カスタムアプリケーション用に作成された UI テストを自動的に実行するオプションの機能です。

    • UI テストは、Docker イメージにパッケージ化された Selenium ベースのテストで、言語とフレームワーク(Java、Maven、Node、WebDriver.io など、Selenium に基づいて構築されたその他のフレームワークとテクノロジー)を幅広く選択できます。
    • ドキュメントを参照してください カスタム UI テスト を参照してください。
  • エクスペリエンス監査 — パイプライン内のこのステップは常に実行され、スキップできません。 実稼動パイプラインの実行時に、チェックを実行するカスタム機能テストの後に、エクスペリエンスの監査手順が組み込まれます。

    • 設定されたページがサービスに送信され、評価されます。
    • 結果は情報提供であり、スコアおよび現在のスコアと以前のスコアの変化を示します。
    • このインサイトは、現在のデプロイメントで前のバージョンになかった不具合が導入されるかどうかを判断するのに役立ちます。
    • ドキュメントを参照してください エクスペリエンス監査結果について を参照してください。

ステージテスト

実稼動のデプロイメントフェーズ

訪問者がAEMサイトに与える影響を最小限に抑えるために、実稼動トポロジにデプロイするプロセスは少し異なります。

実稼動のデプロイメントは、通常、前述と同じ手順に従いますが、周期的な方法で実行します。

  1. オーサーに AEM パッケージをデプロイします。
  2. dispatcher1 をロードバランサーから分離します。
  3. AEM パッケージを publish1 にデプロイし、Dispatcher を dispatcher1 にデプロイして、Dispatcher キャッシュをフラッシュします。
  4. dispatcher1 をロードバランサーに戻します。
  5. dispatcher1 がサービスを再開したら、dispatcher2 をロードバランサーから分離します。
  6. AEM パッケージを publish2 にデプロイし、Dispatcher パッケージを dispatcher2 にデプロイして、Dispatcher キャッシュをフラッシュします。
  7. dispatcher2 をロードバランサーに戻します。

このプロセスは、デプロイメントがトポロジのすべてのパブリッシャーおよび Dispatcher に到達するまで続行されます。

実稼動のデプロイメントフェーズ

タイムアウト

ユーザーのフィードバックを待機したままにすると、次の手順はタイムアウトします。

ステップ タイムアウト
コード品質テスト 14 日
セキュリティテスト 14 日
パフォーマンステスト 14 日
アプリケーションの承認 14 日
実稼動デプロイメントをスケジュール 14 日
CSE サポート 14 日

デプロイメントプロセス

Cloud Service のすべてのデプロイメントでは、ダウンタイムをなくすために、ローリングプロセスに従います。ドキュメントを参照してください ローリングデプロイメントの仕組み を参照してください。

実稼動デプロイメントの再実行

実稼動デプロイメント手順の再実行は、実稼動デプロイ手順が完了した実行に対してサポートされています。 完了のタイプは重要ではありません。デプロイメントがキャンセルされたか、失敗した可能性があります。 ただし、主なユースケースは、一時的な理由で実稼動デプロイメント手順が失敗した場合であることが予想されます。 再実行の場合は、同じパイプラインを使用して新しい実行が作成されます。 この新しい実行は、次の 3 つのステップで構成されます。

  1. 検証ステップ - これは、通常のパイプライン実行時に行われる検証と基本的に同じです。
  2. ビルドステップ - 再実行のコンテキストでは、ビルドステップは、新しいビルドプロセスを実際に実行するのではなく、アーティファクトをコピーします。
  3. 実稼動デプロイメントステップ - これは、通常のパイプライン実行における実稼動デプロイメントステップと同じ設定およびオプションを使用します。

ビルドステップのラベルが UI で多少異なる場合がありますが、これは、アーティファクトを再ビルドではなくコピーしていることを表しています。

再デプロイ

制限事項:

  • 実稼動デプロイメントステップの再実行は、最後の実行に対してのみ使用できます。
  • プッシュ更新の実行では、再実行を使用できません。 最後の実行がプッシュ更新実行である場合、再実行はできません。
  • 最後の実行がプッシュ更新実行である場合、再実行はできません。
  • 実稼動デプロイメントステップ以前の任意の時点で最後の実行が失敗した場合、再実行はできません。

API の再実行

再実行の識別

実行が再実行であるかどうかを識別するには、トリガーフィールドを調べることができます。 再実行の場合、その値は RE_EXECUTE になります。

新しい実行のトリガー

再実行をトリガーするには、実稼働デプロイメントステップの状態で HAL リンク(http://ns.adobe.com/adobecloud/rel/pipeline/reExecute)に対して PUT リクエストを行う必要があります。 このリンクが存在する場合は、そのステップから実行を再開できます。 存在しない場合は、そのステップから実行を再開することはできません。 最初のリリースでは、このリンクは実稼動デプロイメントステップにのみ存在しますが、今後のリリースでは、他のステップからのパイプラインの開始がサポートされる可能性があります。 例:

 {
  "_links": {
    "http://ns.adobe.com/adobecloud/rel/pipeline/logs": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/logs",
      "templated": false
    },
    "http://ns.adobe.com/adobecloud/rel/pipeline/reExecute": {
      "href": "/api/program/4/pipeline/1/execution?stepId=2983530",
      "templated": false
    },
    "http://ns.adobe.com/adobecloud/rel/pipeline/metrics": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/metrics",
      "templated": false
    },
    "self": {
      "href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530",
      "templated": false
    }
  },
  "id": "6187842",
  "stepId": "2983530",
  "phaseId": "1575676",
  "action": "deploy",
  "environment": "weretail-global-b75-prod",
  "environmentType": "prod",
  "environmentId": "59254",
  "startedAt": "2022-01-20T14:47:41.247+0000",
  "finishedAt": "2022-01-20T15:06:19.885+0000",
  "updatedAt": "2022-01-20T15:06:20.803+0000",
  "details": {
  },
  "status": "FINISHED"

上記 HAL リンクの href 値の構文は、基準点として使用するためのものではありません。 実際の値は、常に HAL リンクから読み取られるべきものであり、生成されるものではありません。

このエンドポイントに PUT リクエストを送信すると、成功した場合は 201 応答が返され、応答の本文には新しい実行が表現されています。これは、API を使用して通常の実行を開始する場合と似ています。

このページ