Aiven被采纳用于处理百万级数据点的自动事件驱动架构
盆栽转向爱文,采用自动事件驱动架构处理数百万数据点。
2023年9月14日 èr jiǔ yuè shí-sì rì)
采用Aiven的自动事件驱动架构来处理数百万个数据点的盆栽。
在Google Cloud上使用Aiven for Apache Kafka®解决与商品目录扩展相关的数据问题。
Bonsai是一个在2016年成立的电子商务平台,备受北美和欧洲精英出版商和零售商的信赖。凭借其探索性电子商务技术,用户可以在喜爱的内容中购买商品。当Bonsai的商品目录从Shopify的小型商店的几千件商品扩大到数百万件,并得到持续更新时,该公司开始关注Aiven的托管服务和在Google Cloud上自动化的事件驱动数据架构。
最近,Aiven的商业账号执行官Alan Scott作为Google Cloud客户社区(C2C)举办的网络研讨会之一,与Bonsai的工程总监Brent Van Gorder进行了对话。该网络研讨会探讨了构建Bonsai数百万数据点数据管道的主要推动因素、挑战和成果。以下是其中的摘录。
阿兰·斯科特:请告诉我关于盆景的事情。
布伦特·范·加特尔伊(以下简称布伦特):我们是一家科技公司,提供现场结账服务,以使消费者在形成购买意愿时能够立即购买。通过使用API、预构建的UI组件、商品提供等多种集成方式,我们提供了一个从包括百思买在内的400多家零售商那里收集了数百万个商品的目录。我们的合作伙伴提供商品、目录和API、以及使用我们的UI产品的合作伙伴和购买这些商品的客户。
**阿伦·斯科特:开始使用Aiven时,您打算解决什么样的问题?
Brent Van Geertruy(布伦特·范·吉尔特雷):在过去几年中,我们公司的产品目录从Shopify(一个小型店铺)的几千个商品扩展到几百万个商品。因此,我们每天需要进行大量的更新,涉及价格变动和库存更新等事项。
我们有我们自己构建和维护的独特仪表板。该仪表板用于订单处理、商家、客户和商品目录的管理。几年前,从小型加盟商那里获得高品质的商品信息往往是困难的。内部团队需要手动检查所有商品,并确认从商品描述到颜色等方面是否与我们的设计相符。这样做既不具备扩展性也不具备持续性。
由于我们最初拥有一个需要近20个同步步骤的大型单体应用程序来进行商品进口,我们开始研究事件驱动型系统。我们首先要解决的问题之一是图片上传。每次导入商品,都需要将图片上传到服务器。由于销售商的图片URL经常被阻止或不允许修改图片,我们无法依赖它们。想象一下,只有1000个或10万个商品的供稿!每次都要等待整个上传管道拥堵才能完成图片上传。
我们开始使用Aiven for Apache Kafka®,减少了同步处理并采用了更多事件驱动的方式。此外,我们利用Aiven连接器将Kafka与MongoDB结合起来生成数据流。我们使用MongoDB连接器等待商品变更,然后自动将其导入到导出系统,而不需要手动显示并更新数据流。使用Aiven进行设置非常简单。从基础设施的角度来看,能够使用Aiven的Terraform提供程序是非常棒的事情。
请告诉我有关从单块式架构向事件驱动架构转变的情况,谢谢。
布伦特·范·加特鲁伊(以下简称布伦特):我们团队多年来一直在讨论事件驱动架构。这似乎是解决应用程序扩展的一切问题的圣杯。特别是当Netflix强调使用它时,这也成为话题。
然而,我们的应用程序已经包含了大量逻辑,并且非常耦合且同步,存在着由过去五年的实验所带来的技术债务。因此,在优先考虑客户的定制需求的情况下,大规模的改进工作一直被搁置。
由于API的使用增加,我们最终开始使用Kafka。通过这种方式,我们能够给产品带来成熟度,同时确保有足够的时间来解决技术债务并集中于生态系统的更大部分重构。我们与高级开发者进行了多次会议,探讨了完美世界的定义、当前存在的瓶颈,以及通过事件驱动的方法是否能够解决这些问题。我们选择了事件驱动的方式,但并不是从单体架构到事件驱动的完全重构,而是进行了迁移的过程。
阿兰·斯科特:为什么选择了Aiven?
布伦特·范·加尔特伊(以下简称布伦特):我们以前经常选择按使用计费的工具,并始终从小规模成本开始。但是,如果涉及每天处理数百万个与产品流水线相关的更新,成本很快就会膨胀起来。价格透明度是选择Aiven的原因之一。此外,Google是我们的主要云服务提供商,通过Google Marketplace与Google Cloud集成,我们可以非常轻松地开始使用该平台。Aiven团队提供了出色的支持,我们正在寻找除Kafka之外具有专业知识的供应商。此外,我们还使用Aiven作为托管的内存型NoSQL数据库Redis。通过与Kafka相同的供应商,通过GCP的计费获得,这变得更加简单。
**阿兰·斯科特:您的主要学习领域是什么?**
布伦特·范·加尔特鲁伊(以下简称布伦特):最初的提议是将一切改为事件驱动型系统。相反,我们决定对系统进行测量,找出瓶颈,并采取更敏捷的方式来应对。解决一个瓶颈后,通常会出现另一个瓶颈。
一个显著的例子是当商品图片从同步上传方式改成异步事件处理方式时。这样解决了图片阻塞管道的问题,但很快就遇到了商品管道无法处理进货速度的问题。基本上,商品图片上传的速度对于管道的速度和稳定性起着关键作用。一旦解决了这个问题,就会在其他地方感觉到负载,并且现在也得到了改善。换句话说,与大规模改造相比,考虑更高级的架构规划并逐个处理瓶颈会更好。
请点击链接查看Webinar的详细内容:https://aiven.io/webinar/building-real-time-event-streaming-engines
请订阅我们的月刊新闻简报,以获取关于 Aiven 和我们的服务的最新消息,以及与开源相关的各种信息!您也可以在 LinkedIn 和 Twitter 的动态中看到关于 Aiven 的日常新闻。
如果您想了解服务的更新信息,请查看修改记录。