• INWT
  • Training
  • Training: Continuous-Integration mit Jenkins
Continuous-Integration mit Jenkins

Continuous Integration mit Jenkins: Schulung und Training

Voraussetzungen: grundlegende Programmierkenntnisse in R, Python oder einer anderen Sprache, Grundkenntnisse in Git

Dauer: ca. 4 Stunden

Vor der Einführung von Continuous Integration (CI) haben wir Code für unsere Data-Science-Projekte zwar in Git-Repositories entwickelt, aber im Rahmen der Entwicklung nur manuell getestet. Dabei kam es vermehrt vor, dass im Zuge der regelmäßigen Releases ärgerliche Probleme zutage traten. Typische Ursachen für diese Probleme sind Updates bei Paketabhängigkeiten, Encoding, Inkompatibilitäten auf anderen Plattformen, fehlgeschlagene Tests, etc. Da Releases in unseren Data-Science-Projekten i.d.R. nach fixen Zeitplänen stattfinden, wurde es dann schnell stressig den Zeitplan und den Qualitätsanspruch zu halten.

Die Idee von Continuous Integration (CI) ist es, Änderungen in sehr kleinen Schritten zu integrieren. Durch die Einführung eines CI-Tools wie Jenkins haben wir bei INWT die Möglichkeit, Bugs frühzeitig zu erkennen, unmittelbar zu reagieren und somit die Qualität des Codes langfristig zu sichern. Der Prozess der Release wird quasi automatisiert und für jede Änderung am Code sichergestellt, dass das Data-Science-Projekt lauffähig ist und so funktioniert, wie es soll.

Jenkins ist derzeit das führende Open-Source-Continuous-Integration-System. Durch die Möglichkeit zur Automatisierung manueller Aufgaben hat sich Jenkins als CI-Tool für viele unserer Data-Science-Projekte, insbesondere in Hinblick auf Unit-Tests, ETL-Prozesse und Deployments als äußerst hilfreiches Werkzeug etabliert, ohne das wir nicht mehr arbeiten wollen.

Dieses Training behandelt die grundlegenden Konzepte von Continuous Integration am Beispiel von Jenkins. Jenkins ist sehr mächtig und stammt aus dem Software-Development. Wir konzentrieren uns explizit darauf, wie sich das Tool nutzen lässt, um Data-Science-Workflows produktiver zu machen. Dabei lernen wir das Setup, die Oberfläche und die Konfigurationsmöglichkeiten in Jenkins kennen. Außerdem erstellen wir gemeinsam verschiedene Jobs in Jenkins und zeigen Schritt-für-Schritt mit Hilfe von Übungen wie man Jenkinsfiles schreibt und diese aus einem GitHub-Repository heraus mit Jenkins verknüpft.

Der Fokus unseres CI-Trainings liegt auf den folgenden Inhalten:

  • Kosten und Nutzen von Continuous Integration
  • Set-Up und Konfiguration von Jenkins
  • Erstellen von typischen Data-Science-Jobs in Jenkins
  • Erstellen und Einbinden von Jenkinsfiles