> ## Documentation Index
> Fetch the complete documentation index at: https://docs.baseten.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Deployments

> Understand published and development deployments, how they relate to environments, and which lifecycle action to use.

A deployment is one version of a model running on Baseten. It has its own ID, model artifact, instance type, autoscaling settings, replicas, and API endpoint. A model can have multiple deployments at the same time.

Use this page to understand the deployment resource and its relationship to environments. To perform an operation, see [Manage deployments](/deployment/manage/overview). To send an inference request, see [Call a model](/inference/calling-your-model).

## Deployment types

### Published deployments

By default, `baseten model push` creates a published deployment. Its model artifact doesn't live reload, so a code or configuration change requires another push. Published model deployments support the full set of autoscaling and environment promotion settings.

A published deployment can serve requests through its deployment-specific endpoint without belonging to an environment.

### Development deployment

Use `baseten model push --watch` for a model or `baseten truss chains push --watch` for a Chain to create a development deployment. Development deployments support a fast edit-and-reload loop:

* Source changes live reload without another deployment.
* The deployment uses one replica when active and scales to zero when idle.
* The deployment can't scale beyond one replica or use zero-downtime updates.

Promoting a development deployment to an environment creates a new published deployment with its own ID and starts an image build. After the deployment becomes ready, Baseten runs the environment's configured promotion workflow. The promotion completes when the environment points to the new published deployment.

## Environments and promotion

An [environment](/deployment/environments) gives a model a stable endpoint and a reusable set of resource, autoscaling, and promotion settings. The environment points to the deployment that currently serves its traffic.

* A deployment doesn't need an environment to serve requests.
* The production environment exists by default. You can add environments such as staging.
* Promoting a deployment changes which version serves the environment endpoint without changing that endpoint's URL.
* Promotion can reuse the source deployment or create a new published deployment, depending on the source type and the environment settings.

### Rolling deployments

Rolling deployment is an environment promotion strategy, not a deployment type. It incrementally provisions the candidate deployment, shifts traffic, and removes the previous deployment's replicas. You can pause, resume, cancel, or force-complete the promotion.

For more information, see [Rolling deployments](/deployment/rolling-deployments).

### Canary deployments (deprecated)

<Warning>
  Baseten has deprecated canary deployments. Use [rolling deployments](/deployment/rolling-deployments) for incremental traffic shifting.
</Warning>

<span id="name-deployments" />

<span id="label-deployments" />

## Deployment metadata

Baseten addresses a deployment by its model ID and deployment ID. Names and labels help people and automation identify deployments.

A deployment name is a human-readable identifier and doesn't change the deployment's API path. Set it with [`truss push --deployment-name`](/reference/cli/truss/push), or rename it later with the Baseten CLI or in the Baseten dashboard:

<CodeGroup>
  ```bash Command theme={"system"}
  baseten model deployment rename --model-id <model-id> --deployment-id <deployment-id> --new-name <name>
  ```

  ```txt Output theme={"system"}
  Renamed deployment <deployment-id> to <name>
  ```
</CodeGroup>

For more information, see
[`deployment rename`](/reference/cli/baseten/model-deployment#rename).

[Deployment labels](/deployment/manage/labels) are JSON key-value metadata for ownership, source control, or CI information.

You can't change a published deployment's labels after creation. A later development push that includes labels replaces the development deployment's labels. A push that omits labels preserves them.

<span id="deactivate-a-deployment" />

<span id="delete-deployments" />

## Deployment lifecycle

Use [Manage deployments](/deployment/manage/overview) to promote, scale, inspect, deactivate, activate, or delete a deployment. The task guides explain each operation and its effect on inference traffic.

## Next steps

<CardGroup cols={2}>
  <Card title="Manage deployments" href="/deployment/manage/overview">
    Scale, promote, inspect, deactivate, and delete deployments.
  </Card>

  <Card title="Environments" href="/deployment/environments">
    Configure stable endpoints and promotion behavior.
  </Card>

  <Card title="Autoscaling" href="/deployment/autoscaling/overview">
    Configure replica capacity and scaling behavior.
  </Card>

  <Card title="Call a model" href="/inference/calling-your-model">
    Send inference requests to a deployment or environment.
  </Card>
</CardGroup>
