コードをデプロイする方法と、デプロイ時に Cloud Manager で何が行われるかを説明します。
必要なリポジトリと環境を含む実稼動パイプラインを設定すると、コードをデプロイする準備が整います。
Cloud Manager で「デプロイ」をクリックして、デプロイメントプロセスを開始します。
パイプライン実行画面が表示されます。「ビルド」をクリックしてプロセスを開始します。
ビルドプロセスは、次のステップを含むコードデプロイメントプロセスを開始します。
テスト条件のログを表示したり結果を確認したりすることで、様々なデプロイメントプロセスのステップを確認できます。
デプロイメントの各ステップでは、多数のアクションが実行されます。この節では、これらについて説明します。コード自体の内部的なデプロイ方法に関する技術的な詳細については、デプロイメントプロセスの詳細の節を参照してください。
ステージデプロイメントステップには、次のアクションが含まれます。
ステージテストステップには、次のアクションが含まれます。
セキュリティテスト:このステップでは、AEM 環境でのアプリケーションコードのセキュリティに対する影響を評価します。テストプロセスについて詳しくは、テスト結果についてのドキュメントを参照してください。
実稼動デプロイメントステップには、次のアクションが含まれます。
デプロイメントが完了すると、コードはターゲット環境に配置され、ログを確認できます。
ユーザーのフィードバックを待機したままにすると、次の手順はタイムアウトします。
ステップ | タイムアウト |
---|---|
コード品質テスト | 14 日 |
セキュリティテスト | 14 日 |
パフォーマンステスト | 14 日 |
アプリケーションの承認 | 14 日 |
実稼動デプロイメントをスケジュール | 14 日 |
CSE サポート | 14 日 |
Cloud Manager は、ビルドプロセスで生成されたすべての target/*.zip ファイルを保存場所にアップロードします。これらのアーティファクトは、パイプラインのデプロイフェーズで、この場所から取得されます。
Cloud Manager が実稼動以外のトポロジにデプロイされる場合、目的はできるだけ早くデプロイメントを完了することです。そのため、アーティファクトは、以下のようにすべてのノードに同時にデプロイされます。
Cloud Manager は、各アーティファクトが AEM または Dispatcher パッケージであるかどうかを判断します。
Cloud Manager は、デプロイメント時に、すべてのディスパッチャーをロードバランサーから削除して環境を分離します。
この機能は、主に 1-1-1 のお客様が使用すると想定されています。
各 AEM アーティファクトは、パッケージマネージャー API を介して各 AEM インスタンスにデプロイされ、パッケージの依存関係がデプロイメントの順序を決定します。
すべての AEM アーティファクトは、オーサーとパブリッシャーの両方にデプロイされます。ノード専用の設定が必要な場合は、実行モードを使用する必要があります。実行モードを使用して、特定の目的のために AEM インスタンスを調整する方法について詳しくは、ドキュメント「AEM as a Cloud Service へのデプロイ」の実行モードの節を参照してください。
Dispatcher のアーティファクトは、以下のように各 Dispatcher にデプロイされます。
httpd
ディレクトリに抽出されます。不変ファイルは上書きされません。Git リポジトリー内の不変ファイルに対して加えた変更は、デプロイメント時に無視されます。これらのファイルは、AMS ディスパッチャーフレームワークのコアであり、変更できません。Cloud Manager では、Dispatcher アーティファクトに完全なファイルセットが含まれていることが想定されています。すべての Dispatcher 設定ファイルが、Git リポジトリーに存在する必要があります。ファイルやフォルダーが見つからない場合、デプロイメントに失敗します。
すべての AEM および Dispatcher パッケージのすべてのノードへのデプロイメントが正常に完了すると、Dispatcher がロードバランサーに再追加され、デプロイメントが完了します。
開発およびステージングデプロイメントでのロードバランサーの変更をスキップできます。つまり、開発環境では非実稼動パイプラインの両方でのデタッチとアタッチの手順、ステージング環境では実稼動パイプラインをスキップできます。
AEM サイト訪問者への影響を最小限に抑えるために、実稼動トポロジーへのデプロイプロセスはわずかに異なります。
実稼動のデプロイメントは、通常、上記と同じ手順に従いますが、周期的な方法で実行します。
このプロセスは、デプロイメントがトポロジのすべてのパブリッシャーおよび Dispatcher に到達するまで続行されます。
重大な状況では、Adobe Managed Services のお客様が、Cloud Manager のテストサイクルが完全に実行されるのを待たずに、ステージング環境および実稼動環境にコード変更をデプロイしなければならない場合があります。
このような状況に対処するために、Cloud Manager の実稼動パイプラインは、緊急モードで実行することができます。このモードを使用すると、セキュリティテストのステップとパフォーマンステストのステップは実行されません。設定済みの承認ステップなどの他のステップはすべて、通常のパイプライン実行モードの場合と同様に実行されます。
緊急パイプライン実行モード機能は、カスタマーサクセスエンジニアがプログラム単位で有効にします。
実稼動パイプラインの実行を開始する際に、プログラムに対して緊急パイプライン実行モード機能が有効になっている場合、ダイアログボックスから通常モードまたは緊急モードのいずれかで実行を開始できます。
緊急モードでの実行について、パイプライン実行の詳細ページを表示すると、画面の上部にあるパンくずリストに、パイプラインが緊急モードで実行中であることを示すインジケーターが表示されます。
緊急モードでのパイプライン実行は、Cloud Manager API または CLI を介して実行することもできます。緊急モードで実行を開始するには、クエリパラメーター ?pipelineExecutionMode=EMERGENCY
を使用して、パイプラインの実行エンドポイントに PUT
リクエストを送信します。また、CLI を使用する場合は、次のようにします。
$ aio cloudmanager:pipeline:create-execution PIPELINE_ID --emergency
実稼動デプロイメント手順の再実行は、実稼動デプロイ手順が完了した実行に対して利用できます。完了のタイプは重要ではありません。デプロイメントは、成功(AMS プログラムの場合のみ)、キャンセル、失敗のいずれかになります。最も多いユースケースは、一時的な理由で実稼動のデプロイメント手順が失敗した場合です。再実行の場合は、同じパイプラインを使用して新しい実行が作成されます。 この新しい実行は、次の 3 つのステップで構成されます。
ビルドステップのラベルが UI で異なる場合がありますが、これは、アーティファクトを再ビルドではなくコピーしていることを表しています。
実行が再実行であるかどうかを識別するために、trigger
フィールドを調べることができます。その値は 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 を使用して通常の実行を開始する場合と似ています。