首页 / 知识库 / 系统架构体系 / docker入门

11 - 真实生产怎么做:业务打镜像 + 数据买云服务

前面我们搞清楚了:业务(无状态)和数据(有状态)要分开对待。那真实的生产环境里,到底是怎么落地的?这一章把整个主流思维讲透——不展开技术细节,重在建立全局认知

先认识一个”理论上的完美答案”:Kubernetes(K8s)

当容器多到一定规模(几十上百个、跨多台服务器),你会需要一个”容器总指挥”来自动管理:

  • 哪台机器资源够,就把容器调度到哪
  • 某个容器挂了,自动拉起一个新的
  • 流量大了自动扩容,流量小了自动缩容
  • 滚动更新、负载均衡……

这个”总指挥”就是 Kubernetes(简称 K8s),它是大规模容器编排的事实标准。

但是:K8s 太重了

K8s 很强,但对绝大多数团队(尤其是中小团队、AI 创业项目)来说,它太重了

  • 概念极多、学习曲线陡峭(Pod、Service、Deployment、Ingress……一大堆)
  • 自己搭建和维护一套 K8s 集群,需要专门的运维团队
  • 杀鸡用牛刀:你可能就几个服务,犯不上上这么重的体系

所以——知道有 K8s 这个东西、它解决什么问题就够了,大多数情况下你不需要一上来就碰它。

主流的务实做法(重点记这个)

绝大多数团队,尤其是 AI 应用团队,实际是这么干的:

自己的业务代码 → 打包成 Docker 镜像 → 部署运行; 数据库、缓存、对象存储这些 → 直接买云服务商的托管服务。

拆开看:

1. 业务部分:打成 Docker 镜像去跑

  • 你的 FastAPI / AI 服务,就用前面学的方式打成镜像。
  • 部署到云上时,可以用各家云的”容器服务”(如阿里云 ACK/Serverless 容器、AWS ECS、各种 PaaS 平台),甚至直接在一台云服务器上 docker run
  • 因为业务是无状态的,所以可以随便重启、随便多开几份来扛流量——这正是容器最擅长的。

2. 数据部分:直接买云上的托管服务

  • 数据库 → 买云数据库(如 RDS、云 MySQL/PostgreSQL)
  • 缓存 → 买云 Redis
  • 向量数据库 → 买托管的向量库服务
  • 文件/模型存储 → 买对象存储(如 OSS、S3)

为什么买云服务,而不是自己用容器跑? 因为云厂商帮你搞定了最难、最不能出错的部分:

  • 自动备份、容灾、高可用
  • 故障自动恢复、专业团队 7×24 运维
  • 一键扩容、性能监控

你花点钱,把”数据绝对不能丢”这件最操心的事外包给专业的人,自己只专注写业务。这对小团队是性价比极高的选择。

把整条思维线串起来

到这里,整个知识体系就完整了:

单个容器        →  docker run            (学会跑一个服务)
多个容器(本地)   →  docker compose        (本地一键拉起整套环境)
            ↓  到了生产,业务和数据要分开
生产环境:
   业务(无状态)  →  打成 Docker 镜像,部署到云/容器平台,可随意扩缩
   数据(有状态)  →  直接买云厂商的托管服务(数据库/缓存/存储)
   超大规模      →  才需要 K8s 这种重型编排(多数团队用不上)

最终的核心认知

  • Docker(镜像 + 容器)是地基:把业务打包成”到处能跑”的标准件,这是你最该练熟的。
  • Compose 是本地开发利器:一键拉起多容器环境,方便开发测试。
  • 生产环境讲究分层:无状态业务用容器灵活伸缩,有状态数据交给专业托管服务。
  • K8s 是大规模才需要的重武器:知道它存在、解决什么问题即可,别过早陷进去。

对你们做 AI 应用的人来说,记住这条最实用的路线就够了:

把 AI 业务打成 Docker 镜像部署,数据库/向量库/存储统统买云服务,把精力留给真正创造价值的业务和模型。

小结

  • K8s = 大规模容器”总指挥”,强但重,多数团队用不上,知道即可。
  • 主流务实做法:业务打镜像跑,数据买云托管服务。
  • 背后逻辑:无状态的灵活伸缩,有状态的交给专业的人保管。
  • 这套思维,比记住任何一条命令都重要。

上一章 ← 10 - Compose 的局限:业务与数据要分开 | 回到 README 目录