CLI client tool for deploying workloads to Racetrack


Keywords
deployment, kubernetes, machine-learning, microservice, mlops, model-management, racetrack
License
Apache-2.0
Install
pip install racetrack-client==0.0.5

Documentation

Racetrack

GitHub version (latest SemVer) PyPI Github Pages GitHub Workflow Status Slack

Racetrack is a framework for deploying, managing, and serving application workloads.

f1.mp4

Features

Racetrack uses the notion of conventions to allow domain experts to produce operationally sound and effective workloads without understanding the underlying infrastructure.

It makes extensive use of plugins. Thus, the type of code which it can accept is broad and covers languages such as Python 3 or Go, and actual applications such as Sphinx, Drupal or even Quake 3.

These "jobs", in Racetrack lingo, can be deployed to different "infrastructure targets". We currently support Kubernetes and Docker. This is also pluggable and can be extended.

Code deployed via Racetrack gets free Swagger pages and Prometheus metrics endpoints.

What distinguishes Racetrack is:

  • You only supply your function's logic. No need to write repetitive API code, setting up webservers, creating dockerfiles, kubernetes YAMLs, and so on. Racetrack takes care of that for you.
  • Language agnostic. Deploy code written in Python 3, Go, Rust, or anything else encapsulated in a Dockerfile.
  • Infrastructure independent. Deploy to either a Kubernetes cluster or a Docker environment in a single transparent step.

Example usage

Given a Python file like this:

class Meow:
    def perform(self, a, b):
        """Add numbers"""
        return a + b

And a YAML file like this:

name: adder
owner_email: meowmeow@example.com
jobtype: python3:latest

git:
  remote: https://www.github.com/path/to-repo.git

python:
  entrypoint_path: 'adder.py'
  entrypoint_class: 'Meow'

You can

racetrack deploy

And the result is a micro-service with an API:

which can be monitored on a dashboard:

or called with a curl command:

Getting started

Depending on your role, you may be insterested in different documents:

See the Documentation Pages for more details.

Currently supported

What can we deploy?

Where can we deploy to?

About

This software is copyright Erhvervsstyrelsen. It is published under the Apache 2.0 License. See Copyright Notices.

This project is a collaboration between The Danish Business Authority and deepsense.ai.