# Migrate to Service

Migrate your deployed pipelines to services in Gateway. Services provide a stable endpoint that doesn't change even as you keep working on the pipeline behind it. With services, you can publish a new pipeline version whenever you're ready, without changing the endpoint. Your callers stay connected the whole time.

## About This Task

Up until now, your pipelines were deployed directly to the platform. This meant that each deployment created a new endpoint, which could change over time as you made changes to the pipeline. With services, you can create a stable endpoint that never changes, even as you keep working on the pipeline behind it.

There are two ways to migrate to services:
- Automatic migration: This is the easiest way to migrate to services. It automatically creates a service with the same hosting settings as your pipeline and publishes your pipeline there. All you need to do is update the endpoint URL in the callers. This is a one-time action.
- Manual migration: This involves creating a service manually and publishing your pipeline to it. 

After you create a service, you can update its settings, including hosting, as needed.

To learn more, see [Gateway](/docs/concepts/gateway/gateway.mdx).

:::info Your Traffic is Safe 
Your data is safe during the migration. A pipeline can be deployed in <ProductShortName /> and published to a service at the same time. This means all the apps calling the pipeline continue to work without any downtime. 

You must update your callers to use the new service endpoint. Until you do that, they continue to call the old pipeline endpoint.
:::

## Prerequisites

- You must have a pipeline deployed to the platform.
- You must have read and write permissions to services to update services. For details, see [User Roles and Permissions](/docs/concepts/user-roles-and-permissions.mdx).

## Migrate Automatically

1. In <ProductName />, click **Pipelines** in the navigation.
2. Find a deployed pipeline you want to migrate to a service and click the **Create a Service** icon next to it.
        <ClickableImage src="/img/how-tos/migrate-to-service.png" alt="The Create a Service icon next to a deployed pipeline" />
3. Update the service name and description if needed. By default, the service name is the pipeline name with the `-service` suffix. The service inherits the pipeline's hosting settings. You can update them after the service is created.
4. Click **Create Service**. The service is starting. Once it's active, you'll see your pipeline and deployment history there.

## Migrate Manually 

Follow the steps in [Publish a Pipeline to a Service](/docs/how-to-guides/productionizing-your-pipeline/working-with-services/publish-pipeline-to-service.mdx) to publish your pipeline to a service.

## What To Do Next

Update your callers to use the new service endpoint:
1. Open the service to which you published your pipeline and switch to the **Connect** tab.
2. Try calling the service with a sample query. If it works, you're ready to update your callers to use the new service endpoint.
3. Copy the endpoint URL and update it in your callers.

## Related Information

- [Gateway](/docs/concepts/gateway/gateway.mdx)
- [Publish a Pipeline to a Service](/docs/how-to-guides/productionizing-your-pipeline/working-with-services/publish-pipeline-to-service.mdx)
- [Manage a Service](/docs/how-to-guides/productionizing-your-pipeline/working-with-services/manage-services.mdx)
