1. 首页
  2. 技术知识

Shopify插件开发

Shopify插件开发

Shopify插件开发

>>>>Shopify的扩展性挑战

Shopify的电商系统解决方案,处理约3亿独立访客每月(这些用户访问并不是均匀分布的)。但是正如你所能看到的,这些3亿用户并没有以一种很分散的方式访问。

其中最大的挑战是被他们称之为“闪购”,指的是那些极端受欢迎的商店在特定时间进行促销。

例如,Kanye West在销售他们的鞋子时,加上Kim Kardashian,他们带来了50万的Twiter独立用户。

他们还有来自Superbowel广告的用户。因为这样,他们对于流量没有一个准确的预估。有可能是200000用户同时在3:00参与特别销售,持续几个小时。

那么Shopify是如何应对这些流量的瞬间增长呢?尽管他们没有很好的处理特卖,那又如何保证不会影响到其他的商店?这些我们将在下一部分讨论,在我们简单的介绍了Shopify的架构后。

>>>>Shopify架构

尽管Shopify去年迁移到了Docker,他们却还是单体应用。我曾问过Simon,他告诉我他们并不想管理微服务。因为这样将来需要迁移或转型时更方便。

无论如何,他们的架构看起来像:一个请求通过Nginx转发到后端的服务集群,服务是运行在Docker上的Rails应用。

对于数据层,是有以下:- Memcached – Redis – ElasticSearch – MySQL – Kafka – Zookeper。

最重要的是运行在各自的硬件上。当然有一些是运行在AWS。

为了减少开支,Shopify运行着一个多租的平台。这意味着不同的商店在同一个服务上 例如:–shopA.com和shopB.com都是来自同一个服务上。

尽管迁移到Docker并不是那么容易,但他们还是从中受益:

迁移到Docker使得Shopify可以使用成百上千行Ruby代码在5分钟内运行集持续集成(在Docker之前是15分钟),并在3分钟内部署到300-400个节点,跨3个数据中心(以前是15分钟)。这些提升令人印象深刻。

>>>如何处理通讯峰值

理想情况下,平台能够自动处理高峰值。但是这功能还并未实现。所以,他们在大规模销售活动前运行性能检查。

在Kanye West的例子中,他们用了2周的时间对平台关键部件做了大规模被动负载测试和性能优化。

为了运行不同的测试,他们列了一份表格称之为X矩阵。

这个X矩阵可以有助于我们判断系统服务故障的原因。

假如Redis服务宕机,Redis将作为内部检查的一部分。你是不是会将整个网站关闭并进入维护模式?当然不,你可以将所有用户登出,但仍然允许他们在没有登陆用户的情况下进行结帐。然后一旦Redis恢复,通过关联邮箱地址来填补用户账户的操作。

列出你的系统的清单(如storefronts,admin dashboards,API,等等…)然后设想一下如果某个服务挂掉 — 系统中哪些部分将会受到影响?尝试去除掉这些依赖,将会使你的应用X得到极大的提升。这就像是一条链,你的系统健壮性将由链中最薄弱的决定。

为了进一步改善,Shopify团队开源了Toxiproxy和Semain,Toxiproxy可以控制你系统各个部分的延迟。

Semain可以用于验证系统是否有单点故障。

关于X化更多的内容,请查看Simon相关的分享,介绍了很多细节,非常有趣。

除了这些X化的工作,Shopify还能够过度分配一些硬件资源。对于他们来说,相当便宜。但是如果你运行在云端,这并不便宜。仔细对比下收益与开销,看看过度配置是否有益与你。

另一个巨大的挑战是数据的可伸缩。自从Shopify支持金融交易,他们的数据库就必须实时同步。解决方案?Shopify在两年前使用Mysql shard方式。他们积极的使用更多的shard,更细粒度的,基于时间的shard。

Simon说数据库的伸缩是非常艰难的 — 特别是sharding方案。不到迫不得已尽量不要使用。你可以尽量使用缓存,在你不得不使用shard之前。但是shard的好处之一是可以隔离事故。如果一个shard上的某些客户做了一些疯狂的事情,只有非常小的一部分用户会受此影响。

我们回到X测试,Simo强调大部分的数据库伸缩问题依赖于X化工作以及自动故障恢复。

>>>>进一步的计划

继续向前,Shopify团队在探索应用服务之间的隔离层。另一个挑战是同时运行在不同地区的不同数据中心。这将会涉及到数据本地化以及异常事件隔离。

异常事件隔离可以参考Netflix的经验,更多文章可以参考Jeremy Edberg的访谈。

除了这些计划,他们还计划将自动化故障恢复更容易的在一天内多次执行。如果你对如何在多数据中心执行故障恢复测试,可以看Simon的访谈。

就目前而言,他们暂时没法在不零时停止交易系统的时候恢复整个数据中心。然而,他们目前正在努力克服这个问题。

>>>>可以采取的行动

关于本篇文章,我的目的是,介绍一些容易理解的知识,帮助你采取行动。你现在能做什么呢?嗯,你可能想避免分片,通过缓存更多来解决?由于成本问题不想使用过高的配置,通过检查X矩阵?即使你现在没有资源去做这些,构建一个这样的矩阵,甚至只是了解了这些思路也是有帮助的。

UEESHOP外贸建站,11年外贸建站经验,目前合作客户17500+。系统由我司自主研发,有系统专利,更稳定也更安全。UEESHOP也是paypal官方首推的外贸建站商,欢迎咨询了解 QQ:613354080 

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》… 中v中 阅读 30,808 评论 2 赞 89
  • [译] Shopify Plus 回顾:可能是2018年以来最好的企业电商平台 原文:https://ecommerce-platforms.com/ecommerce-reviews/an-i… 江米小枣tonylua 阅读 2,367 评论 0 赞 1
  • 心魔 好像喜欢你是成了我的一个心魔了。我心疼你。可我呢,一丝一毫被你放在哪里。你是余罪,我知道,可你当真冷酷无情到底。从… 真诚的帽帽 阅读 133 评论 0 赞 0
  • 张秀丽|成为孩子身边的一座桥 听同学讲了这样一个故事: 一位从事特殊教育的老师去芬兰学习,一下飞机,就遭遇了各种各样的麻烦。语言不通,长相怪异,… 大力133338 阅读 301 评论 0 赞 3
  • 中秋 并没有因为节日多吃了一两饭 桌上的月饼 让我怀念起绿豆糕来 长马 阅读 159 评论 0 赞 9

你可能感兴趣

Wooview – Shopify一站式APP插件(评论、愿望清单、销售弹窗、邮件订阅)使用教程

Wooview跨境独立站一站式营销应用程序是基于Shopify等跨境独立站电商平台的一站式营销应用程序,可为Shopify等商店提X品评论,愿望清单,订阅弹窗,销售弹窗和邮件营销等功能:https:

shopify自动回复邮件怎么插入表格

如果您想在 Shopify 自动回复邮件中插入表格,可以使用 HTML 代码来创建表格。以下是一些简单的步骤来为您的 Shopify 自动回复邮件添加表格: 打开 Shopify 后台管理页面并转到

SHOPLINE更改商店和帐户资料详细教程

SHOPLINE是一个专为亚洲商家而设的DIY网店平台,提供功能齐全的品牌开店配套。本篇介绍SHOPLINE更改商店和帐户资料详细教程方法,大家一起来学习吧!一、更改网店网址您可以在「设定」>「

宝塔负载状态100%时怎么解决?优化服务器详细教程

宝塔面板服务器CPU占满100%、负载100%的问题;
当宝塔负载状态100%,CPU占满100%的时候,我们首先需要找到问题的原因,是什么情况导致,程序性能、服务器负载能力、并发访问、木马病毒、被植入了挖矿程序等等,首先我们通过文件>
4.1、再次我们找到软件商店,在应用分类选择已安装,我们只需要安装好必备的,其它都可以删除掉,有些用户也安装也不少PHP的版本,我们建议只是安装7.4即可(以Wordpress为例)。

订单30分钟未支付,则自动取消,该怎么实现?

在开发中,往往会遇到一些关于延时任务的需求。例如生成订单30分钟未支付,则自动取消生成订单60秒后,给用户发短信对上述的任务,我们给一个专业的名字来形容&#x

从零开始开发Shopify主题:(1)注册开发者店铺

本系列教程适合有代码基础的,想要自己开发Shopify主题的用户观看。这个教程是一个入门教程,可以让你了解开发Shopify主题是什么样的一个流程。 首先&#xff

6大Facebооk广告文案绝招提升你Shopify独立站的转化率

自从开始做Shopify独立站,接触Facebооk广告以来,我就一直有些疑问,究竟什么样的广告文案才能吸引用户读下去?写文案时该按照哪种思路来

7款最佳的WordPress Dropshipping 插件

当前位置: 我的Shopify赚钱日记 > wordpress外贸建站 > 正文 7款最佳的WordPress Dropshipping 插件 shopify外贸 发

Shopify开店建站营销推广卖家平台后台中文指南 – Abandoned checkout recovery/挽救弃单

什么是Abandoned checkout? 有时候,顾客可能会把商品加入购物车,以进行结账,但在付款的最后一步却放弃了支付, 不管出于什

shopify必备程序(shopify)

1. shopify 是的,是独立站店铺,一般作为公司官网 2. shopify APP 建议卸载掉app,重新下载安装后再试。 3. Shopify app 点击使用dropseek,输入自己sho

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/2411.html

联系我们