Was ist Jenkins?
Jenkins ist ein erweiterbares, webbasiertes Software-System zur kontinuierlichen Integration von Komponenten zu einem Anwendungsprogramm.
Die Aufgaben von Jenkins umfassen:
- Steuerung von Deployment-Prozessen
- Logging von Ereignissen (Deployments, Tests)
- Darstellung von geloggten Ereignissen (Erfolgreiche Deploymentschritte, Abbrüche, Fehlermeldungen)
- Durchführung automatisierter Tests (z.B. UAT’s)
- Darstellung von Ergebnissen automatisierter Tests
- Verwaltung von Benutzern, die zum Auslösen von Deployments berechtigt sind
- Benachrichtigung z.B. bei fehlschlagenden Tests oder Deployments
Die Steuerung der Deployment-Jobs wird über den folgend beschriebenen Master-Slave Ansatz geregelt.
Eine zentrale Jenkins-Instanz, weiterhin Master genannt, dient dabei der Steuerung für die einzelnen Jobs.
Der Master verteilt Aufgaben an weitere Instanzen, weiterhin Slaves genannt. In diesem Fall hat sich die Verwendung von Docker-Containern als praktikable Lösung herausgestellt und wird so von uns betrieben.
Die Jobs erzeugen ein Artefakt, mit dem Ziel dies anschließend auszuliefern und auf den Zielsystemen zu installieren.