Tierney - stock.adobe.com

Jenkins unterstützt eine umfassende DevOps-Kultur

Jenkins ist ein Open-Source-basierter, hochgradig erweiterbarer Automatisierungsserver, der wiederkehrende Arbeiten übernehmen kann und DevOps fördert.

Viele Tools unterstützen Entwicklungsprozesse in der IT, aber nur wenige von ihnen sind so beliebt wie Jenkins. Die potentielle Funktionalität von Jenkins endet dabei aber nicht bei der Entwicklung. Auch der operative Betrieb kann Jenkins für das Deployment und viele andere Aufgaben verwenden.

Jenkins ist ein Open-Source-basierter, hochgradig erweiterbarer Automatisierungsserver. Jenkins und andere Automatisierungsserver übernehmen zahlreiche gemeinsame, wiederholbare Aufgaben bei der Erstellung, dem Test und der Bereitstellung neuer Softwareprodukte oder Code-Updates. Zum Beispiel muss ein Entwickler ein Skript manuell schreiben und ausführen, um einen Build aufzurufen. Jenkins kann diese Prozesse automatisch aufrufen und abschließen.

Wie Jenkins arbeitet

Jenkins arbeitet grundsätzlich in Jobs. Jeder Auftrag umfasst in der Regel mehrere Steps. Jedes Build-Projekt ist ein Job, und Jenkins unterstützt eine Reihe von gängigen Job-Typen. In einem Freestyle Job kombinieren Anwender jedes beliebige Softwarekonfigurations-Management und Build-System. Ein External Job zeichnet Prozesse außerhalb von Jenkins auf und zeigt diese Informationen auf einem Jenkins-Dashboard an. Ein Multiconfiguration Job hilft bei anspruchsvolleren Projekten, zum Beispiel bei plattformspezifischen Builds.

Jenkins erstellt einen Orchestrierungs-Workflow, genannt Pipeline, typischerweise für Projekte, die nicht so einfach in Freestyle Jobs passen. Eine deklarative Pipeline-Datei enthält zum Beispiel eine Build-Phase, eine Testphase und eine Deploy-Phase. Jede Phase umfasst viele Einzelschritte, die die eigentliche Arbeit erledigen. Jenkins kann Multibranch-Pipelines erstellen und unterstützen, um komplexe Build Jobs nach externen Kriterien zu orchestrieren. In einem kontinuierlichen oder DevOps-Modell verwenden Teams Jenkins für Deployment-Aktivitäten – selbst in komplexen Setups und über mehrere Jenkins-Server hinweg.

Plug-ins integrieren Jenkins in Build-Tools, Versionskontrollsystemen, Testsystemen, Fehlerdatenbanken und anderen Tools, die die Entwicklung und Bereitstellung von Software ermöglichen. Mit dem Google Compute Engine Plug-in verwendet Jenkins beispielsweise GCE-VMs bei der Ausführung von Build-Aufgaben, anstatt dass Admins die virtuellen Maschinen (VM) konfigurieren müssen.

Plug-ins können Unit-Tests und automatisierte Tests ausführen, und die Testergebnisse werden auch von Plug-ins unterstützt, die Berichtsdaten innerhalb der Jenkins-Schnittstelle anzeigen. Es gibt weit über 1.000 Plug-ins, und diese breite Unterstützung hat dazu geführt, dass Jenkins in verschiedenen Entwicklungsteams verbreitet ist.

Beim Management von Aufgaben verlassen sich Jenkins-Benutzer auf das Dashboard: Sie können damit neue Jobs hinzufügen, den Jenkins-Server verwalten und Jobs in der Warteschlange oder bei der Ausführung anzeigen lassen. Jenkins zeigt eine mit einem Datumsstempel versehene Build-Historie mit Pass/Fail-Ergebnissen an.

Jenkins im operativen Betrieb

Die heutige Entwicklungs-Pipeline endet nicht an der Tür der Entwicklungsabteilung. Operative Mitarbeiter nutzen Jenkins für den Einsatz innerhalb einer modernen CI/CD-Pipeline und zur Automatisierung von Routineanwendungen.

Mitarbeiter im operativen Betrieb können Jenkins für die Bewältigung alltäglicher Aufgaben einsetzen, die derzeit über Ad-hoc-Skripte oder andere Orchestrierungs- und Automatisierungs-Tools ausgeführt werden. Jenkins kombiniert Automatisierungs- und Orchestrierungswerkzeugen, um die Ausführung gängiger Aufgaben zu beschleunigen, ihnen Konsistenz zu verleihen und Fehler und Versäumnisse zu vermeiden, die die Sicherheit oder Leistung beeinträchtigen.

In einer operativen Umgebung kann Jenkins die routinemäßigen Wartungsaufgaben für wichtige Geschäftsanwendungen automatisieren. Dazu gehören zum Beispiel Garbage Collection, Datenbank-Komprimierung, Datei-Backups und Disaster Recovery Setups. Diese Aufgaben werden häufig von IT-Mitarbeitern manuell ausgeführt. Jenkins kann die Aufgaben automatisch ausführen und sogar eine Sequenz von ihnen in einem orchestrierten Prozess konfigurieren.

Operations-Teams können Jenkins in Verbindung mit anderen Infrastruktur-Tools wie dem Microsoft System Center Configuration Manager (SCCM) verwenden, um neue Server in der Infrastruktur zu konfigurieren und einzusetzen. IT-Mitarbeiter verbinden die Hardware mit der Stromversorgung und dem LAN, dann übernehmen die Tools: SCCM erkennt die neue Hardware-ID und veranlasst Jenkins, vorgeschriebene Installationen auszuführen, um das System für die Produktion vorzubereiten.

Egal ob Jenkins für die Bereitstellung, den App-Support oder einfach als Liefersystem für Code in der Entwicklung genutzt wird – der Betrieb profitiert nicht nur von der Zeitersparnis und der Konsistenz des Tools. Jenkins ermöglicht es auch IT-Betrieb und Entwicklungsabteilung, die gleiche Sprache zu sprechen, die Prioritäten des anderen zu verstehen und besser zusammenzuarbeiten. Auf diese Weise fördert Jenkins eine umfassende DevOps-Kultur.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

Sieben Tipps und Best Practices für effiziente Jenkins-Umgebungen.

Continuous-Integration-Plattform CloudBees Jenkins um AWS-Integration erweitert.

Continuous Delivery mit Jenkins um Docker-Support erweitert.

Erfahren Sie mehr über Data-Center-Betrieb

ComputerWeekly.de
Close