Managed Runtime 概觀

Managed Runtime 提供基礎架構來部署、代管、監控您的 PWA Kit 網店。

這份指南包含 Managed Runtime 的幾個主要部分,以及如何進行存取。

在您能夠使用 Managed Runtime 之前,您必須要求存取權限。請聯絡您的 Commerce Cloud 管理員,請他們使用 Account Manager 將以下任一角色加到您的帳戶:Managed Runtime UserManaged Runtime Admin

環境」一詞用於描述 Managed Runtime 代管的特定網店的所有雲端基礎架構和設定值。環境可將您的正式網店與專為其他目的 (例如開發或測試) 而部署的其他網店區分開來。

Managed Runtime API 中,環境被稱為「目標」,但兩個詞指的是同一概念。

由於環境在可自動調整規模的高效微服務中執行,因此您可以根據需求來建立任意數量的環境,而無需額外費用。舉例來說,您可以建立一個短期環境,專門用於進行靈敏的單一短期開發衝刺,或該短期衝刺中的單個使用者故事。當您不再需要某個環境時,我們建議您將其刪除。

Production 環境

標示為 Production 的環境會優先由 Salesforce 的支援團隊監控。要將環境標示為 Production,您有兩種選擇:

  1. 使用 Runtime Admin 工具。如需建立新環境或編輯現有環境的逐步說明,請參見管理指南的環境部分。
  2. 使用 Managed Runtime API。projects_target_createprojects_target_partial_update 端點都具有 is_production 參數。要使用這些端點將環境標示為 Production,請將 is_production 設為 true

根據預設,您最多可以將 10 個環境標示為 Production。要提高數量上限的話,請聯絡支援人員。

在環境中執行的網店程式碼稱為「套件」。使用 PWA Kit 中包含的開發人員工具,以產生套件並將其推送到 Managed Runtime。

套件是您的程式碼在特定時間點的快照。它是 不可變 的:套件在建立後,就無法變更。擁有完整且正確的套件歷史記錄,可以更輕鬆地排除部署的故障問題。

推送套件後,您可以使用 Runtime Admin 或 Managed Runtime API 來將套件指派為「已部署」。每個專案可以擁有多個套件,但每個環境只能有一個指派為已部署的套件。您可以隨時變更要將哪一個套件指派為已部署。如需更多資訊,請參閱推送和部署套件

為了協助您管理多個環境,每個環境也會屬於一個「專案」,而每個專案都屬於一個「組織」。一個組織可以包含多個網店的多個專案,而每個專案可以包含多個環境。Managed Runtime 的使用者可以屬於多個組織,以分隔不同的工作流。

每個組織總共可以擁有最多 100 個環境,以及最多 10 個 Production 環境。若您需要提高這些上限,請聯絡您的 Salesforce 支援代表。

組織在 Account Manager 中建立,並在 Managed Runtime 中複製。組織中的成員資格由 Account Manager 中的成員資格設定來決定。使用者可以作為成員或管理員,歸屬於組織。成員只能與自己有被指派到專案角色的 Managed Runtime 專案進行互動。管理員可以與組織內的所有專案進行互動。

使用者可擁有以下 Managed Runtime 專案功能:

  • 瀏覽: 在 Runtime Admin 中檢視專案。
  • 管理重新導向: 為專案管理重新導向。
  • 部署: 部署新套件或還原部署至較舊的套件。
  • 管理團隊: 檢視、新增、邀請、移除、編輯專案團隊成員的角色。

每位使用者將被指派一個專案角色,決定他們擁有什麼樣的功能權限。(每位使用者只能擁有 一個 角色。)專案角色可以指派給組織內的任何使用者。

以下表格顯示了每個角色的相關功能權限:

角色瀏覽管理重新導向部署管理團隊
管理員
開發人員
行銷人員
唯讀

在每個 Managed Runtime 環境中,已發佈套件中的 React 應用程式會在 Node.js 環境中執行。為了回應頁面要求並轉譯結果,我們使用 Express 網路架構,並由 PWA Kit 的轉譯路由系統提供支援。React、Node、Express 三者的組合,我們稱之為「應用程式伺服器」。(雖然就技術上而言,此應用程式伺服器執行的是「無伺服器」技術。)應用程式伺服器經過最佳化,可在提供低運算成本、高可用性、快速轉譯、大規模擴展能力的雲端基礎架構上執行。

因為 PWA Kit 的轉譯和路由系統可處理本機開發環境和 Managed Runtime 環境之間的差異,所以您的程式碼在部署時會以可預測的方式執行。這樣的可預測性能夠鼓勵您的開發團隊更頻繁地部署套件,增進團隊生產力。

應用程式伺服器目前支援傳輸層安全性 (TLS) 1.2 及以上版本。

所有網店套件都必須使用 Node 14.17+。

環境變數

在應用程式伺服器上執行的程式碼可以存取以下環境變數:

  • DEPLOY_TARGET:環境的 ID。
  • EXTERNAL_DOMAIN_NAME:環境中設定的網域名稱。
  • MOBIFY_PROPERTY_ID:環境所屬專案的 ID。

支援著應用程式伺服器的是幾個邊緣服務,包括:

  • 網路應用程式防火牆 (WAF),保護您的環境免受攻擊
  • Proxy 伺服器,加速 API 要求
  • 內容傳遞網路 (CDN),快取要求並加速頁面載入
  • 處理要求和重新導向的邊緣函式

我們的 Proxy 要求指南提供了 Proxy 伺服器和 CDN 的詳細資訊。我們的最大化您的快取命中率指南介紹了稱為要求處理器的邊緣函式。

Managed Runtime 的邊緣服務經過策略考量,分散在我們的公有雲端基礎架構上。每個服務都盡可能位於最接近使用者的位置,以提供更快的效能。

為了管理您的組織、專案、環境和套件設定,我們提供以下兩種不同的工具:

  1. Managed Runtime Admin,網頁式 UI。
  2. Managed Runtime API,提供與網頁式工具相同的功能及一些額外功能的 REST API。

請使用 Runtime Admin 工具處理例行任務,例如將新的程式碼套件部署至環境。在需要程式設計控制時可使用 API,例如在持續整合指令碼中自動建立環境。

管理工具可讓您自行進行許多設定,包括:

  • 允許的 IP 位址
  • 目前部署的套件
  • 部署區域
  • Proxy
  • 重新導向
  • 使用者權限
  • Production 環境旗標

部分設定需要您開啟支援要求,包括:

  • 靜態 IP 位址 (為了 VPN)

管理工具的存取權限由 Account Manager 角色和 API 金鑰控制。在持續整合 (CI) 和持續傳遞 (CD) 流程方面,您的組織通常會佈建專屬的機器人使用者和其各自的 API 金鑰。

有趣小知識:跟您的網店一樣,Runtime Admin 工具是部署在 Managed Runtime 的無頭式 React 應用程式。

建置網店時,請牢記 Managed Runtime 環境的以下限制:

  • / 路徑只接受 HTTP GET 要求。
  • 要求和回應大小不得超過 6 MB。
  • 不支援 Set-Cookie 標頭。
  • 應用程式伺服器要求執行時間限制為 20 秒。
  • 未處理的 Promise 拒絕會破壞應用程式轉譯。
  • 若要繞過 CDN 快取,您可以使用 HTTP 要求標頭:x-mobify-cachebreaker: 1

這樣您就已經對 Managed Runtime 的主要部分有所認識了,該來實際使用看看囉!可以從推送和部署套件指南開始。

在您能夠使用 Managed Runtime 之前,您必須要求存取權限。請聯絡您的 Commerce Cloud 管理員,請他們使用 Account Manager 將以下任一角色加到您的帳戶:Managed Runtime UserManaged Runtime Admin