Definition „Kontinuierliche Integration“

Was ist Continuous Integration?

| Autor / Redakteur: HJL / Stephan Augsten

Continuous Integration erlaubt es, Programmteile stetig statt in nur einem einzigen täglichen Lauf zusammenzuführen.
Continuous Integration erlaubt es, Programmteile stetig statt in nur einem einzigen täglichen Lauf zusammenzuführen. (Bild: geralt - Pixabay.com / CC0)

Software-Entwicklung erfolgt immer häufiger in Teams, die ihre Arbeitsergebnisse in einer Build-Umgebung zusammenführen müssen. Continuous Integration oder CI sorgt dafür, dass neue Programmteile sofort getestet und zusammengeführt werden können, statt dies beispielsweise nur einmal nachts zu tun.

Programmierung & Kompilierung: ein Blick zurück

Softwareprogramme bestehen in der Regel aus einzelnen Modulen. Entsprechend gestaltet sich die Vorgehensweise bei der Softwareentwicklung. Häufig wird das Gesamtprojekt analog zu diesen Modulen von mehreren Teams parallel vorangetrieben.

Die vorgenommenen Erweiterungen und Änderungen am Programm wurden in der Vergangenheit häufig in Form eines „Tagewerks“ erstellt. Die Zusammenführung der isoliert in den Software-Entwicklungsteams erarbeiteten Änderungen wurden in der Regel nur einmal täglich, in einer Kompilierung auf dem „Build“-Server zusammengeführt.

Erst im Anschluss erfolgten die Tests der neuen Funktionsumfänge anhand der erweiterten Gesamtcodebasis. Diese tradierte Vorgehensweise bei der Programmierung birgt große Risiken. Wird neu geschaffener Code nicht stetig integriert, so wird fehlerhafter Code zu spät erkannt. Die Folgen sind zeitaufwendige Rückkopplungsprozesse und ein hoher Zeitaufwand bei der Bug-Beseitigung.

Vor der Einführung der kontinuierlichen Integration (CI) erwies sich auch das Warten einzelner Teams auf die Fertigstellung anderer benötigter Software-Teile aus anderen Teams als störend und die Entwicklungskosten belastend. Tauchten beim nächtlichen Kompilieren auf dem Build-Server Schwierigkeiten auf, so führte der Zeitaufwand für die Problembehebung am Folgetag zu weiteren Störungen des Entwicklungs- und Testablaufs.

Gängige Praxis in der Software-Entwicklung

Die in modernen Unternehmen eingesetzte Continuous Integration bezeichnet die kontinuierliche Integration von Softwarekomponenten in die Gesamtcode-Basis eines Programms. Die Vorteile dieser Arbeitsweise in überschaubaren Schritten liegen zum einen im kontinuierlichen Arbeitsfluss, zum anderen in der Möglichkeit der frühzeitigen Fehlererkennung. In der Summe ergeben sich Vorteile bei Arbeitseffizienz und Software-Qualität.

Die Arbeitsweise unterscheidet sich signifikant vom oben beschriebenen, traditionellen Prozess. Bei der Arbeit nach den Regeln des CI-Prozesses teilen die Teams und Programmierer den von ihnen erstellten Code sowie die durchgeführten Tests.

In der Praxis bedeutet dies, dass die in kleineren Schritten vorgenommenen Änderungen regelmäßig zusammengeführt werden. Die Einspeisung erfolgt in ein unterteiltes Code Repository. Auf diesem Wege werden Versionskontrollen durchgeführt, indem ein automatisierter Build-Prozess die jeweils aktuellste Code-Version aus dem Repository übernimmt.

Straffung des automatisierten Entwicklungsablaufs

Die Vorteile dieser automatisierten Ablauforganisation liegen auf der Hand und lassen sich aus der Praxis folgendermaßen charakterisieren:

  • Regelmäßige Übergabe des neu geschaffenen Codes;
  • kategorisierte Entwicklungstests;
  • Einrichtung eines kontinuierlichen "Feedback-Mechanismus";
  • direkte Ausführung der "Builds".

Dank des kontinuierlichen Ablaufprozesses und der Überschaubarkeit der kleinen Schritte werden Fehler bereits in einem sehr frühen Stadium lokalisiert. Sie können dann sofort, mit überschaubarem Kosten- und Zeitaufwand behoben werden. Zweifelsohne partizipieren Projektmanagement wie auch die einzelnen Software-Entwicklungsteams von den regelmäßigen Statusreports und der optimierten Projektübersicht.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Commits und Tests mit AWS CodeCommit und CodeBuild

CI/CD-Pipeline mit AWS-Tools, Teil 2

Commits und Tests mit AWS CodeCommit und CodeBuild

Ein neues Projekt ist in AWS CodeStar schnell erstellt. Umgehend kann man in den einzelnen Stufen experimentierten, z. B. mit neuen Commits zu Feature-Upgrades beitragen oder Unit-Tests implementieren. CodeStar visualisiert dabei den Projekt-Status und unterstützt die Tool-Integration. lesen

Data-Management-Automatisierung als Antwort?

Steigende Anforderungen an Test/Dev im Jahr 2019

Data-Management-Automatisierung als Antwort?

Automatisiertes Datenmanagement unterstützt die Umsetzung von DevOps. Test/Dev-Umgebungen werden damit generell dynamischer und fit für die Hybrid-Cloud-Ära gemacht, wie wir im Folgenden zeigen. lesen

Startschuss für DevOps World und Jenkins World 2019

Call for Papers und Early-Bird-Registrierung eröffnet

Startschuss für DevOps World und Jenkins World 2019

Jenkins Community und DevOps-Experte CloudBees wappnen sich aktuell für die beiden DevOps- und Jenkins-World-Konferenzen 2019 in den USA und Europa. Sowohl der Call for Papers als auch die Frühbucher-Registrierung sind bereits gestartet. lesen

DevOps-Projekte mit AWS CodeStar erstellen

CI/CD-Pipeline mit AWS-Tools, Teil 1

DevOps-Projekte mit AWS CodeStar erstellen

Im Jahr 2017 hat AWS den Dienst AWS CodeStar vorgestellt. Dieser soll das Einrichten und Betreiben von Continuous-Integration- und Continuous-Delivery-Pipelines besonders komfortabel machen. Ein solches Szenraio spielen wir hier durch. lesen

Native Cloud-Apps und Microservices auf Kubernetes

Continuous Delivery mit CloudBees Core

Native Cloud-Apps und Microservices auf Kubernetes

Als kommerzielle Version von Jenkins X wurde CloudBees Core für Kubernetes Continuous Delivery entwickelt und jüngst veröffentlicht. Die Lösung soll Unternehmen bei der schnellen Entwicklung, Bereitstellung und Verwaltung nativer Cloud-Anwendungen und Microservices unterstützen. lesen

Continuous-Methoden unter der Lupe

DevOps und Jenkins Community Survey

Continuous-Methoden unter der Lupe

Die Jenkins Community hat die Ergebnisse der nunmehr fünften jährlichen und von CloudBees gesponserten „DevOps und Jenkins Community Survey“ online gestellt. Darin berichten die Teilnehmer über ihre Strategien und den DevOps-Reifegrad in ihrem Unternehmen. lesen

Mehr Softwarequalität mit Parasoft Jtest

Statische Codeanalyse und Modultests

Mehr Softwarequalität mit Parasoft Jtest

Qualitätssicherung in Echtzeit: Noch während Softwareentwicklung und Continuous Integration soll die Java-Testumgebung Parasoft Jtest erkennen, wie sich Codeänderungen auswirken. Das neue Release ist bereits erhältlich. lesen

Die beliebtesten DevOps-Anbieter

IT-Awards 2018

Die beliebtesten DevOps-Anbieter

Wenn Softwareentwicklung, IT-Betrieb und Qualitätssicherung unter einen Hut gebracht werden sollen, lautet das Zauberwort DevOps. Dieser Ansatz zur Prozessverbesserung sorgt durch gemeinsame Methoden, Abläufe und Tools für eine effiziente Zusammenarbeit dieser Bereiche. Im Ergebnis führt das zu schnellerer Anwendungsentwicklung, höherer Qualität und optimiertem Teamwork. lesen

Open Source DevOps Platform von Infosys bei GitHub

Agile Methoden und DevOps für das Enterprise-Segment

Open Source DevOps Platform von Infosys bei GitHub

Der IT-Service-Anbieter Infosys hat eine quelloffene DevOps-Plattform bereitgestellt, die in einer Community-Edition auch bei GitHub erhältlich ist. Die integrierte Lösung soll Unternehmen bei der Umsetzung agiler und DevOps-orientierter Prozesse helfen. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45166913 / Definitionen)