一起聊聊 Supabase 如何构建其平台工程策略

简介: 【9月更文挑战第4天】Supabase 是一家开源 PostgreSQL 数据库基础设施提供商,被视为 Google Firebase 的替代方案。该公司采用不断演进的平台工程策略,为其开发团队提供高效的应用开发工具。自2020年起运营的 Supabase 通过整合与自动化内部开发平台,显著提升了生产力。平台工程师 Samuel Rose 加入后,进一步正式化和扩展了这一策略,结合自有产品与行业标准工具,实现了更高效的开发流程。目前,Supabase 的平台工程成果显著,为开发者提供了更好的自助服务和支持。

Supabase 分享其平台工程经验和见解,因为它进一步完善和构建其开源 PostgreSQL 数据库基础设施应用程序,该应用程序与 Google 的 Firebase 竞争。

译自How Supabase Is Building Its Platform Engineering Strategy,作者 Todd R Weiss。

平台工程不是终点,而是一个不断改进、创新和实验的演进过程,旨在为开发团队提供一致、经过测试且高效的应用程序开发工具。这是大多数公司开始其平台工程策略时的计划,也是开源PostgreSQL数据库基础设施应用程序供应商Supabase的持续工作方式。

Supabase 自称为Google 移动和 Web 应用程序开发平台 Firebase 的开源替代方案,几年前就开始使用平台工程。该项目始于公司意识到,为其大约 50 名开发人员构建自己的内部开发平台 (IDP)将使公司能够整合、标准化和自动化其开发应用程序,从而提高团队的生产力、代码质量和其他优势。Supabase 自 2020 年开始运营。

“它随着时间的推移而不断发展,”Supabase 的平台工程师Samuel Rose在 2024 年 2 月加入公司后告诉 The New Stack。“他们已经做了一些类似的事情,并且 [开始] 将每个人都在做的事情正式化,将其转变为一个角色,我们可以在整个公司中对此负责。”

“Supabase 一直采用不断发展的平台工程方法,但我被聘用是为了在整个组织中将其正式化并扩展,”Rose 说。“我们将继续每周对其进行改进,并且已经在公司不断发展的平台工程策略中取得了巨大进展。”

Rose 说,公司的平台工程项目源于许多团队的 IT 管理员和开发人员共同努力,为他们的工作创建平台工程方法。“需求越来越大,以至于 Supabase 需要至少聘用一名全职人员来推动它向前发展,”这就是他加入公司的原因。

Rose 解释说,导致这些决定的因素是 Supabase 不断增长的客户群以及在管理构建、测试和发布流程方面不断增长的技术复杂性。他还补充说,公司“希望在我们的内部平台上使用和利用我们的产品,只要它有意义”。

“我在这个行业工作了 20 多年,”Rose 说。“Supabase 四年前成立,在经过四年的工作和扩展之后,这家公司现在成长到满足这些需求是相当自然的。在 Supabase,我们使用自己的产品,并将我们的一些组件作为工具用于我们的内部平台。”

Supabase 并没有从头开始构建和创建其平台工程策略。相反,它从预先构建的平台工程工具推荐开始,这些工具来自Cloud Native Computing Foundation (CNCF)等组织的示例云原生景观概述,Rose 补充道。

“我们的平台与那些平台工程方法非常吻合,”他说。“但我们在平台中使用了一些我们自己的产品,包括我们自己的 API 和以 Postgres 为中心的开发,”而不是使用预构建推荐网格中提供的一些现成或软件即服务组件。

这种定制的平台工程方法非常适合 Supabase,使公司能够将内部工具与其他行业标准工具结合起来构建应用程序。

“主要目标是将我们正在使用的现有构建块用于平台工程,并将它们整合、自动化,并为每个人提供更坚实的基础,”Rose 说。“这并不是一种非常传统的平台工程方法,但它非常适合公司。它随着时间的推移而不断发展。”

Rose 表示,为了实现这一目标,Supabase 目前正在围绕某些标准和某些工具进行整合。

“有时人们谈论平台工程时,他们指的是采用整个平台,这实际上就像其他人编写的某种软件,并将所有东西都放在里面,就像一头扎进游泳池的最底部,”Rose 说。“我们并没有真正这样做。我们 [也使用] 我们自己的工具。” Rose 说,这些平台工程工作是 Supabase 开发工作和流程的自然产物。“所以,他们很容易看到这种需求——在我参与之前,他们就开始着手这项工作。我一直与他们合作,我们……将它变成了现实,就做你所说的平台工程而言,它已经进入生产阶段。它还在进行中。”

Supabase 内部开发者平台包含什么

为了给开发者提供构建 Supabase 应用所需的工具,该公司的 IT 管理员围绕少量开发应用构建了他们的平台工程平台。

Rose 说:“我们尽量节俭,这样就不会造成 [问题],因为如果你不断地往篮子里扔工具,你最终就需要管理所有这些工具。”“所以,我们在这方面很谨慎。我们大约有五到七种主要的组件,我们尽量整合和利用尽可能多的现有系统。”

Supabase 的 IDP 中包含的工具包括:

  • 开发者控制平面: Supabase 利用内部维基、GitHub、Terraform和Pulumi。该公司还使用基于Docker的自定义工具和其他相关工具在本地运行其平台,以及其 SaaS 后端即服务产品,该产品也可以在本地运行。
  • 集成平面: Supabase 使用 GitHub Actions、Nix 包管理器/Debian 包、Docker、Amazon S3 和自托管的 Nix 二进制缓存。此外,它还使用 Humanitec 的平台编排器和内部自定义应用程序。
  • 安全平面: Web 应用防火墙 (WAF)、AWSGuardDuty、Google云平台入侵检测系统 (IDS)、AWS Secrets Manager、AWS EC2 Instance Connect 和其自身工具(在某些情况下)。
  • 监控和日志记录平面: Vector、Sentry、BigQuery、VictoriaMetrics 和其自身的Logflare 工具。
  • 资源平面: Supabase 主要使用 AWS 和 GCP 平台中内置的工具,以及战略性地使用其自身产品来管理元数据、集群等。

到目前为止,其平台工程工作的结果对 Supabase 来说很有希望。

Rose 说:“其中一件事是,它为我们提供了一种途径来管理为客户提供更好的 Postgres 新版本。”“我们团队内部的人员可以 [创建] 他们所谓的确定性构建,他们可以构建一次,就不需要再构建了。这是我们正在为平台工程创建的新平台的一部分。[你] 可以反复使用它,除非你改变了什么,所以它可以减少构建时间,并有助于确保系统之间可重复。过去,这很难做到。”

Rose 解释说,通过使用 IDP,开发者可以专注于他们的代码,完成他们的工作,然后继续进行下一个项目,而不必花费宝贵的时间来配置、收集和维护他们的开发工具。“我们已经到了很多开发者可以自助服务他们大部分需求的阶段,同时拥有对监控和测试的安全访问权限,并支持生产部署。”

相关文章
|
8月前
|
人工智能 运维 机器人
我用开源项目把 AI Agent 和钉钉打通了,现在能查人、发消息、管文档
dingtalk-skills 是面向 AI Agent 的钉钉技能库(v0.4.0),零代码、零依赖,一行命令安装。现支持知识库、AI表格、消息发送、待办、通讯录5大核心场景,对话即可操作钉钉,已开源。
1440 2
|
8月前
|
人工智能 Kubernetes 安全
OpenClaw 在严肃场景下的实践:迁移 Ingress NGINX
Kubernetes 官方声明说得很清楚:你只有两个月时间。
381 47
|
9月前
|
数据库 Python
15 分钟用 FastMCP 搭建你的第一个 MCP Server(附完整代码)
Model Context Protocol(MCP)是一个轻量开放标准,让LLM能统一、可靠地调用外部工具。无需手写解析逻辑或维护胶水代码。核心仅三概念:Server(暴露工具)、Tool(带装饰器的函数)、Client(调用方)。FastMCP框架15分钟即可上手,支持stdio快速测试、HTTP生产部署,真正实现“写一次,随处调用”。
1394 5
15 分钟用 FastMCP 搭建你的第一个 MCP Server(附完整代码)
|
8月前
|
人工智能 自然语言处理 API
9.9元定制专属AI员工:阿里云OpenClaw快速部署全攻略!
在AI从“能说”迈向“能做”的关键节点,OpenClaw(原Clawdbot)以自然语言驱动任务执行,支持邮件处理、代码生成、跨平台协作等真实办公场景。仅需9.9元起,通过阿里云轻量服务器三步部署,15分钟即可拥有7×24小时在线的专属AI员工。
791 5
|
7月前
|
人工智能 JavaScript 数据可视化
OpenClaw 一键安装包使用指南与环境配置
OpenClaw一键安装包(v2.6.1)专为Windows 10/11设计,全程可视化部署,无需命令行与手动配置,内置Python/Node.js等全部依赖,5分钟快速完成安装。含28万免费Tokens,支持AI自动操控电脑、文件管理、多模型对话等功能。(239字)
|
10月前
|
人工智能 安全 API
黎跃春深度解析:基于阿里云百炼平台的 AI 智能体应用开发实战思路
本文详解如何在阿里云百炼与灵积平台构建高可用AI智能体,融合Graph-RAG、Workflow编排与Python插件开发,实现业务闭环。覆盖RAG数据治理、API集成、安全合规及效果评估,助力开发者掌握AI运营工程师核心能力,快速达成25k–30k+职业跃迁。(239字)
|
10月前
|
JavaScript 搜索推荐 持续交付
手把手教你用 Vercel 免费部署 RSSHub
本文详细介绍如何使用Vercel免费部署RSSHub服务。通过Fork仓库、注册Vercel、导入项目并调整分支与Node.js版本配置,实现一键部署个性化的RSS订阅源,解决部署中常见的版本冲突问题,并提供注意事项与验证方法,助你快速搭建可公开访问的RSS服务。
1665 0
|
数据可视化 数据库 开发者
使用Dash构建交互式Web应用程序
【10月更文挑战第16天】本文介绍了使用Python的Dash框架构建交互式Web应用程序的方法。Dash结合了Flask、React和Plotly等技术,让开发者能够快速创建功能丰富的数据可视化应用。文章从安装Dash开始,逐步介绍了创建简单应用程序、添加交互元素、部署应用程序以及集成更多功能的步骤,并提供了代码示例。通过本文,读者可以掌握使用Dash构建交互式Web应用程序的基本技巧和高级功能。
|
设计模式 Java uml
08.面向对象的特性
本文详细介绍了面向对象编程的核心特性:封装、抽象、继承和多态。封装通过限制访问保护数据,提高代码可维护性和易用性;抽象隐藏实现细节,关注功能本身,增强代码扩展性;继承表示类间的“is-a”关系,解决代码复用问题,但需谨慎使用以避免复杂性;多态允许子类替换父类,提升代码扩展性和复用性,是设计模式的基础。此外,文章还探讨了面向对象分析与设计(OOA/OOD)、UML建模语言以及这些特性在实际编程中的应用。最后提供了多个学习资源链接,涵盖Java、C/C++、Android开发及算法等内容,适合开发者深入学习面向对象思想及相关技术。
607 10

热门文章

最新文章