Deploying ZenML

Deploying ZenML is the first step to production.

When you first get started with ZenML, it is based on the following architecture on your machine:

The SQLite database that you can see in this diagram is used to store all the metadata we produced in the previous guide (pipelines, models, artifacts, etc).

In order to move into production, you will need to deploy this server somewhere centrally outside of your machine. This allows different infrastructure components to interact with, alongside enabling you to collaborate with your team members:

Choosing how to deploy ZenML

While there are many options on how to deploy ZenML, the two simplest ones are:

Option 1: Sign up for a free ZenML Pro Trial

ZenML Pro comes as a managed SaaS solution that offers a one-click deployment for your ZenML server. Click here to start a free trial.

On top of the one-click SaaS experience, ZenML Pro also comes built-in with additional features and a new dashboard that might be beneficial to follow for this guide. You can always go back to self-hosting after your learning journey is complete.

Option 2: Self-host ZenML on your cloud provider

As ZenML is open source, it is easy to self-host it. There is even a ZenML CLI one-liner that deploys ZenML on a Kubernetes cluster, abstracting away all the infrastructure complexity. If you don't have an existing Kubernetes cluster, you can create it manually using the documentation for your cloud provider. For convenience, here are links for AWS, Azure, and GCP.

Once you have created your cluster, make sure that you configure your kubectl client to connect to it.

You're now ready to deploy ZenML! Run the following command:

zenml deploy