原来这样子的?Shopify使用了Docker容器的技术!

原来这样子的?Shopify使用了Docker容器的技术!

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

而现在的Shopify已经是一个成熟的平台了,帮助了千千万万的跨境电商从业者或者外贸从业人员盈利。而Shopify面临的扩展挑战电商解决方案提供商 Shopify 每个月的独立访问用户大约有 3 亿。注意,这些用户访问并不是均匀分布的。

原来这样子的?Shopify使用了Docker容器的技术!
原来这样子的?Shopify使用了Docker容器的技术!

其中一个最大的挑战是“闪购”,即最流行的那些网店在特定时间内的销售活动。

例如, Kanye West 开卖新款鞋子。加上 Kim Kardashian ,他们在 Twitter 上有 5,000 万粉丝。

有些客户还在超级碗上打广告。因此, Shopify 根本无法预期届时有多大的访问流量。想想这种情况:在 3 点, 200,000 访客一涌而入,参与几小时后就会结束的特卖活动。

Shopify 该如何扩展,以应对突然增加的访问?即使扩展后不能很好地应对某一场特卖,那么怎么确保这场特卖不会影响其它网店呢?在下一节,我们首先介绍 Shopify 的应用架构,然后以此为背景,深入地讨论上述问题。Shopify 应用架构去年, Shopify 全面采用 Docker ,但是仍然采用单体的应用架构。 Simon 告诉我,之所以这么做,是因为转向微服务架构的代价不低。当然,由于全面采用 Docker ,如果他们将来决定转向微服务架构,也比较容易。

总之, Shopify 的架构大致是这样的:应用请求首先发送到 Nginx ,然后再转发到服务器应用集群,每个服务器应用是一个运行 Rails 应用的 Docker 容器。

在数据层,他们用到了:MemcachedRedisElasticSearchMySQLKafkaZooKeeper大部分软件运行自有的硬件上,少部分运行在 AWS 上。

为了减少成本, Shopify 运营了一个多租户平台,即不同的网店可能运行在同一台服务器上——例如, shopA.com 和 shopB.com 运行在一台服务器上。

虽然全面转向 Docker 并非一帆风顺,但是最终获得了下列好处:

只需大约 5 分钟,就能运行完数十万行 Ruby 代码的持续集成(没用 Docker 之前需要 15 分钟),部署到横跨 3 个数据中心的 300-400 台服务器上只需 3 分钟(以前需要 15 分钟)。多么令人印象深刻的成效。如何处理流量激增平台最好自己就能处理访问的激增。不过,这还没完全实现,在每次大型售卖之前,他们运行一系列的性能检测。

以上面的 Kanye West 为例,他们提前花了两周的时间,把平台的关键部分组合在一起,进行广泛的被动负载测试和性能优化。

为了运行不同的测试,他们用到了弹性矩阵:

摘自 Simon 的大会报告

在某项服务失效时,弹性矩阵有助于搞清楚系统出了什么问题。

假设 Redis 服务不可用了。从弹性矩阵可以看出, Redis 是买单服务的一部分。这时候,是不是要整个网站下线,进入维护状态呢?当然不,可以让每个用户登出网站,仍然允许他们在没有客户账户的情况下继续买单。然后,一旦 Redis 服务恢复了,将电子邮件地址与客户账户关联,据此补上此前缺少的信息。

依次下线每一个服务(像网店前端、管理面板、API等等),看看此时系统的运行情况——这是否影响到系统的其它部分?尽量去掉服务之间的依赖,整个应用的弹性会因此显著地增加。这好比一条拉链,最弱的那一环决定了应用的健壮程度。

原来这样子的?Shopify使用了Docker容器的技术!
原来这样子的?Shopify使用了Docker容器的技术!

Shopify 开源了与之相关的两个工具: Toxiproxy 和 Semian 。

Toxiproxy 能够控制系统的延迟。

Semian 用于检验系统是否存在单点失效。

更多细节,请看 Simon 的大会报告(https://speakerdeck.com/sirupsen/dockercon-2015-resilient-routing-and-discovery),非常有意思的一个报告。

在弹性平台之上,由于 Shopify 拥有自己的硬件,它能够做到超额配置。对他们而言,这种解决方案很便宜,但是还是比在云上运行花费高。请仔细比较相应的代价和收益,确定这种方案是否适合你的需求。

数据存储的扩展是另外一个巨大的挑战。由于 Shopify 处理的是金融交易,他们的数据库必须保持同步。解决方案是什么呢? 两年前 Shopify 就开始实施 MySQL 分片了。他们非常激进,力求经过一段时间后把数据库切分成更多更小的切片。

Simon 随即说道,数据库的扩展尤其是切片是相当难的。不到最后,别采用数据库切片,尽可能地利用缓存。采用切片后的一个好处是有助于事故的隔离。如果在某个切片中某个客户的数据发生灾难,也只会影响整个平台的一小部分。

说到对弹性的测试, Simon 强调说有了弹性平台和自动灾后恢复机制,大部分数据库扩展问题都已经被解决了。接下来,他们准备提高哪些方面?接下来, Shopify 团队正在审视应用之间的隔离问题。另外一个主要问题是如何让网店同时运行在位于不同大洲的多个数据中心上。这不仅非常有利于保证数据本地性,也能避免意外事件的影响。

我访问 Jeremy Edberg 时,他说过 Netflix 也投入很多资源研究如何避免意外事件的影响。

除此之外,他们也在研究如何实现一天内的多次灾后恢复。在访谈 Simon 的页面,你能了解到他们如何在整个数据中心进行灾后恢复测试。

目前,如果要实现整个数据中心的灾后恢复,就不得不临时关闭买单服务。他们正在寻找相关的解决方案。

 

原创文章,作者:SONIC SEO,如若转载,请注明出处:https://www.seo388.com/shopifyanddocker/

(5)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年4月17日 17:16
下一篇 2020年4月18日 14:02

相关推荐

  • 什么是SPF?如何设置企业邮箱的SPF呢?

    这次,小编来给大家科普一下,关于 ”什么是SPF?如何设置企业邮箱的SPF呢?“ 的这个话题。这也关系到 “如何提升域名邮箱发送外域(@qq.com以外的邮箱)邮件的成功率呢!希望对使用了企业邮箱的小伙伴们有所帮助哦,特别是使用腾讯QQ企业邮箱服务的小伙伴们。 实际上,什么是SPF? (Sender Policy Framework) 的缩写,一种以IP地址…

    2020年9月16日
    01.4K
  • 亚马逊自发货FBM广告投放推广方法

    这次,小编来给大家说说,关于 “亚马逊自发货FBM广告投放推广方法”。 对亚马逊卖家来说,实际上,不只有亚马逊物流FBA的卖家才能开通广告,自发货FBM的卖家也可以开。对于自配送卖家来说,更做好listing和保持价格优势,投放亚马逊广告产品可以获取更大的竞争优势。以帮助卖家打破“能参与的促销活动不多、自然流量较少”的困局。利用产品的价格优势提高转化、复购率…

    2021年1月4日
    01.2K
  • 你或许会忽略的亚马逊站内选品渠道,有哪些?

    这次,小编来给大家说说,关于“你或许会忽略的亚马逊站内选品渠道,有哪些?”的这个话题。 一般来说,当我们开始做亚马逊的时候都会听到“三分靠运营,七分靠选品”,从中我们就知道选品的重要性了。但是选到好产品又是多么的不容易,往往都是靠试错多款产品才能找到一款相对还不错的。大部分卖家还在不断找寻中,有人通过google等搜索引擎,有人通过1688等批发网站,也有人…

    2021年4月6日 跨境电商
    0598
  • 700亿美元拉美最大电商平台:月流量6.42亿的Mercadolibre该如何做?

    这次,小编来给大家说说,关于“700亿美元拉美最大电商平台:月流量6.42亿的Mercadolibre该如何做?”的这个话题。 这些年来,拉美电商市场年销售额已超过700亿美元,虽然电商仅占零售总额的4.4%,低于大部分发达地区,但正在快速发展阶段,前景广阔。 与此同时,拉美地区电商平台Mercadolibre(美客多),每月访问量有6.42亿,远超同类电商…

    2021年3月23日 跨境电商
    0673
  • 据说是亚马逊海卖助手最佳替代软件?

    这次,小编要带来的内容分享是:“据说是亚马逊海卖助手最佳替代软件?” 亚马逊海卖助手(也称亚马逊全球开店)作为亚马逊官方销售工具,从2016年上线至今给亚马逊卖家带来了很多便利,卖家主要是利用该工具辅助日常运营工作,主要有: 1、发布商品 2、查看商品实时销售量 3、关注竞品追踪列表 4、管理卖家的登录账号等 可以说,海卖助手能够满足大部分卖家基础的运营问题…

    2020年7月15日 跨境电商
    0591
  • 数十万商品牵涉侵权维权?二十八个卖家被告?

    这次,小编来给大家分享一下,关于“数十万商品牵涉侵权维权?二十八个卖家被告?”的这个话题。做跨境电商的小伙伴们要注意了哦。 就2021年的3月底,HSP律所代理的KTM摩托品牌,为商标维权再添一案,当月已累计发案5次。 最新一案案件参数 案件号:21-cv-1654 起诉时间:2021年3月25日 原告品牌:KTM摩托 原告公司:KTM AG 代理律所:HS…

    2021年4月16日 跨境电商
    01.1K
  • 如何在有亚马逊需求的产品一样情况下不依靠降价又有利润情况让自己销量超越对手(列出不低于5个的方法)

    如何在有亚马逊需求的产品一样情况下不依靠降价又有利润情况让自己销量超越对手(列出不低于5个的方法) edm,edm折扣,促销活动,站外帖,红人营销,媒体折扣,独立站引流

    2022年6月15日
    0230
  • shopify开店费用是多少呢?

    这次,小编来给大家说说,关于外贸独立站搭建平台shopify的相关小知识:“shopify开店费用是多少呢?” 有很多小伙伴在了解了什么是Shopify以后,就会接着想问Shopify如何开店?Shopify开店费用是多少呢?这些问题,小编来给大家解答一下吧。 一、Shopify开店费用: 首先Shopify最便宜的版本是多少钱?看下图就知道,有3个价格,2…

    2020年9月20日
    01.2K
  • 请问亚马逊投入、资金回笼、利润、ROI、资金周转分别如何计算?如何预算资金和投入?用什么办法预算店铺投入和收入?下表案例应该如何使用

    请问亚马逊投入、资金回笼、利润、ROI、资金周转分别如何计算?如何预算资金和投入?用什么办法预算店铺投入和收入?下表案例应该如何使用 ROI计算公式为:收益/投资×100%或者ROI=(成本降低+收入增长)/总成本 看到盈亏平衡点和资金回笼点在哪里,可以判断出来大致需要多少流动资金,用加权平均法预计销量大概计算出投入和收入 结合案例: 根据产品推广难易度来确…

    2022年6月15日
    0298
  • 推荐10种外贸B2B网站的海外网络营销推广方法

    这次,小编来给大家推荐 “10种外贸B2B网站的海外网络营销推广方法”。希望能帮助做海外网络营销推广的小伙伴哈。 其实呢,外贸B2B网站与外贸B2C网站做海外推广的方式很不一样,B2B更注重品牌,信任背书等,所以推广方式比较精细化,重品牌运营。B2C行业更注重新颖、性价比、也注重品牌,但是没有B端那么重视,很多消费者也是冲动消费。 正…

    2020年3月28日 跨境电商
    01.1K
  • 盲人针线套装、水果冰淇淋机等多个新品牌已被钓鱼取证

    这次,小编来给大家分享一下关于亚马逊品牌侵权的一些近期案例,“盲人针线套装、水果冰淇淋机等多个新品牌已被钓鱼取证”。 最近,根据消息所示,David律所又代理新品牌了,这次是一款新的TV产品:ONE SECOND NEEDLE盲人针线套装!TV产品指的就是那些在电视购物上面会出现的产品,很多都是生活用品。本案新鲜出炉,还没开始冻结,大家赶紧排查有无类似刊登,…

    2021年3月12日 跨境电商
    0635
  • FBA到底有多吸资金?赚1.7亿元1年的大卖家,高息借款3000万?

    这次,小编来给大家说说,关于“FBA到底有多吸资金?赚1.7亿元1年的大卖家,高息借款3000万?”的这个话题。 有许多的跨境电商公司生意很不错,交易流水很大,实际上却是“销金窟”,资金流往往捉襟见肘。 4月2日,汉王科技公告称,其三级子公司深圳汉王友基科技有限公司,计划向星展银行申请不超过572万美元(约人民币3750万元)的综合授信。 借款期限都不长,其…

    2021年4月16日 跨境电商
    0947