# Deployment options

Soda offers flexible deployment options to suit your team’s infrastructure, scale, and security needs. Whether you want to embed Soda directly into your pipelines, use a centrally managed deployment, or rely on Soda’s fully-hosted solution, there’s an option for you.

This guide provides an overview of the three main deployment options: **Soda Python Libraries**, **Soda-hosted Soda Runner, and Self-hosted Soda Runner**, to help you choose the right setup for your organization.

***

## Overview of Deployment Options

<table data-full-width="true"><thead><tr><th width="112">Deployment Model</th><th width="148">Description</th><th width="138">Ideal For</th><th>Key Features</th><th>Considerations</th><th>Plans</th></tr></thead><tbody><tr><td><strong>Soda-hosted Soda Runner</strong></td><td>Fully-managed Soda Runner, hosted by Soda.</td><td>Teams seeking a simple, managed solution for data quality.</td><td><ul><li>Centralized data source access</li><li>No setup required</li><li>Observability features enabled</li></ul><p>Enables users to create, test, execute, and schedule contracts and checks directly from the Soda Cloud UI.</p></td><td><strong>Required for observability features</strong>.<br><br>Cannot scan in-memory sources like Spark or DataFrames.</td><td>Available for Free, Team and Enterprise Plans.</td></tr><tr><td><strong>Self-hosted Soda Runner</strong></td><td>Same as Soda-hosted Soda Runner, but deployed and managed in your own Kubernetes environment.</td><td>Teams needing full control over infrastructure and deployment.</td><td><p>Similar to Soda-hosted Runner, but deployed within the customer’s environment; data stays within your network.<br></p><ul><li>Full control over deployment</li><li>Integration with secret managers</li><li>Customization to meet your organization’s specific requirements</li></ul></td><td><strong>Required for observability features</strong>.<br><br>Cannot scan in-memory sources like Spark or DataFrames.<br>Kubernetes expertise required.</td><td>Available for Enterprise Plan. Contact us <a href="https://www.soda.io/contact">https://www.soda.io/contact</a></td></tr><tr><td><strong>Soda Python Libraries</strong></td><td>Open-source Python library (with commercial extensions) for programmatic configuration and enforcement of data contracts in your pipelines.</td><td>Data engineers integrating Soda into custom workflows.</td><td><ul><li>Full control over orchestration</li><li>In-memory data support</li><li>Contract verification</li></ul></td><td><strong>No observability features</strong>.<br><br>Required for in-memory sources (e.g., Spark, DataFrames).<br><br>Data source connections managed at the environment level.</td><td>Open Source. Available for Free, Team and Enterprise Plans.</td></tr></tbody></table>

## Deployment Options in Detail

### Soda Runner

#### Soda-hosted

The Soda-hosted Soda Runner is a fully-managed deployment of the Soda Runner, hosted by Soda in our infrastructure. It allows you to connect to your data sources and manage data quality directly from the Soda Cloud UI without any infrastructure setup on your end. You need only whitelist the IP address of the Soda-hosted runner so that it can connect to your data.

Key points:

* **No setup or management required**. Soda handles deployment and scaling.
* **Data source connections are centralized** in Soda Cloud, and users can leverage the Soda Runner to execute scans across those data sources.
* Enable **observability features** in Soda Cloud, such as profiling, metric monitoring, and anomaly detection.
* Enables users to create, test, execute, and schedule **contracts** and checks directly from the **Soda Cloud UI**.

<figure><img src="https://1123167021-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA2PmHkO5cBgeRPdiPPOG%2Fuploads%2F6LjauzTHCS6qj3IUfV4f%2Fwith-managed-agent.png?alt=media&#x26;token=a244e53d-97cd-45dd-ac20-c7e4baec9b80" alt=""><figcaption></figcaption></figure>

***

Onboard your datasets in Soda Cloud with Soda-hosted runner: [Broken link](https://docs.soda.io/broken-reference "mention")

***

#### Self-hosted Runner

The Self-hosted Runner offers the same capabilities as the Soda-hosted Runner, but it is deployed and managed by your team within your own Kubernetes environment (e.g., AWS, GCP, Azure). This model provides full control over deployment, infrastructure, and security, while enabling the same centralized data source access and Soda Cloud integration for scans, contract execution, and observability features.

<figure><img src="https://1123167021-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA2PmHkO5cBgeRPdiPPOG%2Fuploads%2FbzBmprHresxWJ2WAn1IW%2Fwith-agent.png?alt=media&#x26;token=5ac5b22b-7199-40f7-bc64-821d0c451203" alt=""><figcaption></figcaption></figure>

> Learn how to deploy the Self-hosted Soda Runner: [deploy-soda-agent](https://docs.soda.io/deployment-options/soda-agent/deploy-soda-agent "mention").

> Onboard your datasets in Soda Cloud with self-hosted runner: [Broken link](https://docs.soda.io/broken-reference "mention").

### Soda Python Libraries

Soda Core is an **open-source Python library and CLI** that allows you to **embed Soda directly in your data pipelines**. You can orchestrate scans using your preferred orchestration tools or pipelines, and execute them within your own infrastructure. Additional commercial extensions are available via extensions packages, such as `soda-groupby` , `soda-reconciliation`, etc.

> See detailed installation instructions here: [Install Soda Python Libraries](https://docs.soda.io/deployment-options/soda-python-libraries)

Key points:

* Ideal for teams who want **full control** over scan orchestration and execution.
* Data source connections are configured and managed **at the environment level**.
* Required for working with **in-memory data sources** like Spark and Pandas DataFrames.

<figure><img src="https://1123167021-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FA2PmHkO5cBgeRPdiPPOG%2Fuploads%2FPcT7jbdMcuhbPa9Ltooy%2Fwith-library.png?alt=media&#x26;token=889757cb-a054-42b9-be5a-d517b7cff7f3" alt=""><figcaption></figcaption></figure>

<br>

***

{% if (visitor.claims.plan === 'datasetStandard')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Free license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if (visitor.claims.plan === 'enterprise')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Team license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if (visitor.claims.plan === 'enterpriseUserBased')%}
{% hint style="success" %}
You are **logged in to Soda** and seeing the **Enterprise license** documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}

{% if !(visitor.claims.plan === 'enterprise' || visitor.claims.plan === 'enterpriseUserBased' || visitor.claims.plan === 'datasetStandard')%}
{% hint style="info" %}
You are **not logged in to Soda** and are viewing the default public documentation. Learn more about [documentation-access-and-licensing](https://docs.soda.io/reference/documentation-access-and-licensing "mention").
{% endhint %}
{% endif %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.soda.io/deployment-options.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
