写点什么

利用 AWS 打造高可用 SAP Hybris 系统

  • 2019-09-26
  • 本文字数:3252 字

    阅读完需:约 11 分钟

利用 AWS 打造高可用 SAP Hybris 系统

概述

SAP Hybris 是整个 e-commerce 领域的领先系统解决方案,许多客户在选择打造自己的 e-commerce 系统时,都会考虑选择 SAP Hybris. 这篇 blog 将会介绍如何利用 AWS 的服务打造高可用的 SAP Hybris. 同时,利用 Amazon Aurora 数据库,存储整个系统的用户相关数据,产品相关数据以及订单相关数据。


Solr 是 Apache 的开源项目,提供一个功能强大的搜索服务器,它支持 REST 风格 API。Solr 是基于 Lucene 的,Lucene 支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。Solr 在 e-commerce 电商系统中,通常作为搜索引擎使用。


Amazon Simple Storage Service (Amazon S3) 是一种对象存储,它具有简单的 Web 服务界面,可用于存储和检索 Web 上任何位置、任意数量的数据。它能够提供 99.999999999% 的持久性,并且可以在全球大规模传递数万亿对象。本篇文章设计的架构中利用 S3 作为相关媒体文件的存储用于存储整个系统的图片,脚本等静态资源。


Amazon Aurora 是一种与 MySQL 和 PostgreSQL 兼容的关系数据库,专为云而打造,既具有高端商用数据库的性能和可用性,又具有开源数据库的简单性和成本效益。同时,Amazon Aurora 已经被 SAP 认证作为 hybris 的数据库提供服务。


整个系统的架构图如下,需要注意的是在如果架构用于实际生产环境,建议将 Solr 服务器也进行高可用集群部署。


环境需求:

Hybris 安装包


https://help.sap.com/viewer/product/SAP_COMMERCE/1905/en-US


AWS Aurora 数据库


Application Load Balancer

构建 Hybris 服务器

1.将下载好的系统上传至 AWS EC2 服务器,可以利用 AWS S3 服务先上传安装包到桶中,在从 EC2 进行下载。


安装包解压后目录结构如下:



目录中的 hybris 为我们所需要的软件系统,其它文件的作用在这里不做深入解释,具体可以参考 SAP 官方文档。我们将 hybris 拷贝到根目录下方便后续操作。


\2. 进入/home/ec2-user/hybris/bin/platform 目录, 运行


. ./setantenv.sh
复制代码


进行安装环境的初始化。


3.接着运行


ant clean all
复制代码


进行初始化 hybris 的安装, 安装完毕后,hybris 的目录结构如下:



4.根据架构图中的设计我们需要利用 AWS Aurora 作为数据源,我们需要将 mysql 对应的驱动放入/home/ec2-user/hybris/bin/platform/lib/dbdriver/中,用于连接数据库。


配置数据库:

1.选择 Aurora 数据库引擎



2.确保多可用于部署勾选



3.设置 VPC 已经安全组的相关信息(确保 3306 端口开放给 EC2 所配置的安全组)


4.启动 Aurora 数据库

配置 Solr 搜索引擎:

启动一台新的 EC2 服务器,将 Hybris 安装包上传,并进行构建 hybris 系统部分的第一,二步骤。注意我们要对安装 Solr 的 EC2 服务器开放 8983 端口


修改/home/ec2-user/hybris/config/localextensions.xml, 修改为如下所示内容,该配置会启动一个只含有 Solr 服务器的 hybris 系统。


<hybrisconfig xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='../bin/platform/resources/schemas/extensions.xsd'>
<extensions>
<path dir='${HYBRIS_BIN_DIR}' autoload='false' />
<extension name='solrserver' />
</extensions>
</hybrisconfig>
复制代码


修改后进入目录/home/ec2-user/hybris/bin/platform/,运行


ant startSolrServer
复制代码


观察 Solr 服务器是否正常启动,正常启动的 Slor 会有如下显示:



配置 Hybris 服务器:


在这部分中,将利用配置文件完成和 Solr 服务器,Aurora 数据库,以及作为媒体存储的 S3 桶的集成配置,同时为了保证后期多台 EC2 服务器能够互相连通构成集群,这里也会利用 Jgroups 进行相关配置。


1.配置和 Solr 服务器的连接,在配置文件中增下如下配置,这里我们利用之前启动的用于部署 Solr 的 EC2 服务器的私有 IP 地址作为主机名:


solrserver.instances.default.autostart=false
solrserver.instances.standalone.autostart=true
solrserver.instances.standalone.mode=standalone
solrserver.instances.standalone.hostname=172.31.30.1
solrserver.instances.standalone.port=8983
solrserver.instances.standalone.memory=512m
复制代码


通过配置,启动的 Hybris 系统会连接配置文件所提供的 Solr 服务器,连接信息如图所示:



2.利用 S3 作为媒体存储的相关配置如下,这里需要用到 AKSK, 建议根据 AWS 安全最佳实践,利用 IAM 服务生成只有对 S3 存储桶操作权限的 AKSK 应用于此。{}部分需要根据环境定制


media.default.storage.strategy=s3MediaStorageStrategy
media.default.url.strategy=localMediaWebURLStrategy
media.globalSettings.s3MediaStorageStrategy.accessKeyId= media.globalSettings.s3MediaStorageStrategy.secretAccessKey=
media.globalSettings.s3MediaStorageStrategy.endpoint={s3.us-west-2.amazonaws.com}
media.globalSettings.s3MediaStorageStrategy.bucketId={hybrisbucket}
media.folder.media.storage.strategy=s3MediaStorageStrategy
media.folder.media.url.strategy=localMediaWebURLStrategy
复制代码


通过该配置,所有系统所需的静态文件包括图片,脚本等等文件都会存储在 S3 中,结构如下所示:



3.配置数据库的相关信息:


db.url=jdbc:mysql://hybris.cluster****.us-west-2.rds.amazonaws.com:3306/hybris?useConfigs=maxPerformance&characterEncoding=utf8
db.driver=com.mysql.jdbc.Driver
db.username=admin
db.password=
mysql.allow.fractional.seconds=true
复制代码


4.配置 Hybris 服务器集群相关的信息,这里绑定的 IP 地址仍然是 EC2 服务器的私有 IP 地址。


clustermode=true
cluster.nodes.autodiscovery=true
cluster.broadcast.methods=jgroups
cluster.broadcast.method.jgroups=de.hybris.platform.cluster.jgroups.JGroupsBroadcastMethod
cluster.broadcast.method.jgroups.tcp.bind_port=7800
cluster.broadcast.method.jgroups.channel.name=hybris-broadcast
cluster.broadcast.method.jgroups.configuration=jgroups-tcp.xml
cluster.broadcast.method.jgroups.tcp.bind_addr= 172.31.46.58
复制代码


配置后,hybris 系统会有如下相关的集群连接信息显示在启动过程中:



5.在测试完成后,我们利用该服务器作为基础, 建立镜像文件用于利用 AWS 自动扩展组实现 Hybris 系统的高可用扩展。


为了方便配置,在/home/ec2-user/下创建 setip.sh 脚本用于自动配置


#!/bin/bash
export y_ip=`curl http://169.254.169.254/latest/meta-data/local-ipv4 --silent`
echo "cluster.broadcast.method.jgroups.tcp.bind_addr= $y_ip" >> /home/ec2-user/hybris/config/local.properties
复制代码


利用该服务器配置创建映像。


配置 Auto Scaling 自动扩展组以及负载均衡 ALB

1.选择之前创建好的映像,创建启动配置,注意在创建启动配置部分,需要设置好相应的用户数据。数据详细代码如下:


#!/bin/bash
sudo yum update -y
/home/ec2-user/setip.sh
cd /home/ec2-user/hybris/bin/platform
. ./setantenv.sh
ant clean all >> /home/ec2-user/hybris/log/ant.log
sudo chown -RL ec2-user:ec2-user /home/ec2-user/hybris
su - ec2-user -c "cd /home/ec2-user/hybris/bin/platform;./hybrisserver.sh >> /home/ec2-user/hybris/log/startup.log"
复制代码


2.创建 ALB 目标组,这里要注意 hybris 的默认端口为 9001



3.创建负载匀衡器,需要注意的部分已经在图中标红




4.创建自动扩展组



这样如架构中所呈现的系统环境就我们就搭建好了,最后通过 ALB 的入口进行访问测试。



同时观察 hybris 系统的控制台,可以看到集群相关信息:


参考文档:

https://www.amazonaws.cn/rds/aurora/


https://lucene.apache.org/solr/


https://help.sap.com/viewer/product/SAP_COMMERCE/1811/en-US

作者简介

郭腾,AWS 中国团队的解决方案架构师,负责基于 AWS 的云计算方案架构咨询和设计。同时致力于 AWS 云服务在国内的应用和推广。在加入 AWS 之前,他曾就职于 SAP,从事技术支持和咨询相关工作。


本文转载自 AWS 技术博客


原文链接:


https://amazonaws-china.com/cn/blogs/china/use-aws-make-sap-hybris-system/


2019-09-26 17:551259
用户头像

发布了 1969 篇内容, 共 170.1 次阅读, 收获喜欢 84 次。

关注

评论

发布
暂无评论
发现更多内容

Aloudata AIR 推出 AI 数据画布:「拖拽+对话」即可实现跨源数据加工与查询

Aloudata

数据分析 数据开发 智能开发 数据编织

ITSM - 打破部门沟通壁垒,提升问题解决效率

智象科技

ITSM CMDB 一体化运维 工单管理 工单系统

Yolo模型训练的第一个Step

Jason黄

yolo

电能管理系统(源码+文档+讲解+演示)

深圳亥时科技

#开源

抢先体验智能测试时代,QA必备AI测试工具

测试人

人工智能 软件测试

白鲸开源“创客北京2025”再摘殊荣,聚焦Agentic AI时代数据基础设施建设

白鲸开源

大数据 开源 DataOps 白鲸开源 WhaleStudio

破解云VR教育普及难题:点量实时云渲染——实现跨终端无界协同

点量实时云渲染

3D渲染 vr 云渲染 虚拟现实 #云计算

Kafka4.0 可观测性最佳实践

观测云

kafka

天翼云第九代弹性云主机:让每一次计算快人一步

天翼云开发者社区

云主机

IT运维的"全局视角":如何实现全周期精准管控?

智象科技

ITSM CMDB IT运维 一体化智能运维平台

免费学习优秀作品!和鲸支持 2025 年第 18 届中国大学生计算机设计大赛大数据主题赛圆满收官!

ModelWhale

中国大学生计算机设计大赛 大数据主题赛

APP弱网测试完整攻略【国庆出游特辑版】

优测云服务平台

弱网测试

如何实现高效的日志收集与管理?

运维有小邓

上汽荣威携手火山引擎,豆包·深度思考模型全球首发上车M7 DMH

新消费日报

MyEMS:重新定义人与能源的关系 —— 一场藏在数据里的能源管理革命

开源能源管理系统

开源 能源管理系统

有点意思!Java8后最有用新特性排行榜!

王磊

最新财务机器人品牌榜:5大维度评出谁是真正的智能助手

Techinsight

Mermaid代码怎么变成流程图?6个Mermaid在线生成器盘点

职场工具箱

人工智能 流程图 Ai绘图 Mermaid AI生成流程图

非凸智能算法上线华福证券,打造高效交易新范式

非凸科技

小份数GEO服务助力中小企业

跑一跑

AI geoai

解码、优化、跃迁:MyEMS 驱动能源管理从经验到数据的范式升级

开源能源管理系统

开源 开源能源管理系统

打破能源认知盲区:MyEMS 开源系统如何重构管理范式、创造可持续价值

开源能源管理系统

开源 能源管理系统

亮相2025年服贸会,天翼云打造高质量算力服务新生态!

天翼云开发者社区

云计算

教你数分钟内创建并运行一个 DolphinScheduler Workflow!

白鲸开源

Java 大数据 开源 Apache DolphinScheduler 任务调度

【RFID智能工具柜哪家好】企业如何选到高效可靠的工具管理系统?

斯科信息

斯科信息 RFID智能工具柜

Ubuntu 22 下 DolphinScheduler 3.x 伪集群部署实录

白鲸开源

Java 大数据 ubuntu 开源 Apache DolphinScheduler

火山引擎 veCLI 发布,开启智能开发新模式

火山引擎开发者社区

火山引擎

百分点科技BD-OS获华为鲲鹏认证,全栈信创助推政企智能升级

百分点科技技术团队

从负荷分析定项目运维要点

Tecjt_锦图科技

App 加载慢到崩溃?三招帮你彻底告别 “转圈圈”!

xuyinyin

5 分钟 SAE 极速部署 Dify,赢取户外折叠椅和社区积分

阿里巴巴云原生

阿里云 Serverless 云原生 dify

利用 AWS 打造高可用 SAP Hybris 系统_服务革新_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章