当前位置: 首页 > 后端技术 > Java

SAPCommerceCloud架构概述

时间:2023-04-01 17:07:32 Java

SAPCommerceCloud架构尽管我们在“SAPCommerceCloud入门”一文中介绍了SAPCommerceCloud的一些高级架构,但在这里我们将重点介绍您在使用过程中需要做的一些事情项目实际架构决策。在使用SAPCommerceCloud时,您可能会发现一些本地项目中不存在的限制。然而,事实并非如此。这只是以不同方式设计解决方案的问题。高级软件架构SAPCommerceCloud包含可用于创建自定义商务解决方案的强制性和可选软件包的组合。其中包括:云自动化MicrosoftAzure-公共云基础设施提供商SAP业务技术平台-用于托管应用程序/服务的业务平台,例如SAPCommerceCloudPortal、SAPIntegrationSuite和SAPExtensionSuiteKubernetes-用于编排和运行业务解决方案Docker节点场景可定制软件所需的SAPCommerce-核心平台在云门户构建期间与您的自定义代码相结合加速器-基于SAPCommerce中提供的模板的自定义店面。SpartacusJavaScriptStorefront-一个解耦的开源店面,使用OmniCommerceConnectivity(OCC)API与您的SAPCommerceCloud环境通信。有关详细信息,请参阅选择店面以用于您的SAPCommerceCloud解决方案。行业加速器(文档)-行业特定的店面模板数据中心(文档)-为每个SAPCommerceCloud环境导入/导出主数据的选项。有关详细信息,请参阅SAPCommerceCloud的集成选项。SAPExtensionSuite-基于开源项目“Kyma”的微服务扩展层。有关详细信息,请参阅SAPCommerceCloud的集成选项。额外的服务器托管和第三方软件应用程序通常,您需要SAPCommerceCloud解决方案来与第三方应用程序交互。如果您的第3方应用程序需要访问服务器或无法通过固定的构建和部署过程访问服务器(即需要的不仅仅是通过“antall”目标可以完成的操作),那么它不能成为您的SAPCommerceCloud代码的一部分,需要托管在别处。本节更详细地记录了一些常见示例,但其他选项可能包括第三方CMS或为二进制包设置私有存储库。在规划您的应用程序时,请仔细考虑哪些应用程序、二进制文件或基础结构组件(除了Commerce应用程序和数据库)构成您的目标体系结构的一部分。本节中的示例不排除更多样化的目标架构,但确实需要一种架构设计,以促进高效SAPCommerceCloud订阅与其他组件(非SAP提供)之间的关注点分离,各个项目依赖于BusinessCloud)。持续集成/持续交付(CI/CD)如果您正在寻找复杂的自动化管道或每次提交构建,您将需要设置自己的CI/CD实例。这将为您提供灵活性和控制力,以确保您的代码在构建/部署到共享的SAPCommerceCloud环境之一之前构建和测试。您可以使用CommerceCloudAPI远程执行构建/部署。您的CI/CD实例应该能够连接到SAPCommerceCloud使用的同一个Git存储库。CI/CD应用程序的位置无关紧要,因为它不会直接影响SAPCommerceCloud解决方案的性能。如果您发现从Git存储库中提取代码的延迟时间过长,您可能会考虑更改托管CI/CD应用程序的位置。有关为SAPCommerceCloud解决方案设置CI/CD的更多信息,请参阅使用SAPCommerceCloud持续交付。调整图像大小调整图像大小通常是在Commerce中使用通常依赖于安装在Commerce服务器上的第三方软件(ImageMagick)的扩展来完成的。在CloudAutomation版本1912中,图像转换服务在SAPCommerceCloud中可用,并且可以在清单文件中包含cloudmediaconversion扩展时启用。第三方应用程序如果您的SAPCommerceCloud解决方案需要一个尚未由第三方托管的应用程序,您应该考虑在何处托管它。建议通过在与CommerceCloud订阅相同的AzureDateHub上运行它来尽量减少延迟。如果您不知道正在使用哪个数据中心,您可以通过云可用性中心找到此信息。如果你不想使用Azure,你可以在同一地区找到一个等效的公共云提供商,尽管当调用转到外部数据中心时可能会有额外的延迟。如果它是异步调用或不经常发生的调用,那么这种额外的延迟可能对您的解决方案并不重要。上面的示例包含一个在自托管服务器上运行的应用程序,并公开可由SAPCommerceCloud的一个或多个方面调用的REST服务。电子邮件服务SAPCommerce使用Web内容管理系统(WCMS)模块来定义和生成电子邮件,同时利用电子邮件文本中呈现的WCMS组件。在幕后,ApacheCommons电子邮件库提供了所有必要的软件基础设施,以便将解决方案与简单邮件传输协议(SMTP)连接起来。SAPCommerceCloud充当客户端,但需要SMTP服务器/服务。SAPCommerceCloud不提供SMTP服务器,这意味着您必须提供备用SMTP策略。CloudHotFolders(扩展热文件夹)HotFolders已经发展成为SAPCommerceCloud的基于文件的集成策略,现在称为CloudHotFolders。下图从高层次展示了该解决方案如何从SAP基础设施上的SAPCommerceCloud演变为新的SAPCommerceCloud。主要更新如下:远程存储支持(Azure云存储)支持ZIP文件(核心数据、示例数据和原始ImpEx文件)支持URL媒体文件文件排序改进的监控在SAPCommerceCloud中,HotFolders模块具有已扩展以包含上述改进。由于SAPCommerceCloud使用临时磁盘存储,因此不再提供SSH文件传输协议(SFTP)服务器(用于上传媒体)或数据文件(用于导入)。相反,您有一个使用AzureBlob存储作为文件源的云热文件夹。CachingContentDeliveryNetwork获取要缓存的端点的IP(例如店面、后台)。要在CloudPortal中执行此操作,请选择环境并单击端点的Endpoints链接。当“编辑端点”屏幕打开时,在“基本配置”部分找到“域”字段。端点的DNS名称是域地址。您可以尝试使用NS查找来获取IP。在您的环境中,端点的IP是静态的。如果您的环境被重新配置,IP很可能会改变。因此,您还需要通过您的CDN提供商进行更新。将这些IP提供给您的CDN提供商。如果您的端点不可公开访问,请确保您已将CDN添加到IP过滤器列表中。区域缓存SAPCommerceCloud利用SAPCommerce的现有区域缓存。但是,由于SAPCommerceCloud构建过程控制Java堆大小,该大小会因环境而异,因此缓存区域需要以灵活的方式配置,而不是在内部设置固定值。Cronjobs执行准备使用SAPCommerceCloud时的一个关键考虑因素是,在处理代表生产的数据集时,确保任何批处理作业在“后台处理”方面的固定资源足迹内可靠地运行。如果您要从SAPCommerceCloud或SAP基础设施上的本地实例迁移,则尤其如此。'backgroundProcessing'方面将运行任何自动触发的cronjobs;如果您从“后台”方面手动触发作业,它将在触发它的节点上运行。例如,可以开发加载价格信息的批处理作业,将整个价格行文件加载到内存中进行处理。在处理文件导入时,这通常被认为是不好的做法。原因是虽然这在开发环境中使用小数据集进行测试时可能可靠地工作,但在生产环境中实际价格行文件大小可能为数百兆字节并且需要显式增加对Java虚拟机的资源分配可靠地将文件加载到内存中。如果这种情况发生在SAPCommerceCloud上,则无法扩展分配给单个“后台处理”节点的资源。因此,所有批处理作业都应开发为:有效利用分配的资源、批量导入和积极释放引用,以在整个导入过程中实现一致的内存配置文件。避免不必要地将大型数据集加载到内存中。在“backgroundProcessing”方面分发批量处理任务。将现有项目迁移到SAPCommerceCloud的客户应查看他们的批处理作业,以验证他们是否遵守这些准则。结论尽管SAPCommerceCloud在一致的架构中提供了大部分基础设施,但总会有外部系统需要与您的商务解决方案进行交互。正确理解SAPCommerceCloud现有架构的特性和优势将有助于您设计新的集成。更多Jerry原创文章在这里:《王子熙》: