16 - 为什么数据库要用云托管
后端上了 Serverless,那数据存哪?答案是云托管数据库,而不是自己在服务器上装一个。这一章讲清为什么这是现代方案的必然选择。
一个绕不开的前提:Serverless 后端是”无状态”的
回顾第 14 章 Serverless 的脾气:平台会随时开新实例、关旧实例。这意味着:
- 你不知道现在有几个实例在跑
- 这个请求和下个请求,可能被不同的实例处理
- 实例随时可能被销毁重建
结论:你绝不能把数据存在后端实例自己身上(内存里、本地磁盘里)。存了,换个实例、或者实例被关掉,数据就没了。
所以数据必须放在一个独立于后端、稳定存在的地方——这就是数据库。而且这个数据库不能是你在某台服务器上手动装的(那又回到传统运维的老路),应该用云托管数据库。
什么是云托管数据库
云数据库:云厂商帮你运行和维护好的数据库服务。你开通即用,不用自己装、不用自己运维。
- 阿里云:RDS(MySQL/PostgreSQL)、PolarDB
- 腾讯云:云数据库 MySQL / PostgreSQL
- 还有 Serverless 数据库:连数据库都能按用量伸缩计费
你拿到的是一个连接地址 + 账号密码,后端用它连上去读写数据即可。
云托管帮你搞定了哪些”脏活”
自己装数据库要操心一堆事,云托管全帮你包了:
| 脏活 | 自己装 | 云托管 |
|---|---|---|
| 安装配置 | 自己来 | 开通即用 |
| 备份 | 自己写脚本定时备份 | 自动定时备份,可一键恢复 |
| 扩容 | 停机、迁移、担惊受怕 | 点几下升配,甚至自动伸缩 |
| 高可用 | 自己搭主从、故障切换 | 自带主备,挂了自动切换 |
| 安全补丁 | 自己盯着打 | 平台维护 |
| 监控告警 | 自己配 | 内置 |
数据是一个应用最宝贵、最不能丢的东西。把它交给专业的云托管,比自己手搓可靠得多。
后端怎么连云数据库
关键一点:连接信息(地址、账号、密码)不要写死在代码里,而是通过环境变量注入(回顾第 15 章,在 Serverless 平台配置环境变量):
import os
DATABASE_URL = os.environ["DATABASE_URL"] # 从环境变量读,不写死在代码
这样做的好处:
- 密码不进代码仓库,更安全
- 开发、测试、生产可以连不同的库,换环境只改环境变量
[配图:Serverless 后端(多个实例)都连向同一个独立的云数据库;强调”实例可增可减,但数据库始终是同一个稳定的存储”]
小结
- Serverless 后端是无状态的,实例随时增减,数据绝不能存在实例自己身上。
- 数据要放在独立、稳定的云托管数据库里。
- 云数据库帮你搞定备份、扩容、高可用、安全,比自己装可靠太多。
- 连接信息用环境变量注入,别写死进代码。
数据有地方存了。那”AI 能力”从哪来?下一章讲:直接调云端 AI API,别自己部署大模型。
下一章 → 17 - AI 能力直接调云端 API