Skip to content

Commit 5b98651

Browse files
committed
Update deployments section + hosting for app deployment control plane
1 parent a694c66 commit 5b98651

File tree

5 files changed

+152
-20
lines changed

5 files changed

+152
-20
lines changed

src/docs.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1139,12 +1139,19 @@
11391139
"langsmith/local-server",
11401140
"langsmith/app-development",
11411141
{
1142-
"group": "Deploy to Cloud",
1142+
"group": "Deploy to cloud",
11431143
"pages": [
11441144
"langsmith/deployment-quickstart",
11451145
"langsmith/deploy-to-cloud"
11461146
]
11471147
},
1148+
{
1149+
"group": "Deploy to self-hosted or hybrid",
1150+
"pages": [
1151+
"langsmith/deploy-with-control-plane",
1152+
"langsmith/deploy-standalone-server"
1153+
]
1154+
},
11481155
{
11491156
"group": "Configure for deployment",
11501157
"pages": [

src/langsmith/deploy-hybrid.mdx

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ The [**hybrid**](/langsmith/hybrid) model lets you run the [data plane](/langsmi
1313

1414
The following steps describe how to connect your self-hosted data plane to the managed LangSmith control plane.
1515

16-
## Prerequisites
17-
18-
1. Use the [LangGraph CLI](/langsmith/cli) to [test your application locally](/langsmith/local-server).
19-
2. Use the [LangGraph CLI](/langsmith/cli) to build a Docker image (i.e. `langgraph build`) and push it to a registry your Kubernetes cluster or Amazon ECS cluster has access to.
20-
2116
## Kubernetes
2217

2318
### Prerequisites
@@ -90,8 +85,8 @@ The following steps describe how to connect your self-hosted data plane to the m
9085
langgraph-dataplane-operator-6b88879f9b-t76gk 1/1 Running 0 26s
9186
langgraph-dataplane-redis-0 1/1 Running 0 25s
9287
```
93-
7. Create a deployment from the [control plane UI](/langsmith/control-plane#control-plane-ui).
94-
1. Select the desired listener from the list of `Compute IDs` in the dropdown menu.
95-
2. Select the Kubernetes namespace to deploy to.
96-
3. Fill out all other required fields and select `Submit` in the top-right of the panel.
97-
4. The deployment will be deployed on the Kubernetes cluster where the listener is deployed and in the Kubernetes namespace specified in step 7b.
88+
7. Your hybrid infrastructure is now ready to receive deployments.
89+
90+
## Next steps
91+
92+
Once your infrastructure is set up, you're ready to deploy applications. See the deployment guides in the [Deployment tab](/langsmith/deployments) for instructions on building and deploying your applications.

src/langsmith/deploy-self-hosted-full-platform.mdx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,21 +28,19 @@ This guide builds on top of the [Kubernetes installation guide](/langsmith/kuber
2828

2929
1. You are using Kubernetes.
3030
2. You have an instance of [self-hosted LangSmith](/langsmith/kubernetes) running.
31-
3. Use the [LangGraph CLI](/langsmith/cli) to [test your application locally](/langsmith/local-server).
32-
4. Use the [LangGraph CLI](/langsmith/cli) to build a Docker image (i.e. `langgraph build`) and push it to a registry your Kubernetes cluster has access to.
33-
5. `KEDA` is installed on your cluster.
31+
3. `KEDA` is installed on your cluster.
3432
```bash
3533
helm repo add kedacore https://kedacore.github.io/charts
3634
helm install keda kedacore/keda --namespace keda --create-namespace
3735
```
38-
6. Ingress Configuration
36+
4. Ingress Configuration
3937
1. You must set up an ingress for your LangSmith instance. All agents will be deployed as Kubernetes services behind this ingress. Use this guide to [set up an ingress](/langsmith/self-host-ingress) for your instance.
40-
7. You have slack space in your cluster for multiple deployments. `Cluster-Autoscaler` is recommended to automatically provision new nodes.
41-
8. A valid Dynamic PV provisioner or PVs available on your cluster. You can verify this by running:
38+
5. You have slack space in your cluster for multiple deployments. `Cluster-Autoscaler` is recommended to automatically provision new nodes.
39+
6. A valid Dynamic PV provisioner or PVs available on your cluster. You can verify this by running:
4240
```bash
4341
kubectl get storageclass
4442
```
45-
9. Egress to `https://beacon.langchain.com` from your network. This is required for license verification and usage reporting if not running in air-gapped mode. See the [Egress documentation](/langsmith/egress-metrics-metadata) for more details.
43+
7. Egress to `https://beacon.langchain.com` from your network. This is required for license verification and usage reporting if not running in air-gapped mode. See the [Egress documentation](/langsmith/egress-metrics-metadata) for more details.
4644

4745
## Setup
4846

@@ -69,4 +67,7 @@ This guide builds on top of the [Kubernetes installation guide](/langsmith/kuber
6967
```
7068
4. In your `values.yaml` file, configure the `hostBackendImage` and `operatorImage` options (if you need to mirror images)
7169
5. You can also configure base templates for your agents by overriding the base templates [here](https://github.com/langchain-ai/helm/blob/main/charts/langsmith/values.yaml#L898).
72-
6. You create a deployment from the [control plane UI](/langsmith/control-plane#control-plane-ui).
70+
71+
## Next steps
72+
73+
Once your infrastructure is set up, you're ready to deploy applications. See the deployment guides in the [Deployment tab](/langsmith/deployments) for instructions on building and deploying your applications.
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
---
2+
title: Deploy with control plane
3+
sidebarTitle: With control plane
4+
icon: "cloud-arrow-up"
5+
---
6+
7+
This guide shows you how to deploy your applications to [hybrid](/langsmith/hybrid) or [self-hosted](/langsmith/self-hosted) instances with a [control plane](/langsmith/control-plane). With a control plane, you build Docker images locally and deploy them with the [LangSmith UI](https://smith.langchain.com).
8+
9+
<Note>
10+
**This guide is for deploying applications, not setting up infrastructure.**
11+
12+
Before using this guide, you must have already completed infrastructure setup:
13+
- **[Hybrid setup](/langsmith/deploy-hybrid)**: For hybrid hosting.
14+
- **[Self-hosted with deployment setup](/langsmith/deploy-self-hosted-full-platform)**: For self-hosted with control plane.
15+
16+
If you haven't set up your infrastructure yet, start with the [Hosting section](/langsmith/hosting).
17+
</Note>
18+
19+
## Overview
20+
21+
Applications deployed to hybrid or self-hosted LangSmith instances with control plane use Docker images. In this guide, the application deployment workflow is:
22+
23+
1. Test your application locally using `langgraph dev` or [Studio](/langsmith/studio).
24+
1. Build a Docker image using the `langgraph build` command.
25+
1. Push the image to a container registry accessible by your infrastructure.
26+
1. Deploy from the [control plane UI](/langsmith/control-plane#control-plane-ui) by specifying the image URL.
27+
28+
## Prerequisites
29+
30+
Before completing this guide, you'll need the following:
31+
32+
- Completed infrastructure setup to enable your [data plane](/langsmith/data-plane) to receive application deployments:
33+
- [Hybrid setup](/langsmith/deploy-hybrid): Installs data plane components (listener, operator, CRDs) in your Kubernetes cluster that connect to LangChain's managed control plane.
34+
- [Self-hosted with deployment setup](/langsmith/deploy-self-hosted-full-platform): Enables deployment management on your self-hosted LangSmith instance.
35+
- Access to the [LangSmith UI](https://smith.langchain.com) with deployment management enabled.
36+
- A container registry accessible by your Kubernetes cluster.
37+
38+
## Step 1. Test locally
39+
40+
Before deploying, test your application locally. You can use the [LangGraph CLI](/langsmith/cli#dev) to run a LangGraph server in development mode:
41+
42+
```bash
43+
langgraph dev
44+
```
45+
46+
For a full guide local testing, refer to the [Local server quickstart](/langsmith/local-server).
47+
48+
## Step 2. Build Docker image
49+
50+
Build a Docker image of your application using the [`langgraph build`](/langsmith/cli#build) command:
51+
52+
```bash
53+
langgraph build -t my-image
54+
```
55+
56+
Build command options include:
57+
58+
| Option | Default | Description |
59+
|--------|---------|-------------|
60+
| `-t, --tag TEXT` | Required | Tag for the Docker image |
61+
| `--platform TEXT` | | Target platform(s) to build for (e.g., `linux/amd64,linux/arm64`) |
62+
| `--pull / --no-pull` | `--pull` | Build with latest remote Docker image |
63+
| `-c, --config FILE` | `langgraph.json` | Path to configuration file |
64+
65+
Example with platform specification:
66+
67+
```bash
68+
langgraph build --platform linux/amd64 -t my-image:v1.0.0
69+
```
70+
71+
For full details, see the [CLI reference](/langsmith/cli#build).
72+
73+
## Step 3. Push to container registry
74+
75+
Push your image to a container registry accessible by your Kubernetes cluster. The specific commands depend on your registry provider.
76+
77+
<Tip>
78+
Tag your images with version information (e.g., `my-registry.com/my-app:v1.0.0`) to make rollbacks easier.
79+
</Tip>
80+
81+
## Step 4. Deploy with the control plane UI
82+
83+
The [control plane UI](/langsmith/control-plane#control-plane-ui) allows you to create and manage deployments, view logs and metrics, and update configurations. To create a new deployment in the [LangSmith UI](https://smith.langchain.com):
84+
85+
1. In the left-hand navigation panel, select **Deployments**.
86+
1. In the top-right corner, select **+ New Deployment**.
87+
1. In the deployment configuration panel, provide:
88+
- **Image URL**: The full image URL you pushed in [Step 3](#step-3-push-to-container-registry).
89+
- **Listener/Compute ID**: Select the listener configured for your infrastructure.
90+
- **Namespace**: The Kubernetes namespace to deploy to.
91+
- **Environment variables**: Any required configuration (API keys, etc.).
92+
- Other deployment settings as needed.
93+
1. Select **Submit**.
94+
95+
The control plane will coordinate with your [data plane](/langsmith/data-plane) listener to deploy your application.
96+
97+
After creating a deployment, the infrastructure is [provisioned asynchronously](/langsmith/control-plane#asynchronous-deployment). Deployment can take up to several minutes, with initial deployments taking longer due to database creation.
98+
99+
From the control plane UI, you can view build logs, server logs, and deployment metrics including CPU/memory usage, replicas, and API performance. For more details, refer to the [control plane monitoring documentation](/langsmith/control-plane#monitoring).
100+
101+
<Note>
102+
A [LangSmith Observability tracing project](/langsmith/observability) is automatically created for each deployment with the same name as the deployment. Tracing environment variables are set automatically by the control plane.
103+
</Note>
104+
105+
## Update deployment
106+
107+
To deploy a new version of your application, create a [new revision](/langsmith/control-plane#revisions):
108+
109+
Starting from the LangSmith UI:
110+
111+
1. In the left-hand navigation panel, select **Deployments**.
112+
1. Select an existing deployment.
113+
1. In the Deployment view, select **+ New Revision** in the top-right corner.
114+
1. Update the configuration:
115+
- Update the **Image URL** to your new image version.
116+
- Update environment variables if needed.
117+
- Adjust other settings as needed.
118+
1. Select **Submit**.
119+
120+
## Next steps
121+
122+
- **[Control plane](/langsmith/control-plane)**: Learn more about control plane features.
123+
- **[Data plane](/langsmith/data-plane)**: Understand data plane architecture.
124+
- **[Observability](/langsmith/observability)**: Monitor your deployments with automatic tracing.
125+
- **[Studio](/langsmith/studio)**: Test and debug deployed applications.
126+
- **[LangGraph CLI](/langsmith/cli)**: Full CLI reference documentation.

src/langsmith/deployments.mdx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ A typical deployment workflow consists of the following steps:
1414

1515
1. **[Test locally](/langsmith/local-server)**: Run your application on a local server.
1616
2. **[Choose hosting](/langsmith/hosting)**: Select Cloud, Hybrid, or Self-hosted.
17-
3. **Deploy your app**: Push code or build images to your chosen environment.
17+
3. **Deploy your app**:
18+
- [**Cloud**](/langsmith/deploy-to-cloud): Push code from GitHub repository
19+
- [**Hybrid or Self-hosted with control plane**](/langsmith/deploy-with-control-plane): Build and push Docker images, deploy via UI
20+
- [**Standalone servers**](/langsmith/deploy-standalone-server): Deploy directly without control plane
1821
4. **[Monitor & manage](/langsmith/observability)**: Track traces, alerts, and dashboards.
1922

2023
<Info>

0 commit comments

Comments
 (0)