Background: My challenge during my internship and final university project was to test and deploy ML Models automatically using DevOps practices.
Goal: Ensure code quality and ML models unit testing.
Solution & Results: The solution I came up with was to deploy a Jenkins instance on my Raspberry Pi. It turns out it works fine, and it is a very cheap solution for students since I don't have enough credits in Travis, and Jenkins is FREE!
I learned how to use Jenkins a few days ago, and I have to say this is a very useful tool. I first installed Open Blue Ocean, a very cool and modern web interface for Jenkins. After the installation, I created a Jenkinsfile with the defined pipeline I wanted to execute. It included the execution of a dependencies installation on a Python container and the execution of linters and code formatters (Pylint and Black) to ensure the best code quality. Finally, it executes Pytest to ensure the correct operation of the implemented ML Models.
Jenkins is great for fast builds and testing, and works nicely with Docker on a Raspberry Pi.
The key capabilities I relied on for this project were: Open Blue Ocean, Docker builds, and Works on Raspi. Take a look at my project here.
I was pleased with Jenkins because: