网易首页 > 网易号 > 正文 申请入驻

数据库即架构

0
分享至

数据库是业务架构的核心,是不言自明的共识。但如果我们更进一步,将数据库作为业务架构本身,将业务逻辑甚至 HTTP Server 都放入数据库中,又会有怎么样的火花?

在1月4日举办的上,我邀请尤里来中国,进行了题为《数据库驱动未来》的主题分享。 他抛出了这个观点 ——数据库就是业务架构。简单说,他的开源 PostgreSQL 项目 —— Omnigres ,尝试把所有应用的业务逻辑,甚至是 HTTP 服务器都放入 PostgreSQL 数据库中。


如果你觉得这听上去有点不靠谱,先别急着下结论 —— 我也曾亲眼目睹过这样的成功实践,所以今天就来和大家探讨下这个有趣的话题。

数据库是架构的核心

“If you show me your software architecture, I learn nothing about your business. But if you show me your data model, I can guess exactly what your business is.”。

数据库祖师爷迈克·石破天(Michael Stonebraker)有句名言:“如果你给我看软件架构,我对你的业务一无所知;但如果你给我看数据模型,我就能精准知道你的业务是干嘛的”

无独有偶,微软的 CEO 纳德拉:我们今天所称的软件,其实只是数据库上的一个华丽界面。他将其简化为一个叫“CRUD”的概念:创建(Create)、读取(Read)、更新(Update)和删除(Destroy)。

也就是说,你喜欢的那些应用程序,不过是包装精美的数据库操作界面而已。BTW, Nadella 还提出 SaaS is Dead:因为以后 Agent 可以直接绕过中间商,代替前后端去读写数据库了。


即使在 GenAI 爆火的当下,绝大多数信息系统的整个 IT 技术栈依然是以数据库为核心设计的。无论业务架构怎么折腾,底层的东西永远是万变不离其宗。所谓的分库分表,几地几中心,异地多活这些架构花活,说到底也就是数据库的不同使用方式罢了。


数据库是业务架构的核心,是不言自明的共识。但如果我们更进一步,将数据库作为业务架构本身,又会如何?

什么,还能这么玩

在 PG 生态大会上,尤里展示了一个思路:把所有业务逻辑,甚至是Web服务器都塞进 PostgreSQL 里。比如可以通过写存储过程,把原本后端的一部分功能直接放到数据库里执行。为此,他还基于 PG 扩展做了很多“标准库”,从 HTTP、vfs、os 到 Python 模块,都可以内嵌在 PostgreSQL 中。

让我们来看一个有趣的例子,在 PostgreSQL 中执行以下 SQL,将会启动一个 Web 服务器,将/pg/bin/(或者其他任何目录)作为一个 Web 服务器的根目录对外提供服务。


是的,夭寿啊,PostgreSQL 数据库竟然拉起来了一个 HTTP 服务器,默认跑在 8080 端口!你可以把它当成 Nginx 用!


但更重要的是,你还可以将任意的 PostgreSQL 函数(支持 20 多种存储过程语言)挂载到 HTTP 端点上,实现你想要的任何东西。像这样的 Omni 扩展总共有 33 款,当然也不要忘了 PG 生态里还有接近 400 个开箱即用的扩展插件可以提供各种功能


这一套扩展全家桶,提供了在 PostgreSQL 中进行 Web 开发的能力!

在数据库中跑Web服务器是馊主意吗?

PostgREST 和 Postgraphile 这样的工具,可以将设计良好的 PostgreSQL Schema 直接转化为开箱即用的 RestAPI, 而类似 Omnigres 这样的工具干脆百尺竿头更进一步,直接让 HTTP 服务器运行在了 PG 数据库内部!


目前来说,这种实践绝对算不上主流。站在一个 DBA 的角度来讲,我肯定认为这是一个给 DBA 找麻烦的馊主意。但站在一个开发者,特别是前端开发者的角度来说,我认为这个主意还是很有意思,值得探索的!因为确实很省事 —— 前端一套 Next.js 一把梭,后端一个数据库全部搞定了,架构简单无比。

早先在探探在使用 PostgreSQL 时,几乎所有的业务逻辑(甚至推荐算法)都在 PostgreSQL 里实现,后端只负责很轻的一层封装 只不过,这种做法对开发者、DBA 的综合技能要求较高,毕竟写存储过程、维护复杂的数据库逻辑不是一件轻松活儿。而且那个时候,数据库通常也是整个架构中的性能瓶颈,哪有余量给这些花活。

但现在随着两个关键要素的变化(AI 的出现与),利弊权衡发生了改变。GPT 显然已经达到了能够熟练编写存储过程的中高级开发者的水准,而遵循摩尔定律发展的硬件直接把单机性能推到了一个匪夷所思的地步。

数据库中跑Web服务器的利弊

在数据库中跑Web Server这种模式有一些好处:

•你的业务逻辑,业务模型,业务数据放在一个地方,用统一的方式来管理。•你的业务代码就是一个放着 Python / JS / Java 等存储过程的目录,更新发布,CI/CD 都非常简单。如果负载高要降级,把非关键的存储过程刷新或在数据库里设置标记就实现了。•存储过程避免了应用后端与数据库的多次网络RT,通常有更好的延迟表现(总吞吐量会下降,但以当下的硬件水平与性能余量,Who cares!)•你所需要的只有一个 PostgreSQL 数据库,后端融入到数据库里,运维管理极为便利,方便进行单元化部署与敏捷交付。

这种模式的主要弊病有两个:

1.互联网时代,数据库是瓶颈,难以伸缩,大家希望通过让应用承担更多,数据库退后的方式解决 scale 的问题。2.对开发者水平的要求太高了,用好数据库对开发者本身已经是一件很有挑战的事情,而写存储过程的技能在年轻一代开发者中几乎已经失传了,维护管理更是对 DBA 提出了极高的要求。

但随着时代发展,这两个主要问题得到了解决:硬件的发展让数据库的性能重新出现巨大的富余。AI 的出现让开发者的水平(AI加持下)得到了突飞猛进的发展。

前者让数据库性能余量重新回到了一个可以在大多数场景下容纳业务逻辑的地步,后者解决了开发者不会写存储过程的问题。因此在当下,数据库即架构(DBaaA)成为了一种非常值得探索的实践。

数据库即架构理念有一个非常成功的案例 —— —— 可能有 80% YC 创业公司都在使用它。Supabase 号称自己是一个 Backend as a Service,将 PostgreSQL,对象存储,以及 EdgeFunction 封装成为一整个运行时,然后将后端与传统意义上的数据库整体打包成为一个 “新的数据库”。


但 Supabase 本身仍然是一系列容器组件缝合拼接起来的,如果这种架构走到极致,大概会变成 Omnigres 的样子 —— 一个运行着 HTTP 服务器的 PostgreSQL,Nothing Else。


这也许意味着软件架构的钟摆重新回归简单 —— 绕开花里胡哨的中间件,前端直接访问数据库,甚至连传统移动/Web前端也许最终也会被 LLM Agent 与其他 Interface 替代。最后直接由 Agent 代理访问数据库。


那么要不要试试呢?

顺便一提,我们已经与 Omnigres 达成了合作。昨天在 Omnigres 创始人 Yurii 的帮助下,我为 Omnigres 构建了主流 Linux 上的 RPM/DEB 包,包含了了以下 33 个扩展插件,开箱即用。(https://ext.pigsty.io/#/omni)


Omnigres 提供的 33 个 PG 扩展插件现在可以在 Pigsty 中开箱即用,而 Omnigres 提供的容器镜像中也包括了 Pigsty 的 300+ 扩展,可谓开源生态互惠共赢之典范。



如果你想试试在数据库里写应用,一套 PG 打天下的刺激玩法,确实可以试试这个!

References

[1]数据库驱动未来: https://gamma.app/docs/The-Database-Drives-the-Future-41vma58e3502p70?mode=doc

在线阅读:https://talk.gitee.com/report/china-open-source-2024-annual-report.pdf

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

/阅读下一篇/

RAG市场的2024:随需而变,从狂热到理性

返回网易首页 下载网易新闻客户端
相关推荐
热点推荐
射精一次会减寿?男性一生最多只能排6000次精?看完心里有数

射精一次会减寿?男性一生最多只能排6000次精?看完心里有数

星辰生肖馆
2025-02-16 00:25:03
深圳一医院被指泄露患者个人信息,院方:设置出错,深表歉意

深圳一医院被指泄露患者个人信息,院方:设置出错,深表歉意

南方都市报
2025-02-24 17:56:08
郭士强对徐杰的使用令人疑惑:不给球权,却又给主力位置和时间

郭士强对徐杰的使用令人疑惑:不给球权,却又给主力位置和时间

醉剑浪子
2025-02-24 23:29:51
泽连斯基提议:以乌俄交换所有被俘人员作为结束双方冲突的“开端”

泽连斯基提议:以乌俄交换所有被俘人员作为结束双方冲突的“开端”

环球网资讯
2025-02-24 19:16:36
“淫欲”太重的人,身上有这3种特征,请务必远离

“淫欲”太重的人,身上有这3种特征,请务必远离

大禹小城
2025-02-23 12:34:26
封神中,仙、神、佛、妖、人、鬼,六族之首分别都是谁?

封神中,仙、神、佛、妖、人、鬼,六族之首分别都是谁?

唐古看今1
2025-02-23 22:14:55
打爆了太阳的防线!为什么猛龙内线大将没有引起季后赛球队的关注

打爆了太阳的防线!为什么猛龙内线大将没有引起季后赛球队的关注

稻谷与小麦
2025-02-25 00:34:56
败局已定!汪小菲无声反击,凭借女儿的一句话让S妈输的心服口服

败局已定!汪小菲无声反击,凭借女儿的一句话让S妈输的心服口服

天天热点见闻
2025-02-24 07:04:56
为什么韩国人总是看不起中国人呢?网友的回答真是让人大开眼界。

为什么韩国人总是看不起中国人呢?网友的回答真是让人大开眼界。

美好客栈大掌柜
2025-02-25 00:05:08
沈阳何氏眼科医院被处罚

沈阳何氏眼科医院被处罚

沈阳百姓一家亲
2025-02-25 00:09:56
春天,打死都别买这“4种”蔬菜,没营养还伤身,菜贩子从来不吃

春天,打死都别买这“4种”蔬菜,没营养还伤身,菜贩子从来不吃

今日养生之道
2025-02-22 10:39:44
广东女硕士被12名男子电死,生前折磨整整3小时,禽兽真的存在

广东女硕士被12名男子电死,生前折磨整整3小时,禽兽真的存在

罪案洞察者
2025-02-24 13:37:19
又帅又能踢!17岁时效力列弗灵的索博斯洛伊,那时的身价仅50万欧

又帅又能踢!17岁时效力列弗灵的索博斯洛伊,那时的身价仅50万欧

直播吧
2025-02-24 16:46:09
特朗普,查美联储黄金储备!等于是在说:房子卖亏了,差价补给我

特朗普,查美联储黄金储备!等于是在说:房子卖亏了,差价补给我

南生今世说
2025-02-24 20:47:46
轰29+6夺MVP!中国女篮又一24岁2米王牌崛起,李月汝替身减重蜕变

轰29+6夺MVP!中国女篮又一24岁2米王牌崛起,李月汝替身减重蜕变

李喜林篮球绝杀
2025-02-24 13:07:19
笑死了!冲锋衣现在真没法穿了,黄的像美团蓝的像饿了么,好尴尬

笑死了!冲锋衣现在真没法穿了,黄的像美团蓝的像饿了么,好尴尬

有趣的火烈鸟
2025-02-24 20:05:12
被“鹿晗关晓彤”刷屏!陈赫进行回应了

被“鹿晗关晓彤”刷屏!陈赫进行回应了

大象新闻
2025-02-24 13:30:04
医生发现:习惯在饭后躺下的老年人,用不了半年,身体或有3变化

医生发现:习惯在饭后躺下的老年人,用不了半年,身体或有3变化

今日养生之道
2025-02-19 13:22:08
新合同给多少?17岁亚马尔现周薪3.2万,本赛季11球15助身价1.8亿

新合同给多少?17岁亚马尔现周薪3.2万,本赛季11球15助身价1.8亿

直播吧
2025-02-24 17:27:15
轰30+7+4!我们打不过库里,欧文谈湖人下决心,而科尔感谢巴特勒

轰30+7+4!我们打不过库里,欧文谈湖人下决心,而科尔感谢巴特勒

巴叔GO聊体育
2025-02-24 11:32:10
2025-02-25 04:40:49
开源中国 incentive-icons
开源中国
每天为开发者推送最新技术资讯
6840文章数 34373关注度
往期回顾 全部

科技要闻

传特斯拉已准备在华更新软件部署FSD功能

头条要闻

新西兰防长:中国军舰公海实弹射击 无视我们的"请求"

体育要闻

27年的漫长拉扯 中国足球终于迈出了这一步

娱乐要闻

赵薇现身安徽!回芜湖老家看望母亲,打扮朴素

财经要闻

资本市场更好服务新质生产力!吴清表态

汽车要闻

硬派越野的“亲民化”尝试 奔驰将推出全新g级

态度原创

亲子
教育
游戏
家居
军事航空

亲子要闻

以为正常,实则会让孩子变丑的 5 个习惯,现在改还来得及!

教育要闻

老师微笑:看谁能解出,决定讲课方向

钢岚:凌波+菲娅双专武实测报告!这可算是史诗级的提升幅度?

家居要闻

人性化呈现 融入自然元素

军事要闻

俄乌冲突三周年之际 泽连斯基首次开出“辞职条件”