挑战: Bunny,一家旨在简化计费和收入运营的 SaaS 公司,面临一个问题。他们希望为用户提供顶级的分析功能,但从头构建一个分析平台既困难又耗时。他们需要一个可以部署在自己服务器上、清晰呈现数据且无需与另一个数据库同步数据的工具。
解决方案: 他们选择了 Metabase,因为它能够以他们想要的方式显示数据,并且他们能够将 Metabase 部署在自己的服务器上运行。Bunny 利用 Metabase 的功能来控制谁可以看到哪些数据,并使嵌入式图表和仪表盘与他们自己的品牌外观保持一致。
成果: 通过在其 SaaS 产品中嵌入 Metabase,Bunny 得以向客户提供出色的分析功能(内置隐私和自定义),同时还能让其技术团队专注于打造其产品的独特性。
"Metabase 为我们的产品提供了关键组件,它为客户提供了直观的分析,同时让我们的工程团队能够专注于我们业务的核心事项。"
托马斯·佩德森
Bunny 首席执行官兼联合创始人
Bunny 嵌入 Metabase,在其 SaaS 应用中提供面向客户的分析。作为二次创业的 SaaS 创始人,Bunny 团队深知自行构建分析引擎不值得投入精力。他们清楚地知道希望向客户展示哪些分析数据。他们也知道希望工程师专注于产品开发,因此正在寻找一个可购买的解决方案。在选择供应商之前,他们已经决定了要提供哪些仪表盘,这使得选择过程变得容易得多。Bunny 的一位工程师研究了他们熟悉并有经验的现有解决方案以及一些新进入者,其中就包括 Metabase。
“我们选择 Metabase 是因为它可以在我们的服务器上部署,并且其可视化选项在功能和完成度方面都满足了我们的需求。”——托马斯说。
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 现在可以将工程资源集中于改进其核心产品,从而在竞争中保持领先地位。