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