挑战: SaaS 公司 Bunny 致力于简化账单和营收运营,但面临一个难题。他们希望提供一流的分析功能,但从头开始构建分析平台既困难又耗时。他们需要一个工具,能够部署在自己的服务器上,清晰地呈现数据,并且无需与另一个数据库同步数据。
解决方案: 他们选择了 Metabase,因为它能按他们想要的方式显示数据,并且他们能够将 Metabase 运行在自己的服务器上。Bunny 利用 Metabase 的功能来控制谁可以看到哪些数据,并使嵌入式图表和仪表板与他们自己的品牌形象保持一致。
成果: 通过将 Metabase 嵌入到他们的 SaaS 产品中,Bunny 能够为客户提供出色的分析功能(同时兼顾隐私和定制化),同时让他们的技术团队专注于开发其产品的独特功能。
"Metabase 为我们的产品提供了关键组件,它为我们的客户提供了直观的分析,同时让我们的工程团队能够专注于我们业务核心的其他方面。"
托马斯·佩德森
Bunny 首席执行官兼联合创始人
Bunny 将 Metabase 嵌入到其 SaaS 应用中,以提供面向客户的分析。作为二次创业的 SaaS 创始人,Bunny 团队早已知道自行构建分析引擎是不值得的。他们已经确切地知道他们希望向客户展示哪些分析数据。他们也知道他们希望工程师专注于产品开发,并且正在寻找一个可以购买的解决方案。在选择供应商之前,他们已经决定了要提供哪些仪表板,这使得选择过程更加容易。Bunny 的一位工程师研究了他们已经熟悉并有经验的解决方案,以及一些新进入者,其中就包括 Metabase。
“我们选择 Metabase 是因为我们可以将其部署在自己的服务器上,而且其可视化选项在功能和完成度上都满足了我们的需求。” Thomas 说。
Bunny 团队特别不希望将数据同步到另一个供应商的数据库,原因有几个:延迟、带宽、数据隐私和数据模式迁移挑战。Metabase 直接部署在他们 AWS 上的服务器上,这为他们提供了所需的性能和灵活性。
Bunny 在 AWS/Postgres 中托管他们的服务,分为两个不同的分片:一个用于开发人员,一个用于生产。没有单独的 ETL 工具,因为所有数据都是在客户注册或销售人员创建交易和订阅时直接在 Bunny 中创建的。Metabase 运行在单独的只读 Postgres 副本上,以将分析查询与事务性工作负载分离。
Bunny 团队依靠 Metabase 中的数据权限来控制每个租户在 Metabase 中可以看到哪些数据。Bunny 为所有记录标记一个 tenant_id
,当用户通过 SAML 登录 Metabase 时,应用程序会传递这个 ID。这个 ID 告诉 Metabase 每个客户可以探索哪些数据。
Bunny 还通过自定义颜色、徽标等方式对 Metabase 进行白标,使其与自己的用户界面相匹配。
在构建 SaaS 产品时,关于是自己开发还是购买,需要权衡很多因素。Bunny 希望能够为客户提供世界级的分析,而无需投入大量工程资源来构建和维护分析功能,因为这些功能永远无法与 Metabase 这样的同类最佳产品相媲美。通过嵌入 Metabase,Bunny 现在可以将其工程资源集中在改进其核心产品上,从而在竞争中取得领先地位。