受疫情影响消费者习惯产生扭转,刺激了寰球电商行业的疾速倒退。除了依靠第三方电商平台将产品销售给消费者之外,企业通过品牌官网或者自有电商平台销售商品也是近几年电商畛域疾速倒退的商业模式。独立站电商模式能够进行多方面、全渠道的互联网市场拓展,推广所带来的流量、品牌印象、知名度等都齐全属于电商企业本人所有,从而逐渐建设品牌优势倒退私域流量。
亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注 / 珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库! |
比照第三方平台卖家,本人搭建独立站须要实现建站、流量经营、订单履约、用户经营全链路的工作。如何疾速建站成为电商企业须要思考的第一个问题,目前建站次要有三种形式,每个企业不同的需要和技术现状决定各自适宜的建站形式。第一种是全自主开发的形式,尽管能够实现最大水平的自定义和差异化然而须要投入大量研发工夫和老本;第二种是抉择 SaaS 零碎疾速构建电商平台,建站服务商会为企业搭建信息化所须要的所有网络基础设施及软件、硬件运作平台,SaaS 建站的确是最便捷的形式,然而随着电商平台规模的壮大可能会发现一些弊病,比方性能可扩展性,数据信息安全以及佣金。第三种是基于开源软件开发电商平台,开源的电商框架会具备库存治理、商品列表、购物车、下单、欲望清单以及领取这些必须的根底性能。开源组件的劣势就在于灵活性强,企业能够依据理论使用需要自主二次开发性能板块构建自定义的电商平台,满足不同阶段的需要。这种建站形式升高了开发门槛,也进步了自由度和保障了数据安全,然而须要自行治理底层基础设施保障平台的稳定性。应用 Serverless 的架构来托管利用能够很大水平解决这个痛点,用户只须要治理利用代码而不须要运维底层的资源,另外 Serverless 的部署架构对于关注老本效益的用户来说是一个很好的终点。
本文次要会解说如何利用亚马逊云科技 Serverless 服务 Lambda 做计算资源来托管开源的 WooCommerce,Lambda 以及其余无服务器服务内置性能扩大和弹性能够省去运维的懊恼,同时按运行工夫计费的粒度进步了老本效率。为了帮忙客户疾速上手,咱们还提供预约义的 CloudFormation 模版可能一键部署所有资源,包含网络环境,计算资源,数据库等,在两个小时内就能搭建起一个电商平台。
WooCommerce 简介
WooCommerce 是一个基于 WordPress.org 的开源的电商网站插件,它能够帮忙企业在 WordPress 的根底上疾速的构建一个在线电商平台,提供商品列表,购物车,下单和领取等电商相干性能。WooCommerce 在寰球有超过 1000 万的下载量,在拜访两超过百万的网站中 WooCommerce 占了 27%,并且用户数量还在持续增长中。宏大的用户群也确保了 WooCommerce 领有十分沉闷的互动社区。这也意味着,你将退出互联网上增长最快的开源社区之一。此外,应用 WooCommerce 也就等于你能够应用超过 50,000 个 WordPress 插件,包含很多专门为 WooCommerce 设计的插件。简洁明了的店铺格调也是电商平台给予消费者直观的体验之一,WooCommerce 具备丰盛主题模版。所有 WordPress 主题都实用于 WooCommerce 插件,卖家能够从大概 1000 个 WooDesign 主题中自由选择。这一点较 Magento 和 Shopify 更有劣势。此外,卖家还能够从 ThemeForest 等板块获取精美主题。为了笼罩更多终端用户电商平台须要思考到挪动端的兼容,WooCommerce 在设计时就退出了挪动敌对个性,所以无论访客应用哪种设施浏览店铺,它都能够安稳地运行并完满地出现商品。同时 WooCommerce 提供了很多剖析工具和店铺治理性能。通过商品页能够看到单个商品的销售量,分类页则能以商品的类别进行数据统计。当然,你也能够依据日期和不同品牌来统计每日和每月的销售量。WooCommerce 默认提供 PayPal 和 Stripe 付款。不过,因为 WooCommerce 是一个开源平台,因而许多区域性的或者不是特地公众的第三方领取服务也已为 WooCommerce 建设了集成(P.S. 你也能够找到微信领取和支付宝的扩大插件)。同时,它也反对次要的信用卡、借记卡、网上银行等。WooCommerce 的收费易用,轻量级和可扩展性成为大量独立站建站的第一抉择。因为 WooCommerce 是在 WordPress 根底上装置插件做电商平台,所以第一步就须要装置部署 WordPress,比方创立计算实例 Amazon EC2 和数据库 RDS,还有网络 VPC 和平安等基础设施的布局,而后在域名托管处比方 Route53 将本人的购买的域名解析到对应的资源上。如果须要进一步提高用户访问速度,边缘减速服务 Amazon CloudFront 也是必不可少的局部,另外架构的高可用和弹性也会影响到用户体验,能够通过负载均衡器 ELB 和弹性扩容组 AutoScaling 来实现。上述参考架构阐明了在亚马逊云上部署 WordPress 和 WooCommerce 的残缺最佳实际。
- 用户申请从 Amazon CloudFront (1) 中的边缘缓存进来,Amazon CloudFront 将内容缓存在最终用户左近的边缘节点,以放慢用户访问速度。
- 动静申请回源到 Application Load Balancer (4)转发到 WordPress 的 EC2 实例,边缘节点没有命中的动态申请回源到 S3 存储桶。
- WordPress 的 EC2 实例配置为 Auto Scaling 组运行(6)。
- ElastiCache 集群 (7) 缓存频繁查问的数据以放慢响应速度。
- 应用 Amazon Aurora MySQL 实例(8) 托管 WordPress 数据库。
- WordPress 的 EC2 实例通过每个可用区中的 EFS 挂载指标共享 EFS 文件系统实现数据共享 (9)。
Serverless-WooCommerce 建站计划架构
为了解决用户部署基础设施的工作,本文提供的 Serverless-WooCommerce 一键部署计划是基于亚马逊云无服务器服务 Amazon Lambda 来部署 WordPress 和 WooCommerce。比照前文提到基于服务器部署 WordPress 和 WooCommerce,Serverless-WooCommerce 次要是用 Lambda 来实现动静申请的解决,替换了原有架构中的负载均衡器 ELB 和弹性扩大组 Autoscaling,架构图详情如下:
- Amazon Route53 负责域名的解析,Amazon CloudFront 通过边缘节点减速用户的拜访。
- 用户的动静申请回源到 Lambda URL 触发后续 Lambda 运行,边缘节点没有命中的动态申请回源到 S3 存储桶。
- Lambda Adapter 接管到 Lambda 事件并将其转换成 WordPress 能解决的 HTTP 申请。
- 数据库层应用 ElastiCache 集群缓存频繁查问的数据以放慢响应速度,应用 Amazon Aurora MySQL 实例做数据库。
- 通过每个可用区中的 EFS 挂载指标将 Amazon EFS 文件系统挂载到 Lambda 本地目录,实现 WooCommerce 的共享文件系统。
疾速部署 WooCommerce on serverless
通常咱们会应用 GUI 和 CLI 来创立和治理云资源,然而随着零碎的复杂度晋升,底层资源的减少,手动治理会成为一个噩梦,一个很小的人为失误可能导致系统解体。本计划采纳 Amazon 原生的 IaC(Infrastructure as Code)工具,CDK(Cloud Development Kit)部署云资源。CDK 是 cloudformation 的高级封装,能够通过高级语言去定义云资源。应用 CDK,通过代码的形式(而非手动流程)来治理云资源,能够确保每次置备的环境都完全相同,并防止产生未记录的长期配置更改。CDK 也能够和 DevOps 联合起来。本解决方案通过 CDK 一键部署所有资源,为缩小试验老本,在 CDK 模板里拉起的 ElastiCache 和 RDS aurora 实例规模很小,客户可自行批改 CDK 模板,调整资源规模以适应生产。
前提
具备 亚马逊云科技 账户管理员拜访权限的 IAM 用户身份。
如果您在本地运行本我的项目须要提前装置 Amazon CDK 与 CLI,您能够抉择应用 Cloud9。另外须要留神 AWS CLI 版本须要在 19 以上,Amazon CDK 版本须要在 2.24 以上。
一个可用于公网拜访的域名
部署无服务器电商网站基础设施
- 获取部署代码
git clone <https://github.com/aws-samples/serverless-WooCommerce-workshop.git>
- 初始化 CDK 我的项目
# 通过 Cli 获取账户相干信息
aws sts get-caller-identity
#填入上述命令返回的 Account-id 替换以下命令的 ACCOUNT-NUMBER
`cdk bootstrap aws``:``//<ACCOUNT-NUMBER>/<REGION>`
3. 配置环境变量
- 创立环境变量文件:复制 cdk 目录下的暗藏文件.env.example,重命名为.env
- 替换示例文件中的域名:用提前准备好的可公开拜访的自定义域名,替换如下配置中的域名局部,该域名须要在 route 53 外面有托管区
- 替换配置文件中对应的密钥:拜访网站: https://keys.live.lambdashop.xyz/ 生成随机密钥,并替换配置文件中对应的密钥
`# 域名替换局部
# a DNS domain hosted on Route53`
`ROUTE53_HOSTEDZONE``=<``site``.``example``.``com``>`
`# the name for your site`
`ROUTE53_SITENAME``=<``site``.``example``.``com``>`
`# specifyWordPress environment: development, staging or production.`
`WP_ENV``=``production`
`# URL forWordPress home`
`WP_HOME``=``https``:``//<site.example.com>`
`# URL forWordPress root. Bedrock is under /wp`
`WP_SITEURL``=``https``:``//<site.example.com>/wp
#密钥替换局部
# Generate your keys with 'openssl rand -base64 48'
AUTH_KEY="replace me..."
SECURE_AUTH_KEY="replace me..."
LOGGED_IN_KEY="replace me..."
NONCE_KEY="replace me..."AUTH_SALT="replace me..."
SECURE_AUTH_SALT="replace me..."
LOGGED_IN_SALT="replace me..."
NONCE_SALT="replace me..."
`
4. 部署网站,大概须要 25 分钟
cd cdk
npm install
make diff
make deploy
5. 等到返回 Stack ARN 和对应资源的拜访链接示意部署实现
装置配置 WordPress 与 WooCommerce
- 拜访上一步设定的自定义域名再填入网站题目及管理员明码等信息,点击装置 WordPress
- 待 WordPress 装置实现之后点击 Log In 登陆到管理控制页面
- 点击控制台左侧 Appearance 依据本人的爱好抉择,以装置 Blocksy 为例
- 装置好之后 WordPress 页面右边导航条会呈现 Blocksy,点击之后在 starter sites 浏览页面的根本款式
- 装置必要的 Blocksy WordPress 插件,点击控制台左侧 plugins,点击装置 Stackable – Gutenberg Blocks,同样的操作装置 WPForms 用于留言板 , Query Monitor 则能够帮忙咱们在开发环节调试查看以后页面性能,最初装置 WooCommerce 插件
- 装置激活 WooCommerce 后会跳转到 WooCommerce 网站配置页面,依据理论状况配置商家地址,所售物品类别与数量等。而后在 WordPress 治理页面右边导航条持续配置 WooCommerce 商店信息,包含商品信息,领取形式,税率,发货形式等等。
- 应用 Blocksy 配置 WooCommerce,使其成为一个可用的电商网站。
a. 删除 wordpress 已有页面, 点击页面左侧 Pages => 全选 => Move to Trash => Apply
b. 导入 Blocksy 预留主题,点击页面左侧 Blocksy => Starter Sites => Gadgets => import
c. 勾销抉择 Install Child Theme,同样的 WPForms 和 Stackable 曾经装置好了,这里咱们勾销选中,而后下一步。
d. 期待几分钟 Blocksy 装置实现,点击 View Site 查看咱们 WooCommerce 网站,能够看到咱们主页曾经有很多商品,还能够下单测试网站性能,下单实现之后还能够在后盾看到订单详情。
至此整个 WooCommerce 站点配置曾经实现,本文以 Blocksy 为例自定义了整个网站主题,该站点具备下单,领取,订单治理性能。
总结
本文介绍的无服务器建站形式提供了疾速构建电商独立站的一种形式,非常适合初期建站的用户应用。利用 Amazon 的 Serverless 服务 Lambda,无需治理 WordPress 的基础设施,主动扩缩容以应答流量高下峰。数据库和缓存也应用 Amazon 托管服务,最大水平缩小运维工作量。同时提供 CDK 代码来部署和治理整套资源,让您能够不便的通过批改 CDK 代码来进行扩大。
附录
基于亚马逊云科技无服务器服务疾速搭建电商平台——性能篇
本篇作者
汪其香
Amazon 解决方案架构师,负责基于 Amazon 云计算计划的架构征询和设计实现,具备丰盛的解决客户理论问题的教训,同时热衷于深度学习的钻研与利用。
许昌月
Amazon 解决方案架构师,负责基于 Amazon 的云计算计划架构征询和设计,施行和推广,善于软件开发,具备丰盛的解决客户理论问题的教训。
文章起源:https://dev.amazoncloud.cn/column/article/6309bb2376658473a32…