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

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

相关推荐

  • 亚马逊运营需要知道的店铺后台业务报告与分析

    这次,小编来给大家说说,关于 “亚马逊运营需要知道的店铺后台业务报告与分析”。 实际上,做亚马逊店铺的卖家们,假如想了解自己的亚马逊店铺一天赚了多少钱,出了多少单子,广告数据怎样,库存还有多少,都需要到后台查看各项数据报表。那么,亚马逊后台的数据分析报表主要有哪些呢?今天就和大家分享亚马逊后台的业务报告(Business report)数据报表分析: 业务报…

    2021年1月4日
    0386
  • 外贸独立站交流群(微信群)

    做外贸独立站的小伙伴们欢迎进群交流。咱们可以自己组织1个外贸友情链接小团队,相互交换友情链接导权重,相互交流独立站的新得,运营心得,谷歌seo优化心得等等。个人觉得QQ群有点不好使,不太喜欢用QQ,用微信群比较好。就建个微信群吧。进不去微信群的,请加小编微信:soniclie   欢迎做外贸独立站的小伙伴们扫码进群哦! 2020年小嵘SEO技术博客…

    2020年12月24日
    01.9K
  • 关于亚马逊传闻的调查:非官方UPC全部凉凉?Prime Day提前?

    这次,小嵘来给大家说说,关于“关于亚马逊传闻的调查:非官方UPC全部凉凉?Prime Day提前?”的这个话题。 小编一般自己购买UPC都会到https://www.barcodestalk.com/ 或者店小秘里购买 https://www.dianxiaomi.com/ 两家都有证书而且正规。小编自己只认证书。 近期,几则关于亚马逊的新政和传闻又开始在圈…

    2021年4月16日 跨境电商
    01.0K
  • 关于最近Facebook频繁封号的进一步处理

    这次,小编来给大家分享一下,“关于最近Facebook频繁封号的进一步处理”。我们公司使用了一款叫Touchdata翼果科技的第三方管理软件平台。服务费一年大概一万多吧。然后,由于近期Facebook的主页page封号比较频繁和严重,这家第三方公司给了我们以下的进一步处理的公告说明,如下: (实际上,这是关于用Facebook做亚马逊测评的广告投放时出现的问…

    2020年9月28日
    01.4K
  • 亚马逊严禁这几种发货方式了

    这次,小编来给大家说说,关于 “亚马逊严禁这几种发货方式了”。希望能帮助做亚马逊跨境电商的小伙伴们。 就在近期,亚马逊在后台发布了一则重磅公告,平台配送规则进行了一些更新,严禁卖家进行一件代发等操作! 给大家总结一下,亚马逊在公告中称:满足下列条件的情况下,严禁卖家在供应商处购买产品并直接配送给顾客。 自配送货件中没有卖家的标示以证明卖家身份。 在配送货件中…

    2021年2月3日
    0361
  • shopify外贸独立站后台怎样自定义动态结账按钮呢?

    今天,小编来给大家介绍一下,关于 “shopify外贸独立站后台怎样自定义动态结账按钮呢?” 的相关干货。希望能帮助刚使用shopify不久的小伙伴们哦。 外贸独立站Shopify的卖家可以对无品牌动态结账按钮上的颜色和字体进行自定义,以此来匹配您的在线商店风格。无法对品牌版本的按钮进行自定义。 在对动态结账按钮进行自定义之前,请确保将它们添加到您的在线商店…

    2020年6月5日
    0767
  • 消费者在亚马逊不买产品只需一眼,就因为这些事儿?

    这次,小编来给大家说说,关于 “消费者在亚马逊不买产品只需一眼,就因为这些事儿?” 的这个话题。 事实上,亚马逊卖家千千万万,能做好做大的凤毛麟角。而这些成功的卖家基本有一个共同点,就是懂得消费者心理。 简单说,他们很清楚买家们在购买产品时,会受到什么因素的吸引。 举个例子:Amy是一个现代职业女性,同时也是2个孩子的母亲,很有健康意识,以下是她在亚马逊上买…

    2021年4月6日
    0324
  • 欧洲亚马逊单品月售2000万,却被罚数千万?

    这次,小编来给大家说说,关于“欧洲亚马逊单品月售2000万,却被罚数千万?”的这个话题。 就在最近,在欧洲那边法国政府“翻旧账”,严查亚马逊卖家的纳税问题。 深圳知名大卖家泽宝的子公司因此被罚款约495.09万欧元,折合人民币约3800万元。 根据泽宝技术的母公司,星徽股份最新的公告显示,被罚款的二级子公司为Sunvalley (HK) Limited,中文…

    2021年3月24日 跨境电商
    0372
  • 上千老账号中招,亚马逊视频验证来了!

    这次,小编来给大家说说,关于 “上千老账号中招,亚马逊视频验证来了!”的这个话题哦。 最近,“视频认证真的来!很多北美账号收到了亚马逊邮件。” 早在一周前,有部分卖家收到亚马逊视频验证的要求。近日,大批卖家接到了通知。 收到邮件的卖家,如果无法在7天之内进行验证,账号将会被停止销售。购买账号者和购买资料注册账号的人,填写的资料与现实不符,无法接到亚马逊团队的…

    2021年3月24日 跨境电商
    0420
  • 脸书Facebook广告国内的大代理之一:猎豹移动

    这次,小编来给大家介绍一下 “脸书Facebook广告国内的大代理之一:猎豹移动”。希望对做外贸营销推广的运营小伙伴们有所帮助哈。 因为小编所在的跨境电商公司在 “英宝通” 和 “猎豹” 都有开脸书Facebook的广告投放账号。最近,小编的同事和英宝通那边沟通了Facebook投放独立站广告的事儿。猎豹移动一般和英宝通一样,都是用微信和我们沟通对接的,算是…

    2020年3月30日
    0907
  • “直播带货”如此的火热,从国内传到了国外!

    “直播带货”这么火,从国内传到了国外!国外也开始了电商带货之路?亚马逊也开始仿效我们国内带货的模式了喔。从咱们国内火到国内,跨境电商的跨境直播能出几个李佳琦这样的大网红呢? 就在2019年第二季度,亚马逊官方表示将在全站点陆续上线亚马逊直播(Amazon Live)功能,买家可点击视频旁边的轮播图或者视频下方完成一键购买。至此,包括速卖通、亚马逊、Shope…

    2020年4月24日
    0843
  • 秒删跟卖“神器” Project Zero(亚马逊零容忍计划)

    这次,小编来给大家说说,关于“秒删跟卖“神器” Project Zero(亚马逊零容忍计划)”的这个话题。希望能帮助亚马逊的一些小卖家们哦! 对于亚马逊卖家来说,最令人脑壳疼的事情莫过于会员日、黑五网一这样的旺季到来时,自己的产品却被跟卖!又想快速赶走跟卖,却心有余而力不足。那么今天就跟大家介绍一下Project Zero这一“跟卖克星”是如何保护卖家的利益…

    2021年2月3日
    0449