LUSH如何利用CockroachDB优化全球库存管理

298 阅读6分钟

每天,Lush在位于49个不同国家的950多家商店中处理数十万笔交易。一致性很重要。当使用正确的工具来提供实时数据洞察力时,库存管理可以创造非凡的机会。

在这篇博客中,我们将介绍Lush的库存管理架构在CockroachDB之前是什么样的,以及他们在CockroachDB中能够完成什么。

Lush在迁移到CockroachDB之前的架构

如果你还没有沉浸在Lush浴霸的香味中,那么你可能不知道Lush新鲜手工化妆品是一个全球性的新鲜手工化妆品的发明者、制造商和零售商--以其原料的质量和包装的环保性(或不环保)而著称。

在迁移到CockroachDB之前,Lush的数据库架构由MySQL实例组成,这些实例分布在Lush集团运营的20个国家中。虽然这种架构是公司在全球范围内发展的一个组成部分,但它也造成了很多操作上的复杂性。特别是,不同的MySQL实例不能相互交流,这使得优化库存或评估公司在全球范围内的表现变得困难。

不同的MySQL实例的挑战

在这种不同的MySQL实例架构中,没有简单的方法可以立即评估Lush产品在全球范围内的性能。数据需要位于同一系统中,以便于查询这些数据。

数据保护法和数据本地化法规的出现增加了更多挑战。作为一个在全球范围内开展业务的国际零售商,Lush被要求将一些用户数据存放在特定国家。这是在全球范围内开展业务的成本,而且完成起来非常棘手。

Lush希望简化他们的数据架构并使之现代化,以便更容易分析公司的全球业绩,遵守当地的数据法规,并降低运营的复杂性。他们的要求包括。

  • 高可用性
  • 云端中立
  • 易于管理全球用户数据
  • 来源可用
  • 标准SQL和简单的数据插入和提取
  • 一个可管理的产品

从Google Cloud Spanner上迁移

在最终使用CockroachDB之前,Lush首先从MySQL转向Google Cloud Spanner,以实现其数据库的现代化。他们很快就遇到了一些问题。

  1. 云锁定:使用Spanner将Lush锁定在谷歌云的生态系统中。即使是将数据导出到CSV这样的任务,也需要使用谷歌产品,如导出到桶中。
  2. 黑匣子:Spanner缺乏可见性,使工程团队难以排除故障。Lush扩展到10个节点没有问题,但他们不得不盲目做出这个决定。而在CockroachDB中,他们从3个节点开始,就可以看到正在发生的一切。
  3. 自定义编程语言:Spanner使用的是自定义查询语言,而不是标准的SQL。这就要求已经精通SQL的Lush的工程团队学习一种新的编程语言,以便对Spanner进行编程。

由于这些挑战,Lush最终确定Spanner不是正确的解决方案,并开始评估替代方案。他们的研究使他们找到了CockroachDB。

Lush如何评估CockroachDB

Lush在2017年开始评估CockroachDB。开箱即用的CockroachDB满足了他们最迫切的要求。

首先,CockroachDB是一个源代码可用的数据库,对代码有100%的可见性。它使用标准的SQL,使Lush团队很容易快速启动和运行。

能够在几秒钟内用Docker在本地启动CockroachDB节点,使Lush的开发人员能够边做边学,这在其他数据库技术中是不可能或不容易做到的。Go语言对Postgres语言的支持与入门的简易性相结合,使得Lush的开发者生态系统实现了无缝整合。

Lush还具有极高的可用性要求。作为一个每天处理165,000个金融交易的全球零售商(在英国),他们的数据库必须具有超强的适应性,不能出现中断或停机的问题。CockroachDB提供零RPO(恢复点目标)和平均4.5秒的RTO(恢复时间目标),确保数据永不丢失,应用程序高度可用。

最后,Lush正在寻求一个可管理的数据库,以便他们的工程团队可以专注于应用开发,而不是维护第三方软件。当他们在2017年开始评估时,托管型CockroachDB正在开发中,在CockroachCloud推向市场的同时,Lush成为了设计合作伙伴。

Lush公司的CockroachDB工作负载

优化全球库存和订单管理

Lush计划将CockroachDB用于许多不同的使用案例,包括作为所有订单的记录系统。该项目将从英国的所有商店开始,其中有100多家商店,并将扩展到全球所有950多家商店。

Lush还将部署CockroachDB作为他们的库存管理层。这将为Lush提供一个全球库存的实时视图,使他们能够看到他们在某个特定的商店、某个特定的国家和整个世界有多少产品--这是他们以前没有的可见性。

增加对库存的可视性使Lush能够优化他们为商店进货的策略。这使他们能够避免出现库存不足的情况,并积极主动地利用他们在特定地区看到的趋势。

分析全球业务并遵守法规

CockroachDB为Lush提供了他们所有数据的全球视野。同时,Lush可以将数据划分到某一特定区域,而不会失去访问和分析数据的能力。

对Lush来说,特别有吸引力的是,他们可以在决定需要地理分区的地方之前配置他们的数据库。然后,他们可以追溯性地选择数据的存储位置,既满足了数据主权的考虑,又满足了对数据的全球视野的需求。这对Lush来说是非常强大的,因为它允许他们对如何处理(一个非常大的数据集)产品库存进行战略考虑。

缓解运营管理

降低运营的复杂性是用减法做加法。通过CockroachDB,Lush不再管理几十个MySQL分片。CockroachDB能够自动平衡,自动恢复故障,并且无需手动分片数据就能进行扩展,这让Lush的工程团队减轻了巨大的管理负担。

作为CockroachCloud的早期用户和设计合作伙伴,Lush能够进一步减少他们的运营管理。这使得他们的开发人员可以完全专注于应用程序开发,而不必担心任何类型的分布式系统所存在的潜在问题。

Lush的开发人员因为CockroachDB的自动化而获得了时间。这使得开发人员能够评估和使用数据来做出正确的决定。

想了解更多关于Lush的CockroachDB工作负载和其他CockroachDB使用案例,请查看我们的客户页面。