Jenkins Pipeline optimieren mit parallele Ausführung auf dem Raspberry Pi

In diesem Blog Beitrag hatte ich gezeigt, wie man auf einem Raspberry Pi einen aktuellen Jenkins installieren kann.

Nun möchte ich mal zeigen, wie Aufgabe parallelisiert werden können.

Parallelisieren von Jenkins Stages

Ein Jenkins Jobs der folgendes macht, soll mal als Beispiel dienen, um parallele Pipeline zu demonstrieren.

Ein einfacher Job der

  • Flugdaten aus Hannover abfragt
  • mein Kaffee verbrauch ermittelt
  • Temperatur und Luftfeuchte in HAJ abfragt
  • Umweltdaten des Lufthygienisches Überwachungssystem Niedersachsen abfragt
  • meine drei Server per Ping 10 mal checkt
  • und das Ergebnis aller Abfragen per E-Mail versendet

Dazu das kleine Groovy Script, das die öffentlichen Daten abfragt, in den Job eintragen:

Hier die Job Pipeline:

Pipeline

Der Stage mit dem drei mal zehn Ping dauert 29 Sekunden. Den Ping wollen wir nun parallel laufen lassen, um zu sehen, wie man Jobs parallelisieren kann. Dazu brauchen wir in dem Stage nur den Befehl parallel mit Klammern aufrufen. Hier die Syntax:

Der neue modifizierte Job:

Das Ergebnis. Ein Stage mit dem check dauert nun nur noch 11 Sekunden:
Jenkins Job

Das die Ping Befehle parallel abgearbeitet werden, kann man am Log gut sehen, welches per E-Mail bei mir einmal am Tag zugesendet wir:

In der ersten Version hingegen werden alle drei Server nach einander angepingt.

Es können auch noch Nodes parallel abgearbeitet werden.

Hier noch der direkte Vergleich: