Podcast #40 Eine CI/CD-Reise: Weniger Pipelines, mehr Spaß

🕒 Hördauer: 32 Minuten

Ein wichtige Voraussetzung für funktionierende Pipelines ist ihre Lauffähigkeit. Test Driven Development (TDD) und Testautomatisierung helfen, diese sicherzustellen. Karsten Günther stellt im Dialog mit Markus die Einführung und Optimierung von Delivery-Pipelines mit Testautomatisierung im Automotive-Bereich vor. Karsten nimmt uns mit auf seine Reise und zeigt, wie es trotz Herausforderungen und Hindernissen gelungen ist, die gesetzten Ziele mit Einbeziehung der Beteiligten zu erreichen. Abschließend bewertet er das Erreichte und wirft einen Blick auf mögliche Weiterentwicklungen.

Karsten Günther kann per linkedin (Karsten Günther) kontaktiert werden.

Hör' Dir hier den ganzen Podcast an:

 

Diese Themen erwarten Dich:

[00:29] Inhaltsübersicht

[00:50] Vorstellung Karsten Günther

[01:28] Besonderheiten im Arbeitsumfeld Automobilindustrie

[03:56] Eure Aufgabe in diesem Umfeld

[06:24] Eingesetzte Tools

[08:46] Gesetze Bedingungen und Entscheidungspielräume

[11:17] CI und Pipelines

[13:08] Schritte in einer Pipeline

[13:47] Rolle der Testautomatisierung und der Unit Test in einer Delivery Pipeline

[14:29] Eure Ausgangssituation bezüglich CI

[16:16] Definition Zielzustand und Vorbilder

[18:30] Vorgehen bei Umgestaltung der Continuous Integration

[19:30] Einführung neuer Tools

[20:58] Planung, Vorbereitung und Abstimmung der Änderungen geplant, vorbereitet

[22:16] Widerstände

[24:32] Beteiligung Betroffener

[26:14] Hindernisse

[27:56] Zeitpunkt der Integration von Unit-Tests

[28:49] Zielerreichung

[29:56] Zufriedenheit mit den Ergebnissen

[30:13] Pläne für Verbesserungen an den CI/CD-Pipelines

[31:43] Kontakt zu Karsten 
 

Spezielle Anforderungen in der Automobilindustrie

Karsten erläutert die einzigartigen Anforderungen der Softwareentwicklung in der Automobilindustrie. Zwei Hauptstandards dominieren hier: Automotive SPICE und ISO 26262. Automotive SPICE definiert das V-Modell, das detaillierte Spezifikationen für System- und Softwareentwicklung sowie deren Verifikation enthält. ISO 26262 konzentriert sich auf die Sicherheit von Software, um sicherzustellen, dass kein Menschenleben gefährdet wird. Diese strengen Standards sind ein Muss für alle Zulieferer.

 

Von Unit-Tests zu Tool-Entwicklung

Karsten teilt seine anfänglichen Herausforderungen als Embedded-C-Entwickler ohne Unit-Tests. Die traditionelle Methode, Code direkt auf das Zielgerät zu flashen und manuell zu testen, war zeitaufwändig und ineffizient. Dies führte zur Einführung von Unit-Tests, was wiederum den Bedarf an automatisierten Build-Systemen und Test-Frameworks aufwarf. So begann Karstens Reise von der Softwareentwicklung hin zur Tool-Entwicklung.

 

Die Bedeutung von Jenkins und Open Source

Ein wesentlicher Bestandteil ihrer CI/CD-Strategie war die Einführung von Jenkins als Standard-CI-Tool. Karsten betont die Bedeutung von Open Source Tools wie GNU Make für ihre Build-Systeme und Jenkins für ihre Pipelines. Die Wahl fiel auf Jenkins wegen seiner Flexibilität und Anpassungsfähigkeit an verschiedene Projektanforderungen. Im Laufe der Zeit wurde eine umfassende Jenkins-Infrastruktur aufgebaut, die eine effiziente und skalierbare CI/CD-Pipeline ermöglichte.

 

Von Nightly Builds zu Continuous Integration

Ein großer Wandel bestand darin, von zeitgesteuerten Nightly Builds zu einer echten Continuous Integration überzugehen. Karsten beschreibt die Problematik der Nightly Builds - oft endeten diese mit Fehlern aufgrund der vielen parallelen Änderungen am Code. Ihr Ziel war es daher, eventbasierte Trigger für Jenkins zu implementieren, um Änderungen sofort zu testen und so schneller Feedback zu erhalten. Dies führte letztlich zu einer stabileren und effizienteren Entwicklungsumgebung.

 

Herausforderungen und Erfolge

Die Umstellung auf moderne Tools wie Bitbucket für Git-Repositories brachte sowohl technische als auch kulturelle Herausforderungen mit sich. Entwickler mussten lernen, mit Branches und Pull-Requests umzugehen. Doch durch kontinuierliches Training und Unterstützung konnten diese Hürden überwunden werden. Heute sind sie stolz auf eine robuste CI/CD-Pipeline, die schnelle Iterationen ermöglicht und höchste Qualitätsstandards erfüllt.

Veröffentlicht am 26.September 2024

Aktualisiert am 15.Oktober 2024

Markus Thaler

Senior Testmanager, Testarchitekt

Markus Thaler war 22 Jahre in der Commerzbank tätig, wo er sich mehr als 10Jahre um Teststandards, Testwerkzeuge und Testautomatisierung in einer zentralen Funktiongekümmert hat, bevor er nach einer Zwischenstation im Testinfrastrukturmanagement achtJahre als Testmanager in der Risikofunktion der Commerzbank gewirkt hat. Vor derCommerzbank konnte er Testerfahrungen bei Lufthansa, Siemens, Nestle und der DZ-Bankgewinnen. Aktuell ist er als Senior Testmanager und Testarchitekt bei Qytera tätig.

Finden Sie weitere interessante Artikel zum Thema: