Ratgeber

Software-Entwicklung: Das sind die Vorteile der Continuous Integration

Continuous Integration: Moderne Software-Entwicklung. (Grafik: Shutterstock)

Continuous Integration ist ein Fachbegriff aus der Software-Entwicklung, der die automatische Zusammenführung von Code-Komponenten quer über das Entwickler-Team beschreibt.

Entwickler, die in Teams arbeiten, werden bestätigen, dass der zeitraubendste Task bei der gemeinsamen Erstellung einer Software in der Zusammenführung der einzelnen Code-Komponenten, geliefert von unterschiedlichen Entwicklern, besteht. Dabei wird der Task immer schwieriger, je größer das Team ist, und noch größer, wenn sogar mehrere Teams beteiligt sind. In der Vergangenheit wurde daher mit strikten Deadlines und zwischengeschalteten Meilensteinen gearbeitet, ab deren Erreichung nur noch zusammengeführt und Fehler beseitigt wurden.

Nix mehr verpassen: Die t3n Newsletter zu deinen Lieblingsthemen! Jetzt anmelden

Spätes Zusammenführen von Code-Komponenten birgt Probleme

Insbesondere für die Fehlersuche und -behebung ging dabei viel Zeit verloren. Entwickler, die auf die fehlerfreie Fertigstellung von Komponenten anderer Entwickler angewiesen waren, gerieten häufig mit ihren Zeitplänen ins Hintertreffen, was sich entsprechend auf den Gesamtzeitplan auswirken musste. So entstanden neben viel Ärger und Aufwand die Versions-Zyklen gängiger Software-Produkte.

Mit modernen Versionsverwaltungssystemen muss so nicht mehr gearbeitet werden. Die Software-Entwicklung beschleunigt sich nicht nur deutlich, sie zeigt auch qualitativ höherwertige Ergebnisse. Denn Versionsverwaltungssysteme erlauben den Prozess der Continuous Integration, der kontinuierlichen Integration.

So geht Continuous Integration

Bei der kontinuierlichen Integration stellt die Versionsverwaltung sicher, dass Komponenten fortlaufend in das Projekt reintegriert werden, sobald der Entwickler sie abspeichert. Dabei können die zu erledigenden Operationen vorab definiert werden. Der Prozess der kontinuierlichen Integration ist also stets so tief, wie das Team es sich wünscht.

Typischerweise beinhaltet der Prozess mindestens das Linken und Übersetzen der Anwendungsteile. Sinnvoll ist zudem das automatisierte Testen der Komponenten, sowie die Erstellung von Qualitätsmetriken, was zu einem schnelleren und zuverlässigeren Bug-Tracking beiträgt. Dabei reicht das Einchecken des Codes in die Versionsverwaltung.

Das sofortige Aufspüren von Fehlern ist gleichzeitig eine Motivation für Entwickler, möglichst häufig einzuchecken. Immerhin können sie sich auf diese Weise zeitnah auf Fehler hinweisen lassen, um sie zu beheben, wenn sie noch frisch sind. Das spart spätere Gehirnakrobatik.

Vorläufer: Nightly Builds

Continuous Integration ist eine Fortentwicklung des verbreiteten Konzepts der „Nightly Builds“. Bei diesen Nachtversionen wird eine homogene Anwendung über einen nächtlichen Erstellungsprozess hergestellt. Bei der kontinuierlichen Integration ist der nächtliche Prozess grundsätzlich entbehrlich. Da das Konzept jedoch immer an dem Bedarf des Projekts ausgerichtet werden kann, ist auch eine Kombination von Continuous Integration und Nightly Builds denkbar. So könnten etwa Low-Level-Aktivitäten kontinuierlich erfolgen, während die letztendlichen Erstellungsprozesse auf die Nacht konzentriert würden.

Continuous Delivery: Weiterentwicklung des Konzepts

Wenn die Continuous Integration nicht ausreichend erscheint, können Entwickler-Teams das noch weitergehende Konzept der „Continuous Delivery“, der kontinuierlichen Auslieferung, umsetzen. Bei dieser Methode werden beständig neue Versionen der Software ausgeliefert. Natürlich lässt sich auch hier eine spezifische Prozess-Definition erstellen, wonach etwa neue Versionen nur einmal täglich, zu beliebigen anderen Intervallen oder bei Erreichen einer definierten Softwarequalität, die wiederum über automatisierte Metriken gemessen wird, ausgeliefert werden.

Versionsverwaltungssysteme unterstützen die Methode immer umfangreicher. Das aktuelle Gitlab-Update auf Version 12.7 etwa unterstützt Continuous Integration und Continuous Delivery besonders umfangreich, bezeichnet den Prozess nach der Devops-Methode indes als Pipelining. Hier wird der Entwicklungsprozess durch das zeitnahe Feedback an den jeweiligen Entwickler besonders effektiv beschleunigt.

Continuous Integration erfreut auch den Kaufmann im Hause

Im Vergleich zur tradierten Arbeitsweise bei der Software-Entwicklung stellt das Konzept der Continuous Integration eine deutliche Veränderung dar. Neben den bereits genannten Vorteilen führt das Konzept der kontinuierlichen Entwicklung auch dazu, dass ein sauberes Projektmanagement möglich wird. Das freut den Kaufmann. Denn dieser kann anhand von Statusreports und der verbesserten Übersicht stets erkennen, wohin die Budgets laufen und nötigenfalls eingreifen.

Wer sich für tiefergehende theoretische Grundlagen der Continuous Integration interessiert und der englischen Sprache mächtig ist, sollte diesen Beitrag von Martin Fowler lesen.

Passend dazu: Schneller Git-Einstieg – mehr als diese Befehle brauchst du nicht

Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Schreib den ersten Kommentar!

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!

Hey du! Schön, dass du hier bist. 😊

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team bestehend aus 65 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Danke für deine Unterstützung.

Digitales High Five,
Stephan Dörner (Chefredakteur t3n.de) & das gesamte t3n-Team

Anleitung zur Deaktivierung