当前位置: 首页 > news >正文

BaaS(Backend as a Service)概述、平台、项目

概述

BaaS:Backend as a Service,后端即服务,用于构建和运行应用程序的后端服务平台,提供数据处理、存储和通信等功能,使开发者能专注于前端开发,无需考虑后端实现细节。

BaaS的本质是去后端化;商业BaaS平台的目标是让前端/非(资深)后端人员、甚至非技术开发者,都能快速获得(使用)后端能力。

付费

什么阿里云、腾讯云、AWS云等略过不提,这些闭源/付费产品都提供每月限额的免费资源使用量。

Firebase

Google提供的面向移动和Web应用的BaaS服务,提供在线Studio。目标用户:机器学习开发者、(偏)前端全栈开发者、初创团队、中小项目等。

提供功能

  • Authentication:身份验证和用户管理
  • Hosting:静态网站托管和动态内容托管
  • Realtime Database:实时数据库,用于存储和同步应用程序数据;用于聊天、协同编辑等场景
  • Cloud Storage:云存储和文件存储
  • Cloud Functions:云函数,支持无服务器架构,用户可以编写自定义的函数来处理数据
  • Cloud Messaging:消息传递
  • Firebase ML:可用于训练自定义模型,或选择Cloud Vision API在此执行ML任务
  • Crashlytics:崩溃报告,方便Bug-fix,trouble-shooting
  • Google Analytics:数据分析,用户增长等

作为一个依托于谷歌云(GCP)的云端PaaS平台,付费与GCP绑定。
在这里插入图片描述
Firebase提供不同存储等级,价格也不一样,可供灵活使用:

  • Standard:适合频繁访问的热数据,包括网站、流式视频和移动应用;
  • Nearline:费用低。适合至少可存储30天的数据,包括数据备份和长尾多媒体内容;
  • Coldline:费用很低。适合至少可存储90天的数据,包括用于灾难恢复;
  • Archive:费用最低。适合至少可存储365天的数据,包括法规归档。

认证:支持Google、Facebook和Twitter等平台OAuth 2.0认证登录。

Back4App

官网,基于Parse开源(官网,GitHub)项目,支持语言如iOS、Android和JS。目标用户:移动App开发者等。提供功能:

  • Data Storage:提供数据库服务,支持对象存储和文件存储
  • Push Notifications:提供实时推送通知服务
  • Analytics:提供数据分析服务,帮助用户了解应用程序的使用情况
  • Cloud Code:提供云函数功能,支持无服务器架构
  • UI Components:提供用户界面组件,帮助用户快速构建应用程序
  • Push:消息推送,市场营销
  • AI Agent:
  • MCP:

Backendless

官网,MBaaS平台,依赖图形化数据库表示、可视化UI构建器、预构建API来执行不同的服务器端操作。目标用户:非技术人员等。

功能

  • UI构建器:自带可视化UI构建器,方便处理应用客户端部分
  • 数据库管理:提供可视化数据库,支持SQL和非关系型模式
  • 用户推送:着陆页、电子邮件营销和推送通知,可在无需编写任何代码的情况下使用
  • API服务:提供安全的预装插件、SDK和API,包括即时API和AI音频、图像插件

Supabase

官网,开源(GitHub,88.9K Star,9.9K Fork)版Firebase,基于PostgreSQL(简称PG)生态,更适合复杂业务和开发者控制。

提供功能:

  • 实时数据库
  • 身份认证
  • 存储
  • 边缘函数Edge Function
  • 自动API生成,REST+GraphQL
  • Dashboard仪表盘
  • 与OpenAI等AI服务无缝集成;
  • 适用于推荐系统、图像搜索等场景

组件

  • PG生态
    • 所有数据存储在PG表中
    • 支持复杂查询、JOIN、事务、扩展(如PostGIS地理信息处理、PgVector向量相似度搜索)
    • 开发者可直接写SQL,也可用自动生成的API
    • 数据库触发器支持复杂的业务逻辑
    • JSON数据类型让开发更灵活
    • 全文搜索能力
    • RLS:Row Level Security,行级安全性,实现细粒度的权限控制
    • PostgREST:自动将PG表结构转换为RESTful API,让前端开发更便捷。
  • Supabase Auth(身份认证)
    • 基于GoTrue(开源认证服务):多种社交登录、双因素认证、企业级单点登录、自定义邮件模板
    • 支持:邮箱、密码、OAuth(Google、GitHub、Apple等)、魔法链接(Magic Link)、SSO(企业版)
    • JWT令牌集成,与RLS深度绑定
  • Supabase Storage(对象存储)
    • 基于PG+文件系统
    • 类似AWS S3,支持上传/下载/管理文件
    • 自动与Auth集成,支持权限控制
    • 功能:大文件支持、图片转换、访问控制、CDN加速
  • Realtime
    • 基于PG的逻辑复制(Logical Replication)+WebSocket
    • 客户端可订阅表变更(INSERT/UPDATE/DELETE)
    • 低延迟,适合聊天、协作、通知等场景
    • 功能:实时订阅、在线用户状态同步、低延迟数据传输(推送、同步)、广播机制
  • 边缘函数
    • 基于Deno运行时,分布式部署边缘节点,低延迟响应;支持自动扩展
    • 类似AWS Lambda,用于自定义业务逻辑
    • 支持TS,与Supabase SDK无缝集成
  • Auto API(自动生成API)
    • 根据PG表结构,自动生成:RESTful API、TS SDK、实验性GraphQL API
    • 开发者无需写后端代码,前端直接调用
特性SupabaseFirebase
数据库关系型PG文档型Firestore
查询能力复杂JOIN、聚合、子查询有限,需反范式设计
事务支持ACID事务有限(批量写入)
实时功能基于PG逻辑复制基于Firestore监听
身份认证开源GoTrueFirebaseAuth
存储SupabaseStorageFirebaseStorage
边缘函数基于TS的Deno基于JS的Node.js
开源全栈开源,可自托管闭源,仅SDK开源
自托管Docker/K8s一键部署不支持
成本免费层慷慨,按使用付费免费层有限,易超支
优势SQL能力强、开源可控、适合复杂业务生态成熟、移动端集成好、上手简单

适用场景

场景是否推荐说明
中后台管理系统强烈推荐SQL+RLS完美匹配
实时协作应用推荐Realtime+PG逻辑复制
移动端App推荐Auth+Storage+EdgeFunctions
复杂业务系统推荐JOIN、事务、存储过程支持
超高并发读写谨慎需优化PG(分片、读写分离)

性能

  • 单实例性能:取决于PG资源配置,如CPU/内存/磁盘
  • 读写分离:支持,通过多个客户端连接不同副本
  • 分片:Sharding,需手动实现,如Citus扩展
  • 缓存:通过边缘函数可集成Redis

Supabase正在开发Database Branching,类似Neon,支持秒级克隆数据库,适合开发/测试环境。

生态

工具说明
Supabase CLI本地开发、部署、管理
Supabase StudioWeb仪表盘,管理数据、Auth、Storage
VSCode Extension直接在编辑器中管理Supabase项目
Flutter/DartSDK官方支持移动端开发
PgVector支持AI向量搜索,与OpenAI集成
PostGIS地理位置服务

使用方式:

  1. 云托管:Supabase Platform,官方托管,免费层可用;自动扩展,无需运维
  2. 自部署:适合企业私有化部署,数据完全自主可控

部署

npm install -g supabase
supabase login
supabase init
supabase start
# 或
git clone https://github.com/supabase/supabase
cd supabase/docker
docker-compose up

使用

安装客户端库:npm install @supabase/supabase-js

import { createClient } from '@supabase/supabase-js'const supabase = createClient('https://your-project.supabase.com','your-anon-key'
)
// 插入数据
const { data, error } = await supabase.from('todos').insert([{ title: 'Hello Supabase!' }])
// 订阅实时变更
supabase.channel('todos').on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'todos' }, (payload) => {console.log('New todo:', payload.new)}).subscribe()

身份认证

import { createClient } from '@supabase/supabase-js'const supabase = createClient('YOUR_PROJECT_URL', 'YOUR_PROJECT_KEY')
// 邮箱密码注册
const signUp = async () => {const { data, error } = await supabase.auth.signUp({email: 'example@email.com',password: 'example-password'})
}
// 社交登录
const signInWithGithub = async () => {const { data, error } = await supabase.auth.signInWithOAuth({provider: 'github'})
}

实时数据同步

// 订阅实时更新
const subscription = supabase.channel('table_db_changes').on('postgres_changes',{event: 'INSERT',schema: 'public',table: 'messages'},(payload) => {console.log('Change received!', payload)}).subscribe()

向量搜索应用

-- 创建向量表
create table documents (id bigserial primary key,content text,embedding vector(1536)
);
-- 插入向量数据
insert into documents (content, embedding)
values ('示例文档内容','[0.1, 0.2, ..., 0.9]'::vector
);
-- 相似度搜索
select content, embedding <-> '[查询向量]'::vector as distance
from documents
order by distance
limit 5;

Supabase的核心安全模型是RLS:

-- 启用RLS
ALTER TABLE todos ENABLE ROW LEVEL SECURITY;
-- 创建策略:用户只能访问自己的todos
CREATE POLICY "User can access own todos"
ON todos
FOR ALL
USING (auth.uid() = user_id);

所有API请求自动携带JWT,PG根据auth.uid()过滤数据。

Appwrite

官网,开源(GitHub,52.8K Star,4.7K Fork)。Appwrite使您能够选择前端语言并利用其独特功能,如身份验证、函数和存储,其用户友好的仪表盘也只需最少编码。

功能

  • 身份验证:提供30+种身份验证机制
  • 数据库:高响应的DBMS使查询、过滤和存储数据变得快捷,遵循现代权限流程并提供定制的数据验证
  • 存储:通过文件上传、管理等功能,支持存储和压缩所有类型数据
  • 消息传递:发送应用内消息和推送通知

PocketBase

官网,开源(GitHub,51.1K Star,2.7K Fork)的后端即服务(BaaS)平台,把数据库、用户认证、文件管理、API接口全部打包在一个可执行文件里。数据库使用SQLite,支持实时订阅,还自带管理后台界面。

适用于原型开发和中小型项目,数据建模特别方便,在Web界面就能创建表结构。字段类型支持文本、数字、布尔、文件、关联。WebSocket连接建立后,数据变化会自动推送到前端。

功能

  • 内嵌数据库:基于SQLite,支持实时数据订阅。别小看SQLite,对于中小型应用来说性能完全够用。
  • 用户管理系统:注册、登录、邮箱验证、密码重置这些功能开箱即用。OAuth2集成也支持,Google、GitHub登录分分钟搞定。
  • 文件存储:图片、文档上传下载不在话下,还支持图片自动缩放。不用折腾七牛云、阿里云OSS什么的。
  • 管理后台:Web界面直接管理数据,增删改查都有。界面设计得挺现代化,不像那些老古董CMS。
  • REST API:自动生成RESTful接口,前端直接调用就行。还有JavaScript和Dart的SDK,用起来特别顺手。

安装

wget https://github.com/pocketbase/pocketbase/releases/download/v0.29.3/pocketbase_0.29.3_linux_amd64.zip
unzip pocketbase_0.29.3_linux_amd64.zip
./pocketbase serve

浏览器打开http://localhost:8090体验。

GO SDK接入:

package mainimport ("github.com/pocketbase/pocketbase""github.com/pocketbase/pocketbase/core"
)func main() {app := pocketbase.New()app.OnServe().BindFunc(func(se *core.ServeEvent)error {se.Router.GET("/hello", func(re *core.RequestEvent)error {return re.String(200, "Hello world!")})return se.Next()})app.Start()
}

SurrealDB

官网,开源(GitHub,30.1K Star,1K Fork)。更像是BaaS平台背后的引擎,而不是面向最终开发者的成品服务。

适用场景

  1. 实时聊天:用LIVE SELECT * FROM message WHERE room=$id就能把新消息推到浏览器,省去socket.io服务器。
  2. SaaS多租户:一张表搞定租户隔离,字段DEFINE FIELD tenant ON TABLE order VALUE $session.tenant自动注入,查询和索引天然带租户前缀。
  3. 游戏存档:嵌入式副本让手机端离线继续玩,回网后增量同步云端,SurrealDB自动处理版本冲突合并。
  4. 无服务器API:Vercel上30行函数Surreal.connect()直连线上集群,一个请求既查库存又减库存还发消息,Lambda冷启动仅180ms。

局限

  • 事务在单机用互斥锁,集群用Percolator协议,官方承认跨分片事务延迟比TiDB略高;
  • 生态刚起步,Grafana、Prometheus exporter由社区维护,文档不算厚
  • 部署TiKV需要额外学习成本,如果只想要开箱即用,memory或RocksDB后端在超过500GB数据下会出现压缩暂停观测到的秒级卡顿。

如果你正在做一个需要实时+离线协同、文档嵌套又偶尔跑复杂JOIN的新项目,确实能让技术栈瘦一圈:

  • 砍Redis Pub/Sub,节省云服务账单
  • 砍ETL链路,前端直接对接数据库变更事件
  • 砍Mongo分片+Postgres报表的双写难题

原理

两个关键词:多模型(multi-model)和实时协同(real-time collaboration)

底层实现SurrealKV,用Bitcask作为LSM-tree存储层,Key-Value接口把文档切成扁平tuple,保留字段级版本号,才能在不锁定schema的前提下维持可更新的二级索引。

实时推送:数据库变消息队列

传统方案把写操作落表,再让CDC工具(Debezium)推到Kafka,下游服务做投影。SurrealDB把这些步骤收进LIVE SELECT语句:LIVE SELECT * FROM temperature WHERE location='a1';一旦temperature表被插入或更新,WebSocket通道直接推送完整JSON给订阅客户端,延迟实测在本地环回中<1 ms。
在物联网场景下,一条温控传感器每秒写入10次,SurrealDB把变更事件当成数据库内的一等公民,客户端不需要解析binlog、拼合offset,直接拿事件对象就渲染图表,前端代码直接省掉一个Node中间层。

嵌入式与分布式同一个二进制

开发机执行surreal start --log=trace --user=root --pass=root memory就能跑完整的ACID实例;生产环境跑surreal start --node=3 --bind=0.0.0.0:8000 tikv://10.0.0.1:2379即可接入TiKV集群做横向扩容,两者同一个二进制文件。切换时不需要改代码,只要换启动参数,连接字符串依旧是surreal://root:root@localhost:8000
对中小企业来说,这意味着上线第一天用单机省成本,等订单量上来直接水平扩容,数据零迁移、客户端零改动。官方给出的基准:在8核32GB的三节点集群上,SurrealDB跑2.3万次QPS的混合读写,P99延迟在15ms左右,和同等规格PG+Redis双栈相当。

WebAssembly驱动的嵌入式边缘副本

一个容易被忽略的特性:SurrealDB可以编译到WASM,直接运行在浏览器或Cloudflare Worker里。查询引擎、事务与存储全部塞进浏览器沙箱,前端离线应用把数据存在IndexedDB,等网络恢复再和云端同步。官方Demo用300KB的WASM包跑一个带图查询的记事本,断网状态照样编辑内容,在线后自动冲突合并。
这一步真正做到了“端-边-云”同构。IoT设备如果运行wasmedge,可以直接在芯片里做轻量级事务,不需要额外MQTT broker。

开发者上手只需一份SQL方言

SurrealQL保持了与SQL接近的语法:CREATE person:100 SET name='Ada Lovelace', skills=['math','code'];插入文档;RELATE person:100->loves->person:101;直接建图边;SELECT <-loves<-person.name FROM person:101;双向图查找;支持事务BEGINCOMMIT;权限控制用DEFINE TOKEN生成JWT。熟悉的工程师半小时就能写CURD,学习曲线远低于Gremlin或Cypher。
CLI附带的surreal import可以把CSV、JSONL、SQL dump直接流式灌库,免去ETL脚本。

实战

部署:docker run --rm -p 8000:8000 surrealdb/surrealdb:latest start

NHost

官网,开源(GitHub,8.8K Star,544 Fork)。提供完全托管的云基础设施、快速开发和改进的GraphQL。简洁的仪表盘让开发者能在几分钟内部署和配置后端,使开发团队专注于客户端操作和核心业务。

功能

  • 数据库:基于PG,支持像处理电子表格一样,添加和编辑数据和表
  • GraphQL API:赋予GraphQL API聚合数据、启用实时订阅和轻松查询数据的能力。Hasura GraphQL引擎支持此API以加速触发器功能
  • 身份验证:可在几秒钟内为移动和网络应用程序部署企业级身份验证,如SSO、多因素认证、WebAuthn集成
  • AI工具包:

Kuzzle

官网,开源(GitHub,1.6K Star,134 Fork),适合建筑和物流行业处理企业级数据科学和物联网项目,提供本地和云解决方案。

功能

  • 多协议API:开发者可方便地根据需求定制API协议,默认支持MQTT、HTTP和WebSocket;
  • 实时引擎:负责数据实时访问库和发布/订阅通知;
  • SDK:支持React、Dart、JS、Vue、Angular等;
  • 用户认证:提供500+种验证方式。

推荐阅读

  • BaaS项目介绍
http://www.dtcms.com/a/394786.html

相关文章:

  • 区间dp,数据结构优化dp等5种dp,各种trick深度讲解
  • 数据结构笔试选择题:题组1
  • 前端基础:从0到1实现简单网页效果(一)
  • 数据结构|图论:从数据结构到工程实践的核心引擎
  • AI赋能个人效能提升:实战演练工作规划、项目复盘与学习发展
  • 7. Linux RAID 存储技术
  • iOS 上架 App 费用详解 苹果应用发布成本、App Store 上架收费标准、开发者账号与审核实战经验
  • kafka 2.12_3.9.1 版本修复 Apache Commons BeanUtils 访问控制错误漏洞(CVE-2025-48734)
  • 二分查找经典——力扣153.寻找旋转排序数组中的最小值
  • 离散数学之命题逻辑
  • 【Linux命令从入门到精通系列指南】ping 命令详解:网络连通性诊断的终极工具
  • 游戏UI告别“贴图”时代:用Adobe XD构建“活”的设计系统
  • NXP - 用MCUXpresso IDE导入lpcopen_2_10_lpcxpresso_nxp_lpcxpresso_1769.zip中的工程
  • ✅ Python+Django租房推荐系统 双协同过滤+Echarts可视化 租房系统 推荐算法 全栈开发(建议收藏)✅
  • Django入门-3.公共视图
  • 【 设计模式 | 结构型模式 代理模式 】
  • 小杰机器学习高级(five)——分类算法的评估标准
  • IS-IS 中同时收到 L1 和 L2 的 LSP 时,是否优选 L1
  • 【开源】基于STM32的智能车尾灯
  • 电子电气架构 --- 软件开发与产品系统集成流程(下)
  • Ubuntu系统目录架构是怎么样的
  • 自动驾驶仿真之“场景交互”技术研究
  • 《AI管家还是数字化身?—— 一种面向未来的个人智能架构构想》
  • AI提升工业生产制造安全,基于YOLOv9全系列【yolov9/t/s/m/c/e】参数模型开发构建工业生产制造加工场景下工业设备泄漏智能化检测识别预警系统
  • 深度学习(十一):深度神经网络和前向传播
  • js立即执行函数的几种写法
  • RecyclerView里更新列表数是不想让header也刷新,怎么处理
  • C#/.NET/.NET Core技术前沿周刊 | 第 55 期(2025年9.15-9.21)
  • 减少实验烦恼,革新实验效率——PFA塑料容量瓶降低实验成本与风险
  • 留给石头科技的赛道不多了