前言

参考官方文档:

部署选项

使用LangGraph 平台部署有 3 个主要选项:

  1. 混合部署
  2. 自托管

快速比较:

杂交种 自托管
描述 所有组件都在 LangChain 的云中运行 控制平面在 LangChain 的云中运行;数据平面在您的云中运行 所有组件都在您的云中运行
持续集成/持续交付 由平台内部管理 由您进行外部管理 由您进行外部管理
数据/计算驻留 LangChain云 您的云 您的云
LangSmith 兼容性 追踪至 LangSmith SaaS 追踪至 LangSmith SaaS 追踪自托管 LangSmith

自托管部署概述

自托管部署选项允许您完全在自己的云环境中运行所有组件。您可以选择两种部署模式:

  1. 全平台:部署控制平面和数据平面,具有完整的 UI/API 管理功能
  2. 仅数据平面:部署不带控制平面 UI 的 LangGraph 服务器独立实例

全平台

概述

全平台部署模型是一种完全自托管的解决方案,您可以在云中同时管理控制平面数据平面。此选项让您完全控制并负责控制平面和数据平面基础设施。

控制平面 数据平面
它是什么? 用于创建部署和修订的控制平面 UI用于创建部署和修订的控制平面 API 数据平面“监听器”,用于协调部署与控制平面状态LangGraph 服务器Postgres、Redis 等
它托管在哪里? 您的云 您的云
谁来提供和管理它?

要求

  • 您可以使用langgraph-cli和/或LangGraph Studio应用程序在本地测试图表。
  • 您使用langgraph build命令来构建图像。
  • 您已部署自托管 LangSmith 实例。
  • 您正在为 LangSmith 实例使用 Ingress。所有代理都将作为 Kubernetes 服务部署在此 Ingress 后面。

架构图

img

计算平台

Kubernetes

  • Kubernetes:全平台部署模型支持将控制平面和数据平面基础设施部署到任何Kubernetes集群。

独立服务器

概述

仅独立服务器部署模型是限制最少的部署选项。它没有控制平面。您可以管理简化版本的数据平面基础架构。

控制平面 数据平面
它是什么? LangGraph 服务器Postgres、Redis 等
它托管在哪里? 您的云
谁来提供和管理它?

LangGraph 平台不应部署在无服务器环境中。规模缩减至零可能会导致任务丢失,而规模扩大则无法可靠地进行。

架构图

img

计算平台

Kubernetes

仅数据平面部署模型支持将数据平面基础设施部署到 Kubernetes 集群。

Docker

仅数据平面部署模型支持将数据平面基础设施部署到任何 Docker 支持的计算平台。

自托管平台部署

前置条件

  1. 您正在使用 Kubernetes。
  2. 您已部署自托管的 LangSmith。
  3. 使用LangGraph CLI本地测试您的应用程序
  4. 使用LangGraph CLI构建 Docker 镜像(即langgraph build)并将其推送到 Kubernetes 集群可以访问的注册表。
  5. KEDA已安装在您的集群上。

helm repo add kedacore https://kedacore.github.io/charts

helm install keda kedacore/keda –namespace keda –create-namespace

  1. 入口配置

    • 您必须为 LangSmith 实例设置一个入口。所有代理都将作为 Kubernetes 服务部署在此入口后面。

    • 您可以使用本指南为您的实例设置入口。

  2. 您的集群中有可用于多个部署的空闲空间。Cluster-Autoscaler建议自动配置新节点。

  3. 集群上有一个有效的动态 PV 预配器或 PV。您可以通过运行以下命令来验证:

1
kubectl get storageclass
  1. 从您的网络出口https://beacon.langchain.com。如果未在隔离模式下运行,则需要进行许可证验证和使用情况报告。有关更多详细信息,请参阅Egress 文档。

设置

  1. 在配置自托管 LangSmith 实例时,您需要启用该langgraphPlatform选项。这将配置一些关键资源。

    • listener:这是一项服务,用于监听控制平面中部署的更改并创建/更新下游 CRD。

    • LangGraphPlatform CRD:LangGraph 平台部署的 CRD。其中包含用于管理 LangGraph 平台部署实例的规范。

    • operator:此操作员处理对您的 LangGraph 平台 CRD 的更改。

    • host-backend:这是控制平面

  2. chart将使用另外两张图片。请使用最新版本中指定的镜像。

1
2
3
4
5
6
hostBackendImage:
repository: "docker.io/langchain/hosted-langserve-backend"
pullPolicy: IfNotPresent
operatorImage:
repository: "docker.io/langchain/langgraph-operator"
pullPolicy: IfNotPresent
  1. 在 langsmith 的配置文件(通常为langsmith_config.yaml)中启用该langgraphPlatform选项。请注意,您还必须具有有效的 Ingress 设置:
1
2
3
4
config:
langgraphPlatform:
enabled: true
langgraphPlatformLicenseKey: "YOUR_LANGGRAPH_PLATFORM_LICENSE_KEY"
  1. 在您的values.yaml文件中,配置hostBackendImageoperatorImage选项(如果您需要镜像)

  2. 您还可以通过覆盖此处的基本模板来为您的代理配置基本模板。

  3. 您可以从控制平面 UI创建部署。