Overview of categories of MLOps components and third-party integrations.

If you are new to the world of MLOps, it is often daunting to be immediately faced with a sea of tools that seemingly all promise and do the same things. It is useful in this case to try to categorize tools in various groups in order to understand their value in your toolchain in a more precise manner.

ZenML tackles this problem by introducing the concept of Stacks and Stack Components. These stack components represent categories, each of which has a particular function in your MLOps pipeline. ZenML realizes these stack components as base abstractions that standardize the entire workflow for your team. In order to then realize the benefit, one can write a concrete implementation of the abstraction, or use one of the many built-in integrations that implement these abstractions for you.

Here is a full list of all stack components currently supported in ZenML, with a description of the role of that component in the MLOps process:

Type of Stack Component


Orchestrating the runs of your pipeline

Storage for the artifacts created by your pipelines

Store for your containers

Data and model validation

Tracking your ML experiments

Services/platforms responsible for online model serving

Execution of individual steps in specialized runtime environments

Sending alerts through specified channels

Builds container images.

Labeling and annotating data

Manage and interact with ML Models

Management of your data/features

Each pipeline run that you execute with ZenML will require a stack and each stack will be required to include at least an orchestrator and an artifact store. Apart from these two, the other components are optional and to be added as your pipeline evolves in MLOps maturity.

Writing custom component flavors

You can take control of how ZenML behaves by creating your own components. This is done by writing custom component flavors. To learn more, head over to the general guide on writing component flavors, or read more specialized guides for specific component types (e.g. the custom orchestrator guide).


Categorizing the MLOps stack is a good way to write abstractions for an MLOps pipeline and standardize your processes. But ZenML goes further and also provides concrete implementations of these categories by integrating with various tools for each category. Once code is organized into a ZenML pipeline, you can supercharge your ML workflows with the best-in-class solutions from various MLOps areas.

For example, you can orchestrate your ML pipeline workflows using Airflow or Kubeflow, track experiments using MLflow Tracking or Weights & Biases, and transition seamlessly from a local MLflow deployment to a deployed model on Kubernetes using Seldon Core.

There are lots of moving parts for all the MLOps tooling and infrastructure you require for ML in production and ZenML brings them all together and enables you to manage them in one place. This also allows you to delay the decision of which MLOps tool to use in your stack as you have no vendor lock-in with ZenML and can easily switch out tools as soon as your requirements change.

Available integrations

We have a dedicated webpage that indexes all supported ZenML integrations and their categories.

Another easy way of seeing a list of integrations is to see the list of directories in the integrations directory on our GitHub.

Installing ZenML integrations

Before you can use integrations, you first need to install them using zenml integration install, e.g., you can install Kubeflow, MLflow Tracking, and Seldon Core, using:

zenml integration install kubeflow mlflow seldon -y

Under the hood, this simply installs the preferred versions of all integrations using pip, i.e., it executes in a sub-process call:

pip install kubeflow==<PREFERRED_VERSION> mlflow==<PREFERRED_VERSION> seldon==<PREFERRED_VERSION>
  • The -y flag confirms all pip install commands without asking you for

You can run zenml integration --help to see a full list of CLI commands that ZenML provides for interacting with integrations.

Note, that you can also install your dependencies directly, but please note that there is no guarantee that ZenML internals with work with any arbitrary version of any external library.

Experimental: Use uv for package installation

You can use uv as a package manager if you want. Simply pass the --uv flag to the zenml integration ... command and it'll use uv for installation, upgrades and uninstallations. Note that uv must be installed for this to work. This is an experimental option that we've added for users wishing to use uv but given that it is relatively new as an option there might be certain packages that don't work well with uv. We will monitor how this performs and update as uv becomes more stable.

Upgrade ZenML integrations

You can upgrade all integrations to their latest possible version using:

zenml integration upgrade mlflow pytorch -y
  • The -y flag confirms all pip install --upgrade commands without asking you for confirmation.

  • If no integrations are specified, all installed integrations will be upgraded.

Help us with integrations!

There are countless tools in the ML / MLOps field. We have made an initial prioritization of which tools to support with integrations that are visible on our public roadmap.

We also welcome community contributions. Check our Contribution Guide and External Integration Guide for more details on how to best contribute to new integrations.

Last updated