跳到主要内容

可扩展的企业部署选项

OPL 数据空间采用 无状态、容器优先 架构,因此无论你把它部署成 VM 上的 Python 进程、托管容器服务里的容器,还是 Kubernetes 集群里的 Pod,应用本身的行为是一致的。差异主要在于你如何 编排、扩展和运维。

模型推理与 OPL 数据空间部署方式解耦

LLM 模型如何提供服务,与 OPL 数据空间本身怎么部署是两回事。你可以在任意部署模式下结合 托管 API 或 自托管推理服务 一起使用。


共享基础设施要求​

无论使用哪种部署方式,只要要扩展到多实例,就需要同一套后端基础服务:

组件为什么需要选项
PostgreSQL多实例部署必须使用真正的数据库,SQLite 不支持多进程并发写入自建、RDS、Azure Database、Cloud SQL
Redis会话管理、WebSocket 协调、实例间配置同步自建、ElastiCache、Azure Cache、Memorystore
Vector DB默认 ChromaDB 使用本地 SQLite,不适合多进程PGVector、Milvus、Qdrant、HTTP 模式 ChromaDB
共享存储上传文件必须能被所有实例访问NFS、EFS、CephFS 或对象存储
内容提取服务默认 pypdf 在高负载下有内存问题Apache Tika、Docling
Embedding 引擎默认 SentenceTransformers 每个 worker 会额外占用大量内存OpenAI Embeddings、Ollama embedding

关键配置​

这些环境变量必须在所有实例上保持一致:

WEBUI_SECRET_KEY=your-secret-key-here

DATABASE_URL=postgresql://user:password@db-host:5432/openwebui

VECTOR_DB=pgvector
PGVECTOR_DB_URL=postgresql://user:password@db-host:5432/openwebui

REDIS_URL=redis://redis-host:6379/0
WEBSOCKET_MANAGER=redis
ENABLE_WEBSOCKET_SUPPORT=true

CONTENT_EXTRACTION_ENGINE=tika
TIKA_SERVER_URL=http://tika:9998

RAG_EMBEDDING_ENGINE=openai

UVICORN_WORKERS=1
ENABLE_DB_MIGRATIONS=false
数据库迁移

除一个实例外,其余实例都应设置 ENABLE_DB_MIGRATIONS=false。升级时,先缩到单实例完成迁移,再扩回多实例。


选择部署模式​

OPL 数据空间当前支持三种常见生产部署模式:

Python / Pip on Auto-Scaling VMs​

把 open-webui serve 作为 systemd 管理的进程,运行在自动伸缩虚拟机组中。适合以 VM 为主、熟悉 Linux 运维,或受监管要求约束必须直接控制 OS 的团队。

Container Service​

在 AWS ECS/Fargate、Azure Container Apps、Google Cloud Run 等托管平台上运行官方容器镜像。适合希望获得容器收益,但不想承担 Kubernetes 复杂度的团队。

Kubernetes with Helm​

通过官方 Helm Chart 部署到任意 Kubernetes 发行版。适合需要声明式 IaC、高级自动伸缩和 GitOps 工作流的大规模关键业务环境。


部署对比​

Python / Pip(VM)Container ServiceKubernetes(Helm)
运维复杂度中等低更高
自动扩展借助云平台 VM 自动伸缩平台原生HPA,可精细控制
容器隔离无完整完整
滚动更新主要靠手工平台托管声明式回滚与滚更
基础设施即代码VM + 配置管理任务/服务定义Helm + GitOps
适合场景VM 导向运维团队想要容器但不想上 K8s大规模关键业务部署
最小团队能力要求Linux、Python容器与云平台基础Kubernetes、Helm、云原生经验

可观测性​

无论哪种部署方式,生产环境都应该具备监控与观测能力。

健康检查​

  • /health:基础存活检查
  • /api/models:验证模型后端连接情况

OpenTelemetry​

可通过以下方式启用:

ENABLE_OTEL=true
OTEL_EXPORTER_OTLP_ENDPOINT=http://your-collector:4318
OTEL_SERVICE_NAME=open-webui

结构化日志​

LOG_FORMAT=json
GLOBAL_LOG_LEVEL=INFO

详细说明见:


下一步​


如果你需要帮助规划企业部署,欢迎联系我们。

联系企业销售 → sales@openwebui.com