Build-Tools für CI/CD

Die Build-Tools für CI/CD, also für die Umsetzung einer  Continuous Integration/Delivery/Deployment-Strategie haben sich in den letzten Jahren als gesetzte Produkte etabliert. Heutzutage haben Software-Projekte keinen konzeptuellen Aufwand mehr, eine komplette Build-Chain aufzusetzen. Es geht eigentlich “nur” noch um die gewünschte Ausprägung und eine Evaluierung der geeigneten Produkte. 

Die Werkzeuge

In einer klassisch aufgesetzten Build-Chain werden für die unterschiedlichen Aufgaben unterschiedliche Systeme eingesetzt:

  1. Das Source Code Management System (SCM) enthält alle Sourcen des Software-Projekts. Also natürlich die eigentlichen Quellcodes, Konfigurationsdateien und weitere Ressourcen. Daneben enthält es aber auch noch die Definition des Build-Prozesses.
  2. Ein Build-Tool erzeugt aus den Quellcodes die gebaute Anwendung bzw. “Artefakte”. Dabei werden Abhängigkeiten, auch transitiv, zu anderen Artefakten aufgelöst.
  3. Die Entwickler-Rechner haben Zugriff auf das SCM und legen darin ihre Quellen ab. Zusätzlich ist das Build-Tool installiert, so dass ein Build-Prozess lokal ausgeführt werden kann.
  4. Eine Build-Maschine holt sich vom SCM die Quellcodes sowie den Build-Prozess und baut daraus die Anwendung. 
  5. Das Artefakt-Repository hält alle Artefakte in einer hierarchischen Ablage inklusive Versionsnummer vor. Artefakte werden vom Build-Tool stets vom Artefakt-Repository geladen. Aber auch alle nachrangigen Prozesse, also beispielsweise Anwendertests oder die Produktionsplattform bedienen sich des Artefakt-Repositories. 

Als konkrete Produkte seien hier erwähnt:

  1. GIT in Kombination mit einem Git-Server wir GitHub. GitLab oder BitBucket als SCM, 
  2. Als Build-Werkzeug z.B. im Java-Umfeld Apache Maven oder Gradle. Für Web-Anwendungen ist npm sicherlich immer eine sinnvolle Möglichkeit.
  3. Als Build-Maschine ist Jenkins in vielen Unternehmen gesetzt. 
  4. Nexus und Artifactory sind gebräuchliche Repository Manager.

Selbstverständlich stellen diese Produkte nur eine subjektive Auswahl dar.

Gesamtbild

Das folgende Gesamtbild veranschaulicht das Zusammenspiel der Komponenten:

Die Build-Tools im Zusammenspiel

 


Seminare zum Thema

Dr. Rainer Sawitzki / Dr. Rainer Sawitzki

Nach seinem Studium der Physik und anschließender Promotion Wechsel in die IT-Branche. Seit mehr als 20 Jahren als Entwickler, Berater und Projektleiter vorwiegend im Bereich Java und JavaScript unterwegs. Parallel dazu in der Entwicklung und Durchführung von hochwertigen Seminaren für die Integrata im Einsatz.

Schreibe einen Kommentar