原来这样子的?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

相关推荐

  • 亚马逊移动端比例逐渐上升,需做好页面布局来提升转化率!

    不仅在中国,在国外也是非常多用户喜欢手机购物,越来越多用户通过手机app获得了更好的用户体验,还有很多通过手机浏览器来购物,这也是亚马逊移动购物比例在不断提升的一个原因。 亚马逊平台上大多数卖家都把PC端的引流和优化作为重点,然而就在你用心调整关键词、编辑listing时,亚马逊的全美移动端流量占比悄然升高。 随着手机的不断更新换代,手机购物便利方面已经远远…

    2022年6月21日
    081
  • 请利用价值链战略举例在亚马逊产品运营中超越对手的方法

    请利用价值链战略举例在亚马逊产品运营中超越对手的方法 优化价值链:节省成本(优化或简化已有价值链)、发现新利润(延长价值链创造的节点).把产品生产的边际成本无限接近于0,实施降维打击,攻击竞争对手薄弱点。明确产品/功能在整个链条中的职责和位置,必须在摸清价值链节点的前提下,才有执行的可能。必须考虑需求和盈利,价值链的优化和重塑往往源于新技术的应用。

    2022年6月15日
    0151
  • 亚马逊卖家收款账户有哪些?选哪个比较好?

    这次,小编来给大家说说,关于 “亚马逊卖家收款账户有哪些?选哪个比较好?”的这个话题。 亚马逊支持绑定的收款账户也是比较多的,每个收款账户的优势也是不同的。亚马逊卖家收款账户有哪些?选哪个比较好?针对大家关于亚马逊收款账户问题,小编给大家汇总了以下内容。 第三方收款平台无非是这几种:World First、Payoneer、PingPong、连连支付、Ama…

    2021年2月4日
    0599
  • Facebook企业广告账号申请须知

    这次,小编来给大家说说,“关于Facebook企业广告账号申请须知”。 Facebook企业广告账号申请须知: 1.免费开户,起充1000美金 2.提供企业营业执照或者个体工商户执照 3.一个主体最多一次只能申请2个账户(一个主体最多下7个户) 4.请使用稳定的V-P*N的网络环境和稳定的FB个人账户进行提交 5.(独立站卖家)提交前请先提供网站(暂不支持c…

    2020年9月10日
    0630
  • 亚马逊卖家该如何应对价格战?

    这次,小编来给大家说说,关于“亚马逊卖家该如何应对价格战?”的这个话题。 事实上,在这产能过剩的时代,商家为了多争抢一个客户,不惜亏本吆喝,甩出的价格没有最低只有更低。在国内电商平台上,也有大量打着“9.9包邮”,甚至“1元包邮”口号的卖家,就差免费送你了。 其实呢,无论是真低价,还是说是一个宣传噱头,低价策略无疑是卖家惯用的一种互相厮杀的利器。在亚马逊的卖…

    2021年4月6日
    0419
  • 亚马逊店铺卖家分析自己店铺数据该注意什么?

    这次,小编来给大家说说,关于 “亚马逊店铺卖家分析自己店铺数据该注意什么?” 一般情况下,亚马逊店铺的一切问题:广告,库存,利润等等都需要从店铺数据中分析出来,从数据出发可以找到问题的关键,并且及时作出调整。想要做好店铺运营,首先你要看懂店铺数据,那么亚马逊卖家想要更加清楚店铺数据情况,就要做好更全面的店铺数据监控,接下来告诉你亚马逊卖家运营日常如何关注好自…

    2021年1月5日
    0493
  • 什么是亚马逊泛欧计划(Pan-European)?

    这次,小编来给大家科普一下,关于“什么是亚马逊泛欧计划(Pan-European)?”的这个话题。 泛欧计划(Pan-European)是亚马逊在2016年推出的针对欧洲五站(英国,德国,法国,意大利,西班牙,波兰,捷克)FBA的一种跨国家发货计划,参加泛欧计划的卖家,可以把产品放置在欧洲五站中的任一国家的FBA仓,同时在五个站点发布符合要求的产品Listi…

    2021年4月9日
    0406
  • 跨境电商:用户视角下的选品策略

    这次,小编要给大家带来的是,关于“跨境电商:用户视角下的选品策略”。 有许多的跨境电商卖家,选品时觉得独具一格与众不同,却发现一款产品上架,销量却寥寥无几,甚至无人问津。我将这种选品称之为“错误的选品思维”,具体表现有以下几条: 1. 产品和竞品的不一样 所谓的不一样只是一点点的小改款,方角变圆角,横纹变竖纹,并没有带来实际上的体验提升和质量改良,就是为了不…

    2021年1月8日
    0488
  • 为什么有些亚马逊产品刷完后评分变的更差或排名没有效果变化?

    为什么有些亚马逊产品刷完后评分变的更差或排名没有效果变化? 随便找老外刷,风险大容易被钓鱼,无VP,容易被删,使用大折扣,跟卖使用超低价,没控制好转化率和留评率

    2022年6月15日
    086
  • shopify90天免费!赶紧来开启外贸独立站出海项目吧!

    这次,小编来给大家说说,“shopify90天免费!赶紧来开启外贸独立站出海项目吧!” 的这个话题吧。目前,Shopify独立站自建站平台为了在这波疫情的时候能吸引更多的用户,也能帮助更多的卖家,于是他们推出了90天免费的活动。没错!是90天免费。在百度搜索“shopify”,能找到shopify自家的百度sem竞价广告“www.shopify.cn”的广告…

    2020年5月23日
    02.4K
  • 亚马逊卖家的五大逆向选品思维

    这次,小编来给大家说说,关于“亚马逊卖家的五大逆向选品思维”的这个话题。 一般来说,作为亚马逊卖家,多少都会经历过选品的困扰,甚至踩过很多坑。有时候听朋友推荐,说国内卖得好,放亚马逊上面卖肯定也不错;有时候是供应商推荐,说这是他自己花费多少精力开发出来的新品,肯定能成爆款blabla;有时候是自己在选品网站看到销量还不错的产品。没有市场数据支撑选出来的产品,…

    2021年4月7日
    0433
  • 亚马逊广告竞价出价应该如何设置?

    这次,小编来给小伙伴们说说,关于 “亚马逊广告竞价出价应该如何设置?” 亚马逊广告投入成本在亚马逊店铺运营过程中占有一份比例,如何降低广告成本的同时还能达到效果是卖家一直在思考的事情。亚马逊广告竞价设置多少合适?没有哪个人可以很明确的告诉你广告竞价就应该设置为这个数,每个卖家的产品、店铺都不一样,可能这个数字适合A卖家,但放在B卖家身上就不一定适用。建议从上…

    2021年1月4日
    0536