Deploying your first job

👍

What you'll learn

  • How to deploy training code as a job via servicefoundry

This is a guide to deploy training code as a job via servicefoundry

After you complete the guide, you will have a successful deployed a job to train a model on the iris dataser. Your jobs deployment dashboard will look like this:

Project structure

To complete this guide, you are going to create the following files:

  • train.py : contains our training code
  • requirements.txt : contains our dependencies
  • deploy.py contains our deployment code ( you can also use a deployment configuration for deploying using a YAML file)

Your final file structure is going to look like this:

.
├── train.py
├── deploy.py
└── requirements.txt

As you can see, all the following files are created in the same folder/directory

Step 1: Implement the training code

The first step is to create a job that trains a scikit learn model on iris dataset

We start with a train.py containing our training code and requirements.txt with our dependencies.

.
├── train.py
└── requirements.txt

train.py

Click on the Open Recipe below to understand the components of train.py:

requirements.txt

pandas==1.4.4
numpy==1.22.4
scikit-learn==1.1.2

# for deploying our job deployments
servicefoundry>=0.1.97,<0.2.0

Step 2: Deploying as a Job

You can deploy services on Truefoundry programmatically via our Python SDK.

Create the deploy.py, after which our file structure will look like this:

File Structure

.
├── train.py
├── deploy.py
└── requirements.txt

Follow the recipe below to understand the deploy.py file :

To deploy the job using Python API use:

python deploy.py

📘

.tfyignore files

If there are any files you don't want to be copied to the workspace, like a data file, or any redundant files. You can use .tfyignore files in that case.

End result

On successful deployment, the Job will be created and run immediately.

We can now visit our Applications page to check Build status, Build Logs, Runs History and monitor progress of runs.
See Monitoring and Debugging guide for more details.

See Also