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

相关推荐

  • 一个简单粗暴的Facebook养号与推广方法:买老号!

    一个简单粗暴的Facebook养号与推广方法:买老号!接下来,小编给大家分享一下,自己近期购买facebook老号的亲身经历吧!绝对原创哦! 近期,2020年年初,大概在3月份的时候吧,小编在自己的博客站上发了1个帖子,直接标题是“回收脸书账号!有没有人有Facebook账号出售?“ 地址:https://www.seo388.com/shoufaceboo…

    2020年8月26日
    0879
  • 关于灰色词菠菜SEO快照劫持和推广原理

    这次,小编来给大家说说与科普一下,“关于灰色词菠菜SEO快照劫持和推广原理”。希望能帮助不懂这块而又想知道这块东西的小伙伴们。好奇心嘛,大家都有! 本文转自小编老师无忧老大SEO站点的文章。ainiseo.com 作为SEO行业从事者,少不了经常被人咨询灰色词SEO波菜关键词的黑帽优化方法,由于自己只擅长白帽SEO正规手法,对黑帽SEO一无疑所知,转载本文来…

    2020年5月26日 科技科普
    02.0K
  • 亚马逊新增服装类目商品图片要求

    这次,小编来给大家说说,关于 “亚马逊新增服装类目商品图片要求”。 近日亚马逊发布公告,原文如下: 请卖家花点时间查看最新更新的服装商品图片要求,遵循这些要求将有助于优化商品图片,更好地满足客户需求,从而吸引更多客户并推动销售。   卖家注意,如果商品图片不符合要求,可能会导致您的ASIN在搜索结果中被取消优先级排名或被禁止展示。   亚…

    2021年3月16日
    0679
  • 亚马逊多变体广告怎么打?

    亚马逊多变体广告怎么打? 多变体的的产品采用不同变体打不同关键词,因为不同的属性,变体 ,颜色,尺寸在不同的关键词下,可以很好的收拢所有关键词的流量,引进来的流量可反辅其他变体,使流量的入口多样化。

    2022年6月15日
    0142
  • 亚马逊也搞“网红经济”Amazon Influencer Program网红营销?

    跨境电商巨头亚马逊平台也来搞网红经济?是的!这次,小编就来给大家说说,关于”亚马逊也搞“网红经济”Amazon Influencer Program网红营销?“ 的这个话题吧。网红经济,不但是咱们国内,就连国外现在也很注重这块的发展,不管是东南亚还是欧美地区,现在网红经济、网红营销已然很受欢迎呢! 对于”网红营销“(Influencer marketing)…

    2020年4月24日
    01.4K
  • 亚马逊个人注册与新手开店流程

    这次,小编来给大家说说,关于 “亚马逊个人注册与新手开店流程”。 希望能帮助到想做或者想从事跨境电商亚马逊店铺行业的新手小伙伴们哦。 亚马逊个人注册需要准备什么材料?个人注册和全球开店不同,相对来讲所需要准备和审核的内容也较少一些,只需要准备一些基础的材料就可以。 今年风头最旺的自然就是德国站,日出千单不在话下,而日本站也是非常被看好的站点之一,要知道选好站…

    2020年9月17日 跨境电商
    0761
  • 那些年,亚马逊卖家遇到的那些坑

    这次,小编来给大家分享一下,关于“那些年,亚马逊卖家遇到的那些坑”。 亚马逊卖家深夜血泪控诉史:被VC这条巨蟒盯上后…… 夜已深,怀着沉痛的心情写下这大半年的亚马逊血泪史,我要控诉这群挨千刀的王八蛋,搅屎棍,刽子手!! 不在沉默中爆发,就在沉默中灭亡!我已经走投无路了。。。对,我被逼的已经破产了,不是我能力不行,是一群妖魔鬼怪要让我死。可是我没办法看着公司死…

    2021年2月3日 跨境电商
    0572
  • 亚马逊FBA卖家会用到的Chrome插件大全

    这次,小嵘要来给大家分享的是,关于“亚马逊FBA卖家会用到的Chrome插件大全”。 在为亚马逊FBA寻找Chrome插件而烦恼?在下文中,你会将看到22款亚马逊Chrome插件,帮助你启动、运行和发展亚马逊FBA业务。 这22款亚马逊Chrome插件可以帮你: 在亚马逊上发现有利可图的产品; 确定要在副本中使用的关键词; 了解你的FBA竞争对手的表现; 发…

    2021年4月9日 跨境电商
    01.1K
  • 假如亚马逊店铺被封,如何解除品牌备案?

    这次,小编来给大家说说,关于 “假如亚马逊店铺被封,如何解除品牌备案?”的这个话题。希望能帮助做跨境电商亚马逊平台的小伙伴们哦! 平台对账号的审核越来越严,比如最近碰到KYC审核和美国二审不通过,严重的导致店铺拒死,直接后台都不能登录,来不及从后台解绑品牌备案的品牌! 案例:欧洲站点KYC审核失败,导致店铺登录不了后台,如何解绑品牌备案? 1. 打开链接:h…

    2021年3月23日
    0510
  • 亚马逊广告的三个小贴士

    这次,小嵘谷歌SEO优化给大家分享的是,“亚马逊广告的三个小贴士”。 1.广告词在不同的广告活动 广告组 不会产生竞争2.不要随便关店老的广告活动 如果要推词 直接添加老的广告活动 广告组里面3.秒杀的适合尽量开大词的广告 还是在老广告活动加预算 加竞价  

    2022年6月25日
    0332
  • 亚马逊Listing编写思路与注意事项

    这次,小编来给大家说说,关于 “亚马逊Listing编写思路与注意事项”。 Listing四个板块的权重排名如下: Tittle > Bullet Point > Search Term > Description 确定关键词 关键词是引流的第一步,也是产品的核心竞争力的描述,它决定了买家可不可以搜索到你的产品。怎样确定关键词呢?很简单,将…

    2021年3月16日
    0679
  • 亚马逊新品发货量猛升3倍,卖家可入仓4个月库存

    这次,小编来给大家说说,关于 “亚马逊新品发货量猛升3倍,卖家可入仓4个月库存”的事儿! 一般来说,正值备货的时候,亚马逊的发货限制让不少人十分头疼。近期,亚马逊北美、欧洲及日本站点均放宽了发货限制,新品可发货量大幅增长到750,卖家们喜出望外。 在货物运输上,海运是卖家的主要发货方式之一。近日,又一艘装满中国货物的美线集装箱船发生事故,该船只曾挂靠深圳盐田…

    2021年1月20日
    0680