天天看點

SAP Commerce Cloud 的 build 過程

build process

SAP Commerce Cloud 中的建構過程會根據您的代碼存儲庫中的資訊建構您的最終軟體。

Commerce Cloud 中的建構過程負責多項操作。

這些操作包括:

使用項目自定義克隆 Git 存儲庫。

下載下傳所需的工件。

應用自定義。

建構最終的軟體。

将軟體打包到 Docker 鏡像中。

将圖像上傳到 Docker 系統資料庫。

傳回有關要在目标 Commerce Cloud 環境中啟用的服務的資訊。

SAP Commerce Cloud 的 build 過程

Build Process Customization

建構過程需要考慮幾個自定義設定。

這些自定義設定包括:

core commerce

Data Hub

Javascript storefront

每個自定義設定都使用項目代碼存儲庫中的單獨目錄,從 repository-root 出發。

core-customize

datahub

js-storefront

建構過程在開始時确定每個鏡像的預期内容的哈希碼。

它需要考慮多方面的因素,例如:

artifacts 版本。

基本鏡像版本。

項目代碼存儲庫的内容。

然後它檢查在 Docker 系統資料庫中是否可以使用帶有此類哈希标記的鏡像:

如果可用 - 将跳過鏡像建構并在部署中使用現有鏡像。

如果它不可用 - 執行完整鏡像建構并在部署中使用新鏡像。

Docker Images

建構過程中,會生成下列鏡像。

For core commerce customization:

Platform

Solr

For Data Hub customization (optional):

For Javascript storefront (optional):

Javascript storefront with static content.

Javascript storefront with server-side rendering.

Services 和 鏡像

建構過程組成了部署期間使用的服務和 Docker 鏡像的清單。 有些服務是可選的,無法自定義的鏡像版本是确定的。

服務及其鏡像的最終清單如下所示:

Accelerator storefront service → customized Platform image

Backoffice service → customized Platform image

Admin service → customized Platform image

API service → customized Platform image

Solr service → customized Solr image

Zookeeper service → customized Zookeeper image

Image-processing service → image-processing image

Data Hub service → customized Data Hub image

Javascript storefront service → customized Javascript storefront image

Javascript storefront SSR service → customized Javascript storefront SSR image

該建構與環境無關,這意味着同一個建構可以與多個 Commerce Cloud 環境一起使用。 這種方法的優點是在開發或暫存環境中測試的相同代碼被部署到生産環境中。

與環境緊密相連的設定包括:

Domain names.

IP address.

SSL certificates.

URLs or credentials to resources (database, media storage).

URLs or credentials to any external systems.

Credentials for technical users.

Machine size or available amount of resources (CPU, memory).

此類設定無法出現在最終建構中,因為它将建構與特定環境結合在一起。

SAP Commerce Cloud 的 build 過程

環境角色影響環境性能和環境的目的。 一般規則是生産環境比 staging 環境快,staging 環境比開發快。 環境可以有不同的配置,例如不同的服務屬性。

在執行部署時考慮環境的目的。建議:

執行一次建構。建構與環境無關。

将建構部署到所有環境,從開發開始,然後登台,最後到生産。

在将建構提升到下一個環境之前,在每個環境上測試建構。

建構環境與最終的 Commerce Cloud 環境分離。 這意味着特定于建構的資源(例如工件存儲庫)僅可用于建構環境。

同樣,特定于最終 Commerce Cloud 環境的資源(例如資料庫或媒體存儲)對于建構環境不可用。 由于建構與環境無關,是以在建構期間不要存儲或涉及任何特定于環境的資源,例如外部系統。