了解如何部署您的程式碼以及部署時 Cloud Manager 中會發生什麼情況。
設定好生產管道 (包括必要的存放庫和環境) 後,您就可以準備部署程式碼了。
從 Cloud Manager 按一下部署,即可開始部署流程。
會顯示管道執行畫面。按一下建置,即可開始流程。
建置流程會啟動程式碼部署流程,包括以下步驟:
您可以透過檢視紀錄或檢閱測試標準的結果來查看各種部署流程的步驟。
在部署的每個步驟中都會發生許多操作,本節將對此進行說明。如需有關如何在幕後部署程式碼本身的技術細節,請參閱部署流程詳細資訊一節。
此中繼部署步驟包括下列操作:
此中繼測試步驟包括下列操作:
安全測試:此步驟會評估您的程式碼對 AEM 環境的安全影響。如需有關測試流程的詳細資訊,請參閱文件:了解測試結果。
此生產部署步驟包括下列操作:
部署完成後,您的程式碼將在其目標環境中,而且您可以檢視紀錄。
如果等候使用者回饋意見,以下步驟將逾時:
步驟 | 逾時 |
---|---|
計劃碼品質測試 | 14 天 |
安全測試 | 14 天 |
效能測試 | 14 天 |
申請核准 | 14 天 |
生產部署排程 | 14 天 |
CSE 支援 | 14 天 |
Cloud Manager 會將建置流程產生的所有 target/*.zip 檔案上傳到儲存位置。這些成品是在管道的部署階段從該位置擷取的。
當 Cloud Manager 部署到非生產拓撲時,目標是盡快完成部署,因此會將成品同時部署到所有節點,如下所示:
Cloud Manager 會決定每個成品是 AEM 或是 Dispatcher 套件。
Cloud Manager 會從負載平衡器中移除所有 Dispatcher,以在部署期間隔離環境。
本功能預計主要由 1-1-1 客戶使用。
每個 AEM 成品都會透過封裝管理員 API (加上決定部署順序的套件相依性) 部署到每個 AEM 執行個體,。
所有 AEM 成品都會部署給作者和發佈者。當需要節點特定的設定時,應利用運行模式。若要了解有關運行模式如何讓您能夠針對特定目的調整 AEM 執行個體的詳細資訊,請參閱「部署到 AEM as a Cloud Service」文件的「運行模式」一節。
此 Dispatcher 成品會依照以下方式部署到每個 Dispatcher:
httpd
目錄。不可變檔案並不會被覆寫。您對 Git 存放庫中不可變檔案所進行的任何變更將在部署時遭忽略。這些檔案是 AMS Dispatcher 架構的核心,且無法變更。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 方案)、已取消或不成功。主要使用案例是生產部署步驟由於暫時原因而失敗的情況。重新執行會使用相同的管道建立全新的執行。這個全新執行會包括三個步驟:
建置步驟在 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 啟動常規執行。