コードのデプロイ
- 適用対象:
- Experience Manager as a Cloud Service
- トピック:
- Cloud Manager
- 開発
作成対象:
- 管理者
- 開発者
AEM as a Cloud Service の Cloud Manager パイプラインを使用して、コードを実稼動環境にデプロイする方法を説明します。
コードをステージング環境に、さらには実稼動環境にシームレスにデプロイするには、実稼動パイプラインを使用します。実稼動パイプラインの実行は、次の 2 つの論理フェーズに分かれます。
- ステージング環境へのデプロイメント - コードはビルドされたあと、ステージング環境にデプロイされて、自動化された機能テスト、UI テスト、エクスペリエンス監査、ユーザー受け入れテスト(UAT)が実施されます。
- 実稼動環境へのデプロイメント - ビルドがステージング環境で検証され、実稼動環境への昇格が承認されると、同じビルドアーティファクトが実稼動環境にデプロイされます。
コードスキャン、機能テスト、UI テスト、エクスペリエンス監査をサポートしているのは、フルスタックコードパイプラインタイプのみです。
デプロイメントプロセス
Cloud Service のすべてのデプロイメントでは、ダウンタイムをなくすために、ローリングプロセスに従います。詳しくは、ローリングデプロイメントの仕組みを参照してください。
AEM as a Cloud Service での Cloud Manager を使用したコードのデプロイ
リポジトリー、環境およびテスト環境を含め、実稼動パイプラインを設定したら、コードをデプロイする準備が整います。
-
my.cloudmanager.adobe.com で Cloud Manager にログインし、適切な組織を選択します。
-
マイプログラム コンソールで、コードをデプロイするプログラムをクリックします。
-
概要 ページのコールトゥアクション領域で、「デプロイ」をクリックします。
-
実稼動へのデプロイ ページで、「ビルド」をクリックします。
ビルドプロセスでは、次の 3 つの順序付きフェーズを経てコードがデプロイされます。
ステージデプロイメントフェーズ
ステージのデプロイメント には、以下の手順が含まれます。
ビルド環境について詳しくは、ビルド環境の詳細を参照してください。
テストプロセスの詳細については、コード品質テストを参照してください。
ステージテストフェーズ
ステージのテスト では、次の手順を実行します。
製品機能テストも参照してください。
カスタム機能テストも参照してください。
Selenium ベースの UI テストは、言語とフレームワークに柔軟性を持たせるため、Docker イメージにパッケージ化されています。このアプローチでは、Java と Maven、Node と WebDriver.io、または Selenium ベースのフレームワークやテクノロジーを使用できます。
カスタム UI テストも参照してください。
パイプラインのこのステップは常に実行され、スキップできません。実稼動パイプラインの実行時に、チェックを実行するカスタム機能テストの後に、エクスペリエンス監査ステップが組み込まれます。
- 設定されたページがサービスに送信され、評価されます。
- 結果は情報提供であり、スコアおよび現在のスコアと以前のスコア間の変化を示します。
- このインサイトは、現在のデプロイメントでリグレッションが導入されいないか判断するのに役立ちます。
エクスペリエンス監査結果についてを参照してください。
実稼動デプロイメントフェーズ
AEM サイト訪問者への影響を最小限に抑えるために、実稼動トポロジへのデプロイプロセスはわずかに異なります。
実稼動デプロイメントは、通常、前述と同じステップに従いますが、周期的な方法で実行されます。これらの手順は次のとおりです。
- オーサーに AEM パッケージをデプロイします。
dispatcher1
をロードバランサーから分離します。- AEM パッケージを
publish1
にデプロイし、Dispatcher パッケージをdispatcher1
にデプロイして、Dispatcher キャッシュをフラッシュします。 dispatcher1
をロードバランサーに戻します。dispatcher1
がサービスを再開したら、dispatcher2
をロードバランサーから分離します。- AEM パッケージを
publish2
に、Dispatcher パッケージをdispatcher2
にデプロイして、Dispatcher キャッシュをフラッシュします。 dispatcher2
をロードバランサーに戻します。
このプロセスは、デプロイメントがトポロジのすべてのパブリッシャーおよび Dispatcher に到達するまで続行されます。
デプロイメント中のタイムアウト
デプロイメント中にユーザーのフィードバックをを待機したままにすると、次の手順はタイムアウトします。
実稼動デプロイメントの再実行
まれに、一時的な理由で実稼動デプロイメントステップが失敗すること場合があります。このような場合、実稼動デプロイメントステップの再実行は、完了のタイプ(キャンセル、失敗など)に関係なく、実稼動デプロイメントステップが完了している限りサポートされます。再実行の場合は、次の 3 つのステップで構成される同じパイプラインを使用して新しい実行が作成されます。
- 検証 - 通常のパイプライン実行時に行われる検証と同じです。
- ビルド - 再実行のコンテキストでは、ビルドステップは、新しいビルドプロセスを実際に実行するのではなく、アーティファクトをコピーします。
- 実稼動デプロイメント - 通常のパイプライン実行における実稼動デプロイメントステップと同じ設定およびオプションを使用します。
再実行が可能な状況では、実稼動パイプラインステータスページには、通常の「ビルドログをダウンロード」オプションの横に「再実行」オプションが表示されます。
使用上のメモ
- 実稼動デプロイメントステップの再実行は、最後の実行に対してのみ使用できます。
- プッシュ更新の実行に対しては、再実行を使用できません。最後の実行がプッシュ更新実行の場合、再実行はできません。
- 実稼動デプロイメントステップ以前の任意の時点で最後の実行が失敗した場合、再実行はできません。
API の再実行
UI で使用できるだけでなく、Cloud Manager API を使用して再実行をトリガーしたり、再実行としてトリガーされた実行を識別したりすることもできます。
再実行のトリガー
再実行をトリガーするには、実稼動デプロイメントステップの状態で HAL リンク(https://ns.adobe.com/adobecloud/rel/pipeline/reExecute
)に対して PUT リクエストを行います。
- このリンクが存在する場合は、そのステップから実行を再開できます。
- 存在しない場合は、そのステップから実行を再開することはできません。
このリンクは、実稼動デプロイメントステップでのみ使用できます。
{
"_links": {
"https://ns.adobe.com/adobecloud/rel/pipeline/logs": {
"href": "/api/program/4/pipeline/1/execution/953671/phase/1575676/step/2983530/logs",
"templated": false
},
"https://ns.adobe.com/adobecloud/rel/pipeline/reExecute": {
"href": "/api/program/4/pipeline/1/execution?stepId=2983530",
"templated": false
},
"https://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 を使用して通常の実行を開始する場合と似ています。
再実行の実行の識別
再実行の実行は、trigger
フィールドに値 RE_EXECUTE
を設定することによって識別されます。