Langflow 架构与 Kubernetes 最佳实践
虽然 Langflow 提供了灵活的部署选项,但强烈建议在生产环境中使用 Kubernetes 集群进行部署。
在 Kubernetes 上部署具有以下优势
- 可扩展性:Kubernetes 允许您扩展 Langflow 服务以满足您的工作负载需求。
- 可用性和弹性:Kubernetes 提供内置的弹性功能,例如自动故障转移和自修复,以确保 Langflow 服务始终可用。
- 安全性:Kubernetes 提供安全功能,例如基于角色的访问控制和网络隔离,以保护 Langflow 服务及其数据。
- 可移植性:Kubernetes 是一个可移植平台,这意味着您可以将 Langflow 服务部署到任何 Kubernetes 集群,无论是在本地还是在云端。
Langflow 可以部署在云端,例如 AWS EKS、Google GKE 或 Azure AKS。有关在 AWS EKS、Google GKE 或 Azure AKS 上部署 Langflow 的更多信息,请参阅Langflow Helm charts 仓库。
Langflow 部署
典型的 Langflow 部署包括
- Langflow API 和 UI – Langflow 服务是 Langflow 平台的核心组件。它提供用于执行流程的 RESTful API。
- Kubernetes 集群 – Kubernetes 集群提供一个用于部署和管理 Langflow 服务及其支持组件的平台。
- 持久存储 – 持久存储用于存储 Langflow 服务的数据,例如模型和训练数据。
- Ingress 控制器 – Ingress 控制器为流向 Langflow 服务的流量提供单一入口点。
- 负载均衡器 – 在多个 Langflow 副本之间均衡流量。
- 向量数据库 – 如果您将 Langflow 用于 RAG,可以与 Astra Serverless 中的向量数据库集成。
环境隔离
建议为 Langflow 部署和运行两个独立的环境,一个用于开发,另一个用于生产。
- Langflow 开发环境必须包含集成开发环境 (IDE),以提供完整的 Langflow 体验,并针对原型设计和测试新流程进行优化。
- Langflow 生产环境在生产中执行流程逻辑,并将 Langflow 流程启用为独立服务。
为何独立部署很重要?
这种分离旨在增强安全性、优化资源分配并简化管理。
- 安全性
- 隔离:通过分离开发环境和生产环境,您可以更好地隔离应用程序生命周期的不同阶段。这种隔离最大限度地降低了与开发相关的问题影响生产环境的风险。
- 访问控制:可以对每个环境应用不同的安全策略和访问控制。开发人员在 IDE 中进行测试和调试时可能需要更广泛的访问权限,而运行时环境可以采用更严格的安全措施进行锁定。
- 减少攻击面:运行时环境配置为仅包含基本组件,从而减少了攻击面和潜在漏洞。
- 资源分配
- 优化资源使用和成本效益:通过分离这两个环境,您可以更有效地分配资源。每个流程都可以独立部署,提供精细的资源控制。
- 可扩展性:运行时环境可以根据应用程序负载和性能要求独立扩展,而不会影响开发环境。