SAP Commerce Cloud 架构概述
SAP Commerce Cloud Architecture
盡管我們在“SAP Commerce Cloud 入門”一文中介紹了 SAP Commerce Cloud 的一些高級架構,但在此我們將重點介紹在您的項目期間需要做出的一些實際架構決策。 使用 SAP Commerce Cloud 時,您可能會發現存在一些在 On-Premises 項目中不存在的限制。 然而,事實并非如此。這只是以不同方式設計您的解決方案的問題。
High-Level Software Architecture
SAP Commerce Cloud 包含可用于創建定制商務解決方案的強制性和可選軟件包的組合。 這些包括:
云自動化
- Microsoft Azure - 公共云基礎架構提供商
- SAP 業務技術平臺 - 用于托管 SAP Commerce Cloud Portal、SAP ntegration Suite 和 SAP Extension Suite 等應用程序/服務的業務平臺
- Kubernetes - 用于編排運行商業解決方案所需的 docker 節點
可定制的軟件
- SAP Commerce - 在 Cloud Portal 構建過程中與您的自定義代碼結合的核心平臺
- Accelerator - 基于 SAP Commerce 中提供的模板的定制店面。
- Spartacus JavaScript 店面 - 一個解耦的開源店面,它使用全方位商務連接 (OCC) API 與您的 SAP Commerce Cloud 環境進行通信。 有關更多詳細信息,請參閱為您的 SAP Commerce Cloud 解決方案選擇要使用的店面。
- 行業加速器(文檔) - 行業特定店面模板
- 數據中心(文檔)- 用于為每個 SAP Commerce Cloud 環境導入/導出主數據的選項。 有關更多詳細信息,請參閱 SAP Commerce Cloud 的集成選項。
- SAP 擴展套件 - 基于開源項目“Kyma”的微服務擴展層。 有關更多詳細信息,請參閱 SAP Commerce Cloud 的集成選項。
Additional Server Hosting & Third-Party Software Applications
通常,您需要 SAP Commerce Cloud 解決方案與第三方應用程序進行交互。 如果您的第三方應用程序需要訪問服務器或無法通過固定的構建和部署過程實現(即需要的不僅僅是通過“ant all”目標可以完成的工作),那么它就不能成為您的 SAP Commerce 的一部分 云代碼,需要托管在其他地方。 本節更詳細地記錄了一些常見示例,但其他選項可能包括第三方 CMS 或為二進制包設置私有存儲庫。
在規劃您的應用程序時,請仔細考慮哪些應用程序、二進制文件或基礎架構組件(超出 Commerce 應用程序和數據庫)構成您的目標架構的一部分。 本節中的示例不排除更多樣化的目標架構,但確實需要一種架構設計,以促進生產性 SAP Commerce Cloud 訂閱與單個項目所依賴的其他組件(不由 SAP 提供)之間的關注點分離 商務云)。
Continuous Integration / Continuous Delivery (CI/CD)
如果您正在尋找復雜的自動化管道或每次提交構建,您將需要設置自己的 CI/CD 實例。 這將為您提供靈活性和控制力,以確保在構建/部署到共享 SAP Commerce Cloud 環境之一之前構建和測試您的代碼。 您可以使用 Commerce Cloud API 遠程執行構建/部署。 您的 CI/CD 實例應該能夠連接到 SAP Commerce Cloud 使用的同一個 Git 存儲庫。 CI/CD 應用程序的位置并不重要,因為它不會直接影響 SAP Commerce Cloud 解決方案的性能。 如果您發現從 Git 存儲庫中提取代碼的延遲太長,您可以考慮更換您的 CI/CD 應用程序的托管位置。 有關為 SAP Commerce Cloud 解決方案設置 CI/CD 的更多信息,請參閱使用 SAP Commerce Cloud 實施持續交付。
Image Resizing
圖像大小調整通常在 Commerce 中通過擴展完成,該擴展通常依賴于安裝在 Commerce 服務器上的第三方軟件 (ImageMagick)。 在 Cloud Automation 1912 版本中,SAP Commerce Cloud 中提供了圖像轉換服務,并且可以在清單文件中包含 cloudmediaconversion 擴展時啟用。
Third Party Application
如果您的 SAP Commerce Cloud 解決方案需要尚未由第三方托管的應用程序,您應該考慮在何處托管它。 建議嘗試通過在與 Commerce Cloud 訂閱相同的 Azure 日期中心運行它來盡量減少延遲。 如果您不知道正在使用哪個數據中心,您可以通過云可用性中心找到此信息。 如果您不想使用 Azure,您可以在同一地區尋找等效的公共云提供商,盡管當呼叫轉到外部數據中心時可能會有額外的延遲。 如果它是一個異步調用或一個不經常發生的調用,那么這種額外的延遲可能不是您的解決方案的關鍵。
上面的示例包含一個在自托管服務器上運行的應用程序,并公開 REST 服務,這些服務可由您的一個或多個 SAP Commerce Cloud 方面調用。
E-mail Service
SAP Commerce 使用 Web 內容管理系統 (WCMS) 模塊來定義和生成電子郵件,從而利用在電子郵件文本中呈現的 WCMS 組件。 在幕后,Apache Commons 電子郵件庫提供了所有必需的軟件基礎設施,將解決方案與簡單郵件傳輸協議 (SMTP) 聯系起來。 SAP Commerce Cloud 充當客戶端,但需要 SMTP 服務器/服務。
SAP Commerce Cloud 不提供 SMTP 服務器,這意味著您必須提供備用 SMTP 策略。
Cloud Hot Folders (Extended Hot Folders)
Hot Folders 已發展成為 SAP Commerce Cloud 的基于文件的集成策略,現在稱為 Cloud Hot Folders。
下圖概括地顯示了該解決方案如何從 SAP 基礎架構上的 SAP Commerce Cloud 演變為新的 SAP Commerce Cloud。 主要更新如下:
- 遠程存儲支持(Azure 云存儲)
- 支持 ZIP 文件(核心數據、樣本數據和原始 ImpEx 文件)
- 支持 URL 媒體文件
- 文件排序
- 改進的監控
在 SAP Commerce Cloud 中,Hot Folders 模塊已擴展為包括上述改進。 由于 SAP Commerce Cloud 使用臨時磁盤存儲,不再提供 SSH 文件傳輸協議 (SFTP) 服務器(用于上傳媒體)或數據文件(用于導入)。 相反,您有一個使用 Azure Blob 存儲作為文件源的云熱文件夾。
Caching
Content Delivery Network
獲取要緩存的端點的 IP(例如,店面、后臺)。 要在 Cloud Portal 中執行此操作,請選擇環境,然后單擊端點的端點鏈接。 當編輯端點屏幕打開時,找到基本配置部分中的域字段。 端點的 DNS 名稱是域地址。 您可以嘗試使用 NS 查找來獲取 IP.
在您的環境期間,您的端點的 IP 是靜態的。 如果您的環境被重新配置,IP 很可能會改變。 因此,您還需要通過 CDN 提供商進行更新。
將這些 IP 提供給您的 CDN 提供商。
如果您的端點不可公開訪問,請確保您已將 CDN 添加到 IP 過濾器列表中。
Region Cache
SAP Commerce Cloud 利用 SAP Commerce 的現有區域緩存。 但是,由于 SAP Commerce Cloud 構建過程控制 Java 堆大小,這可能因環境而異,因此需要以靈活的方式配置緩存區域,而不是在內部設置固定值。
Cronjobs Execution
準備使用 SAP Commerce Cloud 時的一個關鍵考慮因素是,在處理代表生產的數據集時,確保任何批量處理作業在“backgroundProcessing”方面的固定資源占用范圍內可靠運行。 如果您從 SAP 基礎架構上的 SAP Commerce Cloud 或本地實例遷移,則尤其如此。 ‘backgroundProcessing’ 方面將運行任何自動觸發的 cronjob; 如果您從“后臺”方面手動觸發作業,它將在觸發它的節點上運行。
例如,可以開發加載價格信息的批量處理作業,將整個價格行文件加載到內存中進行處理。 在處理文件導入時,這通常被認為是不好的做法。 原因在于,雖然在使用小數據集進行測試時,這可能在開發環境中可靠地工作,但在生產環境中,實際價格行文件的大小可能有數百兆字節,并且需要顯式增加分配給 Java 虛擬機的資源才能將文件可靠地加載到 內存中。 如果這種情況發生在 SAP Commerce Cloud 上,則無法擴展分配給單個“后臺處理”節點的資源。
因此,所有批量處理作業都應開發為:
- 有效利用分配的資源,批量導入并主動釋放引用,以在整個導入過程中實現一致的內存配置文件。
- 避免不必要地將大型數據集加載到內存中。
- 在“backgroundProcessing” aspect 分發大批量處理任務。
使用現有項目遷移到 SAP Commerce Cloud 的客戶應檢查其批量處理作業,以驗證他們是否遵守了這些準則。
Conclusion
盡管 SAP Commerce Cloud 以一致的架構提供了大部分基礎設施,但總會有外部系統需要與您的商務解決方案進行交互。 正確理解 SAP Commerce Cloud 現有架構的特性和優勢將有助于您設計新的集成。
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP Commerce Cloud 架构概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大琴节祝福语
- 下一篇: 使用 SAP Business Appl