【AICon】AI 大模型超全落地场景&最佳实践 了解详情
写点什么

GoTo 2017 哥本哈根大会:Shopify 如何支撑在线商务

  • 2017-11-02
  • 本文字数:1187 字

    阅读完需:约 4 分钟

8 月 16 - 19 日,与零一万物李开复、蔚来李斌、面壁智能李大海,及工商银行、交通银行、华夏银行等 100+ 行业专家相聚 FCon x AICon

Shopify 高级产品工程主管 Simon Eskildsen 在 GoTo 2017 哥本哈根大会上做报告,概述了 Shopify 是如何构建支持大规模销售的架构。报告内容涉及使用 OpenResty 配置 NGINX 实例、商店和 Pod 的隔离架构、故障转移策略等。

据 Eskildsen 介绍,Shopify 为大量的在线商务提供服务,正支持超过 50 万家商户。其中不少商户只提供在线商店,它们的一个主要需求就是能将销售快速地交付给它们的客户。尽管驾驭销售流量本身并非难事,但是所面对的主要挑战在于创建一种可应付突发大流量的架构。

据 Eskildsen 介绍,Shopifys 的首个优化调整就是在 DNS 层。对单个域在 DNS 层的流量优化是很容易实现的,但是对于多个域则是难以企及的。Shopify 面对正是这样的问题,多个客户域都指向其 IP。Spotify 的做法是使用 TCP/ICP 任播(Anycast)技术,这是一种“gossip 算法,其中每个 ISP 告知其近邻的所有 ISP 它知道如何路由的 IP 情况”。这基本上导致了流量总是会选择最近的 IP。

Shopify 也大量地使用了 OpenResty。该工具允许使用 Lua 编写所需 NGINX 负载均衡器实现的任何功能。Eskildsen 强调,就 Shopify 的使用情况来看,OpenResty 是非常强大的。他相信,总体说来 OpenResty 并未在行业中得到充分的利用。他列出了在 Shopify 使用的一些模块:

  • Rule banner:通过查看不规则刷新、可疑 IP 地址等异常模式发现僵尸程序(bot),进而禁止这些异常模式。该模块的目的是关闭二级市场。
  • Edge cache:对缓存做优化,允许在负载均衡层而非应用层的缓存提供内容。
  • Checkout throttle:节流机制通过对一些商户进行排队,实现对这些商户在异常负载情况下的写入操作,从而防止一家商户变成同一片上其余商户的嘈杂邻居。

Eskildsen 还介绍了 Shopify 引入的“Pod”概念。Pod 用于应用层或数据层上,是一种完全隔离的 Shopify 实例,其中包含了很多的商店。在设计上是不允许 Pod 间和商店间通信,因为关键在于客户间的隔离。“商店隔离原则,所有的商店必须相互隔离”。

尽管每个 Pod 都包含了自身的有状态服务(例如数据库),无状态服务也是共享的。Eskildsen 解释说,这样做的主要原因是自动扩展引入了过量的瓶颈问题。相比于新架构所考虑到的情况,流量尖峰会来得更快。

Eskildsen 还概要地介绍了 Pod 负载均衡器。Pod 负载均衡器用于均衡 Pod 间的商店,并确保负载的平均分布。为快速实现此目标,同时不损失数据的一致性,Shopify 使用了 MySQL 的二进制日志,使数据库更改事件从旧实例流到新的实例。

对于跨区域迁移,Shopify 还提供了一个称为“Pod Mover”的组件,以最小的宕机时间实现 Pod 的跨区域移动。当一个区域不工作时,就激活迁移。但是 Eskildsen 解释说,他们的最终目标是给出一个 Slack 命令,这样就可以在任一时刻触发此类故障迁移。

完整的演讲可在线观看,其中对这一架构做了更详细的解释

查看英文原文: GoTo Copenhagen 2017: How Shopify Powers Online Commerce

2017-11-02 19:001152
用户头像

发布了 391 篇内容, 共 130.4 次阅读, 收获喜欢 256 次。

关注

评论

发布
暂无评论
发现更多内容

访问控制中PIP的典型流程和关键点思考

权说安全

访问控制

一次单据图片处理的优化实践 | 京东物流技术团队

京东科技开发者

性能优化 图片处理 pdfbox 企业号10月PK榜

人工智能改变日常生活和工作的未来

测吧(北京)科技有限公司

测试

软件测试|华新学院在2022 年全国大学生“火焰杯”软件测试高校就业选拔赛取得佳绩

霍格沃兹测试开发学社

Parallels Desktop 19 for Mac虚拟机

展初云

虚拟机 pd虚拟机 Mac安装win

四川华新学院在“火焰杯”软件测试高校就业选拔赛取得佳绩

测试人

软件测试

10.26 来 CNCC 2023 T16 展位,TDengine 精美周边等你来领!

TDengine

时序数据库 ​TDengine

一种基于闭包函数实现自动化框架断言组件的设计实践 | 京东物流技术团队

京东科技开发者

闭包函数 企业号10月PK榜 测试脚本 断言组件

安卓设备连接Mac必备的传输工具 MacDroid

展初云

FC红白机游戏600合集 for mac

展初云

Mac 游戏 FC 红白机游戏

美国站群服务器配置指南,帮你轻松管理多个网站

一只扑棱蛾子

站群服务器 美国服务器 美国站群服务器

人工智能的潜在益处与风险

测吧(北京)科技有限公司

测试

HarmonyOS音频开发指导:使用AudioRenderer开发音频播放功能

HarmonyOS开发者

HarmonyOS

大模型训练,提升AI能力的关键

百度开发者中心

深度学习 大模型

IDEA工具第二篇:自定义Java方法注释模板 | 京东云技术团队

京东科技开发者

Java IDEA 参数 注释 企业号10月PK榜

AI与就业:面对未来的失业风险

测吧(北京)科技有限公司

测试

如何让大模型生成更准确、可靠的结果?

鼎道智联

GPT

透明格栅屏与传统LED显示屏有什么区别?透明格栅屏用在什么地方?

Dylan

产品 LED LED显示屏

加速深度学习创新的引擎

百度开发者中心

大模型 LLM LLMOps

大模型训练,提升AI能力的关键

百度开发者中心

大模型训练 LLM

软件测试|第二届、第三届<火焰杯>软件测试开发选拔赛河北赛区颁奖典礼落幕

霍格沃兹测试开发学社

AI监管与政策:塑造人工智能未来

测吧(北京)科技有限公司

测试

LLM盛行下,如何高效训练大模型

百度开发者中心

大模型训练 LLM LLMOps

OpenHarmony Meetup成都站招募令

OpenHarmony开发者

OpenHarmony

第5期 | GPTSecurity周报

云起无垠

飞码LowCode前端技术系列(一):数据结构设计 | 京东云技术团队

京东科技开发者

低代码 营销 企业号10月PK榜 web页面搭建

用HarmonyOS做一个可以手势控制的电子相册应用(ArkTS)

HarmonyOS开发者

HarmonyOS

培养AI领域的未来人才

测吧(北京)科技有限公司

测试

文韬武略,创新无界,华为云1024程序员节精彩抢先看

华为云开发者联盟

程序员 开发者 华为云 华为云开发者联盟 华为云1024程序员节

应对全球性挑战的AI解决方案

测吧(北京)科技有限公司

测试

GoTo 2017哥本哈根大会:Shopify如何支撑在线商务_DevOps & 平台工程_Andrew Morgan_InfoQ精选文章