コードのデプロイメント

コードをデプロイする方法と、その際に Cloud Manager で起こることについて説明します。

Cloud Manager でのコードのデプロイ

必要なリポジトリと環境を含む実稼動パイプラインを設定したら、コードをデプロイする準備が整います。

  1. Cloud Manager で「デプロイ」をクリックして、デプロイメントプロセスを開始します。

    デプロイボタン

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

    「作成」ボタン

ビルドプロセスは、次の手順を含むコードデプロイメントプロセスを開始します。

  • ステージデプロイメント
  • ステージテスト
  • 実稼働デプロイメント

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

デプロイメントの手順

この節で説明するように、デプロイメントの各手順で多数のアクションが実行されます。 の節を参照してください。 デプロイメントプロセスの詳細 コード自体のバックグラウンドでのデプロイ方法に関する技術的な詳細。

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

この ステージのデプロイメント 手順には、次の操作が含まれます。

  • 検証:この手順では、現在使用可能なリソース(設定済みのブランチが存在し、環境が使用可能であるなど)を使用するようにパイプラインが設定されていることを確認します。
  • ビルドおよび単体テスト:この手順は、コンテナ化されたビルドプロセスを実行します。 ドキュメントを参照 ビルド環境 」を参照してください。
  • コードスキャン:この手順では、アプリケーションコードの品質を評価します。 ドキュメントを参照 テスト結果について を参照してください。
  • ステージにデプロイ

ステージデプロイメント

ステージテスト手順

この ステージテスト 手順には、次の操作が含まれます。

  • セキュリティテスト:この手順では、AEM環境に対するコードのセキュリティへの影響を評価します。 ドキュメントを参照 テスト結果について を参照してください。

    • パフォーマンステスト:この手順では、コードのパフォーマンスを評価します。 詳しくは、 テスト結果について を参照してください。

    ステージテスト

実稼動のデプロイメント手順

この 実稼動のデプロイメント ステップには、次のアクションが含まれます。

  • アプリケーションの承認
    • このオプションは、パイプラインの設定時に有効になります。
    • このオプションを使用すると、実稼動のデプロイメントをスケジュールしたり、「今すぐ」をクリックして即座に実稼動のデプロイメントを実行したりできます。
  • 実稼動デプロイメントをスケジュール
    • このオプションは、パイプラインの設定時に有効になります。

    • スケジュールされた日時は、ユーザーのタイムゾーンで指定されます。

      デプロイメントをスケジュール

  • CSE サポート(有効な場合)
  • 実稼働環境にデプロイ

実稼働デプロイメント

デプロイメントが完了すると、コードはターゲット環境に配置され、ログを表示できます。

デプロイメントが完了しました

タイムアウト

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

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

デプロイメントプロセスの詳細

Cloud Manager は、ビルドプロセスによって生成されたすべての target/*.zip ファイルをステージの場所にアップロードします。これらのアーティファクトは、パイプラインのデプロイフェーズで、この場所から取得されます。

Cloud Manager が実稼動以外のトポロジにデプロイされる場合、目的はできるだけ早くデプロイメントを完了することです。そのため、アーティファクトは、以下のようにすべてのノードに同時にデプロイされます。

  1. Cloud Manager は、各アーティファクトが AEM または Dispatcher パッケージであるかどうかを判断します。

  2. Cloud Manager は、デプロイメント中に環境を分離するために、ロードバランサーからすべての Dispatcher を削除します。

    • 特に設定がない限り、開発環境、非実稼動パイプラインの両方、およびステージング環境の実稼動パイプラインのデタッチとアタッチの手順など、開発およびステージングデプロイメントでのロードバランサーの変更をスキップできます。

    ロードバランサーをスキップ

    メモ

    この機能は、主に 1-1-1 のお客様が使用すると想定されています。

  3. 各 AEM アーティファクトは、パッケージマネージャー API を介して各 AEM インスタンスにデプロイされ、パッケージの依存関係がデプロイメントの順序を決定します。

    • パッケージを使用した新機能のインストール、インスタンス間のコンテンツの転送、リポジトリコンテンツのバックアップの方法について詳しくは、ドキュメントを参照してください パッケージマネージャー。
    メモ

    すべての AEM アーティファクトは、オーサーとパブリッシャーの両方にデプロイされます。ノード専用の設定が必要な場合は、実行モードを使用する必要があります。特定の目的のために実行モードを使用してAEMインスタンスを調整できるようにする方法について詳しくは、 ドキュメント「AEMへのデプロイ」の「実行モード」の節を参照してください。

  4. Dispatcher のアーティファクトは、以下のように各 Dispatcher にデプロイされます。

    1. 現在の設定は、バックアップされ、一時的な場所にコピーされます。
    2. 不変ファイルを除くすべての設定が削除されます。 ドキュメントを参照します。 Dispatcher 設定 を参照してください。 これにより、孤立したファイルが残らないようにディレクトリがクリアされます。
    3. アーティファクトは、httpd ディレクトリに抽出されます。不変ファイルは上書きされません。Git リポジトリー内の不変ファイルに対して加えた変更は、デプロイメント時に無視されます。これらのファイルは AMS Dispatcher フレームワークのコアであり、変更できません。
    4. Apache が設定テストを実行します。 エラーが見つからない場合は、サービスが再読み込みされます。エラーが発生した場合、設定がバックアップから復元され、サービスが再読み込みされて、エラーが Cloud Manager に再度報告されます。
    5. パイプライン設定で指定された各パスは、無効化または Dispatcher キャッシュからフラッシュされます。
    メモ

    Cloud Manager では、Dispatcher アーティファクトに完全なファイルセットが含まれていることが想定されています。すべての Dispatcher 設定ファイルが、Git リポジトリーに存在する必要があります。ファイルやフォルダーが見つからない場合、デプロイメントに失敗します。

  5. すべての AEM および Dispatcher パッケージのすべてのノードへのデプロイメントが正常に完了すると、Dispatcher がロードバランサーに再追加され、デプロイメントが完了します。

    メモ

    開発およびステージングデプロイメントでのロードバランサーの変更(開発環境、非実稼動パイプラインの両方でのデタッチとアタッチの手順、およびステージング環境での実稼動パイプラインの手順など)をスキップできます。

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

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 に到達するまで続行されます。

緊急パイプライン実行モード

重大な状況では、Adobe Managed Services のお客様が、Cloud Manager のテストサイクルが完全に実行されるのを待たずに、ステージング環境および実稼動環境にコード変更をデプロイしなければならない場合があります。

このような状況に対処するために、Cloud Manager の実稼動パイプラインは、緊急モードで実行することができます。このモードを使用すると、セキュリティとパフォーマンスのテスト手順は実行されません。設定済みの承認ステップを含むその他すべてのステップは、通常のパイプライン実行モードと同様に実行されます。

メモ

緊急パイプライン実行モード機能は、カスタマーサクセスエンジニアがプログラムごとに有効化します。

緊急パイプライン実行モードの使用

実稼動パイプラインの実行を開始する際に、プログラムに対して緊急パイプライン実行モード機能が有効になっている場合、ダイアログボックスから通常モードまたは緊急モードで実行を開始できます。

パイプライン実行オプション

緊急モードでの実行について、パイプライン実行の詳細ページを表示すると、画面の上部にあるパンくずリストに、パイプラインが緊急モードで実行中であることを示すインジケーターが表示されます。

緊急モードのパンくずリスト

パイプラインを緊急モードで実行する場合は、Cloud Manager API または CLI を使用して実行することもできます。 緊急モードで実行を開始するには、 PUT リクエストを返します。 ?pipelineExecutionMode=EMERGENCY または、CLI を使用する場合は次の手順に従います。

$ aio cloudmanager:pipeline:create-execution PIPELINE_ID --emergency

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

実稼動デプロイメント手順の再実行は、実稼動デプロイ手順が完了した場合に使用できます。 完了のタイプは重要ではありません。デプロイメントは、(AMS プログラムの場合のみ)成功、キャンセル、失敗のいずれかになる可能性があります。 主な使用例は、一時的な理由で実稼動のデプロイメント手順が失敗した場合です。 再実行の場合は、同じパイプラインを使用して新しい実行が作成されます。 この新しい実行は、次の 3 つのステップで構成されます。

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

ビルドステップには、再構築ではなくアーティファクトをコピーしていることを示すために、UI で異なるラベルが付けられる場合があります。

再実行

制限事項

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

再実行の識別

実行が再実行であるかどうかを識別するには、 trigger フィールドを調べることができます。 値は次のようになります。 RE_EXECUTE.

再実行のトリガー

再トリガーを実行するには、 PUT リクエストは、HAL リンクに対して行う必要があります http://ns.adobe.com/adobecloud/rel/pipeline/reExecute 実稼動デプロイステップの状態。 このリンクが存在する場合は、そのステップから実行を再開できます。 存在しない場合は、そのステップから実行を再開することはできません。 このリンクは、実稼動デプロイステップにのみ存在します

 {
  "_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 を使用して通常の実行を開始する場合と似ています。

このページ