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