跳到主要内容

Langflow architecture on Kubernetes

Langflow 部署主要有两种类型:

  • Langflow IDE (开发环境):同时部署 Langflow 可视化编辑器(前端)和 API(后端)。通常用于开发环境,开发者使用可视化编辑器创建和管理流程,然后打包并通过生产运行时部署提供服务。

    Langflow 仓库中的示例 docker-compose.yml 文件构建了一个 Langflow IDE 镜像。

    有关在 Kubernetes 上部署 IDE 的信息,请参阅 在 Kubernetes 上部署 Langflow 开发环境

  • Langflow runtime (生产环境):为生产流程部署 Langflow 运行时,这是一个无头(仅后端)服务,专注于提供 Langflow API。这用于生产环境,其中流程以编程方式执行,无需可视化编辑器。服务器将您的流程暴露为端点,然后仅运行每个流程所需的服务进程。

    建议在此部署类型中使用外部 PostgreSQL 数据库,以提高与默认 SQLite 数据库相比的可扩展性和可靠性。

    有关在 Kubernetes 上部署运行时的信息,请参阅 在 Kubernetes 上部署 Langflow 生产环境

    提示

    您可以使用 LANGFLOW_BACKEND_ONLY 环境变量 以无头模式启动 Langflow。

您也可以 在 Docker 上部署 Langflow IDE 和运行时

在 Kubernetes 上部署 Langflow 的优势

在 Kubernetes 上部署具有以下优势:

  • 可扩展性:Kubernetes 允许您扩展 Langflow 服务以满足工作负载的需求。

  • 可用性和弹性:Kubernetes 提供内置的弹性功能,如自动故障转移和自愈,确保 Langflow 服务始终可用。

  • 安全性:Kubernetes 提供安全功能,如基于角色的访问控制和网络隔离,以保护 Langflow 服务及其数据。

  • 可移植性:Kubernetes 是一个可移植的平台,这意味着您可以将 Langflow 服务部署到任何 Kubernetes 集群,无论是本地部署还是云端部署。

    Langflow 可以部署在 AWS EKS、Google GKE 或 Azure AKS 等云平台上。有关更多信息,请参阅 Langflow Helm charts 仓库

Langflow 部署

典型的 Langflow 部署包括:

  • Langflow 服务:Langflow API,以及 IDE 部署中的可视化编辑器。
  • Kubernetes 集群:Kubernetes 集群为部署和管理 Langflow 及其支持服务提供平台。
  • 持久化存储:持久化存储用于存储 Langflow 服务的数据,如模型和训练数据。
  • Ingress 控制器:Ingress 控制器为 Langflow 服务的流量提供单一入口点。
  • 负载均衡器:在多个 Langflow 副本之间平衡流量。
  • 向量数据库:如果您使用 Langflow 进行 RAG,可以与 Astra Serverless 中的向量数据库集成。

Kubernetes 上的 Langflow 参考架构

环境隔离

建议为 Langflow 部署和运行独立开发和生产环境:

  • 在开发环境中部署 IDE,供开发者原型设计和测试新流程。
  • 在生产环境中部署运行时,将流程作为独立服务运行。

Langflow 环境

这种分离旨在增强安全性,支持有序的软件开发流程,并优化基础设施资源分配:

  • 隔离:通过分离开发和生产环境,您可以更好地隔离应用程序生命周期的不同阶段。这种隔离最小化了开发相关问题影响生产环境的风险。
  • 访问控制:可以为每个环境应用不同的安全策略和访问控制。开发者在 IDE 中可能需要更广泛的访问权限进行测试和调试,而运行时环境可以通过更严格的安全措施进行锁定。
  • 减少攻击面:运行时环境配置为仅包含必要组件,减少了攻击面和潜在漏洞。
  • 优化资源使用和成本效率:通过分离两个环境,您可以更有效地分配资源。每个流程可以独立部署,提供细粒度的资源控制。
  • 可扩展性:运行时环境可以根据应用程序负载和性能需求独立扩展,而不会影响开发环境。

下一步

Search