部署概觀
以下主題會討論將Commerce應用程式部署至Adobe Commerce 2.2版和更新版本的生產網站程式。 Adobe建議將此部署方法用於擁有大型網站,但不想在部署期間經歷停機時間的使用者。
如果您在單一電腦上部署Commerce,而且可以在部署期間容許某些停機時間,請參閱單一電腦部署。
管道部署
在Commerce 2.2版中,Adobe推出 管道部署,作為以最少停機時間部署到生產環境的新方式。 此部署過程發生在不同的系統中,並為所有管道部署系統提供維護一致配置的方法。 這是簡單但功能強大的模型,可讓您將一般組態設定與系統特定設定(例如主機和連線埠)或敏感設定(例如名稱和密碼)分開。
若要使用管道部署,Adobe假設您是:
- 經驗豐富的系統整合商,精通Adobe Commerce設定選項。
- 管理大型Commerce網站(數千個庫存單位(SKU)),並將生產網站的停機時間降至最低。
- 瞭解PHP程式設計。
- 使用原始檔控制方法的經驗豐富。
- 您的程式碼位於原始檔控制存放庫中。 在本指南中,我們假設您使用Git型存放庫。
減少停機時間
當您在不同於生產系統的電腦上部署靜態資產並編譯程式碼時,可將停機時間縮到最短。 生產系統的停機時間以傳輸靜態檔案和編譯的程式碼至伺服器所需的時間為限。
部署系統
我們使用下列辭彙來說明與部署有關的系統。
-
開發系統 — 開發人員用來自訂程式碼的機器;以及從Commerce Marketplace安裝擴充功能、主題和語言套件。 此外,您也會在開發系統上變更所有設定。 您可以有許多開發系統。
-
建置系統 — 您部署靜態資產並編譯生產系統程式碼的一個系統。 由於您是在非生產用的系統上建置這些資產,因此可將生產系統的停機時間減至最少。
您的組建系統不需要安裝Commerce。 它只需要Commerce程式碼,不需要資料庫連線。 此外,您的組建系統不需要是實體上獨立的伺服器。
-
暫存系統—選擇性。 您可以選擇設定測試系統,用於所有整合程式碼的最終測試,包括使用者驗收測試(UAT)。 以設定生產系統的相同方式設定中繼系統。 除了測試不是您的即時商店且不會處理客戶訂單外,測試與生產完全相同。
-
生產系統 — 您的即時商店。 您應該在這裡進行最小的直接設定變更,並且肯定沒有未在測試執行個體上測試的任何設定。 如果可能,請使用已在暫存/開發執行個體上測試的資料修補程式進行設定變更。
其他部署方法
您可以選擇使用其他部署方法,包括:
- 使用SCP或rsync進行安全複製
- 卡皮斯特拉諾
- Deployer工具
管理設定
在12因素應用程式設計🔗中的因素3之後建立模型,Commerce現在會將每個系統的組態儲存在系統本身。 (開發組態設定儲存在開發系統上,生產設定儲存在生產系統上。)
我們提供同步處理系統組態的方法:
-
共用組態 — 不是系統專屬或敏感的設定。
共用設定是您想要在開發和生產系統上一致的設定。 在開發(或雲端基礎結構 整合)系統上的Adobe Commerce)的Admin中設定共用設定。
共用組態檔
app/etc/config.php
應包含在原始檔控制中,以便在開發、組建和生產系統之間共用。 -
系統特定組態 — 因系統而異的設定,例如搜尋引擎主機名稱和連線埠。
-
敏感組態 — 應該在 不 的原始檔控制中的設定,因為它們會公開個人識別資訊(PII)或API金鑰或密碼等設定。
系統特定組態檔
app/etc/env.php
應該 不應 包含在原始檔控制中,或在系統之間共用。 請改用magento config:set
和magento:sensitive:set
命令為您的生產系統中的這些設定提供值。
在大多數情況下,您無法在管理員中編輯在共用、系統特定或敏感設定中設定的設定選項。 這有助於讓您的設定在所有系統中保持一致。 (您可以選擇使用不含--lock
選項的magento config:set
命令來設定可在Admin中編輯的設定。)
每個Commerce組態選項都有唯一的 組態路徑。 若要設定組態選項的值,您可以使用CLI指令或環境變數來設定特定系統上該組態路徑的值。