What is Bodywork?
Updated
Bodywork is a command-line tool that deploys machine learning pipelines to Kubernetes. It handles container builds and orchestration for you, so you define pipeline stages as ordinary Python modules or notebooks and let Bodywork run them. It fits teams that want to run ML pipelines and deploy models on Kubernetes without adopting a heavier platform or building their own orchestration stack.
Who it is for
Bodywork targets teams that want a solution for running ML pipelines and deploying models to Kubernetes. It positions itself as a lightweight and simpler alternative to Kubeflow, or to building your own platform around a workflow orchestration tool such as Apache Airflow, Argo Workflows, or Dagster.
If your team already runs Kubernetes and wants ML workloads on it without assembling a platform from scratch, Bodywork is aimed at that situation. If you need a broad ML platform with many integrated components, the alternatives above are the comparison points Bodywork itself names.
Pipeline = Jobs + Services
Any stage in a Bodywork pipeline does one of two things:
- Run a batch job — prepare features, train models, compute batch predictions, and similar finite tasks.
- Start a long-running process — for example, a Flask app that serves model predictions over HTTP.
Combining these two stage types covers many common ML use cases, from serving pre-trained models to running continuous training on a schedule.
How it works
No boilerplate code
Defining a stage means developing an executable Python module or Jupyter notebook that performs the required tasks, then committing it to your project's Git repository. You structure your codebase however you like, and there are no new APIs to learn.
Configuration in one file
Stages are assembled into DAGs that define your pipeline's workflow. This and other key configuration live in a single bodywork.yaml file.
DevOps handled for you
Bodywork removes the need to build and manage container images for any pipeline stage. It runs all stages using Bodywork's custom container image. Each stage starts by pulling the required files directly from your project's Git repository (for example, GitHub), pip-installing any required dependencies, and then running the stage's designated Python module.
What to check before adopting it
- Kubernetes is a prerequisite. Bodywork deploys to Kubernetes, and the documentation includes a dedicated setup step for it. Confirm you have a cluster available.
- Your code stays in Git. Stages pull files from your project's Git repository at runtime, so your pipeline code needs to live there.
- Dependencies are installed at stage start. Because each stage pip-installs its dependencies when it runs, dependency setup is part of every stage execution rather than a prebuilt image.
- Compare against your current stack. If you already run Airflow, Argo Workflows, or Dagster, the relevant question is whether Bodywork's simpler model covers your pipeline needs better than extending what you have.
The documentation's own entry points for going further are the Quickstart Tutorials (batch workloads, model deployment, continuous training, pipeline release) and the Key Concepts, User Guide, and CLI Reference sections.