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

Kubernetes-basierte Tools – die Erben von Jenkins

Argo, InfraBox und Tekton / Jenkins X

Kubernetes-basierte Tools – die Erben von Jenkins

Jenkins ist der Platzhirsch unter den CI- und CD-Lösungen, hat aber wohl seine besten Jahre hinter sich. Neue, vielversprechende Tools drängen auf den Markt, die Technologien wie Kubernetes nicht nur als Option, sondern als native Plattform begreifen und daraus immensen Nutzen ziehen. lesen

GitLab macht 18 Pro-Features Open Source

Mithilfe bei Erweiterung von Core/Free-Version erwünscht

GitLab macht 18 Pro-Features Open Source

GitLab will nach eigenen Angaben 18 Funktionen der kommerziellen Software-Version in die Core- bzw. Free-Version aufnehmen. Im Sinne des Open-Source-Gedankens dürfen freie Entwickler gerne dabei mithelfen, die Funktionen schneller verfügbar zu machen. lesen

Wo liegen bei DevOps die Grenzen der Agilität?

Bimodales Release-Management gegen Reibungsverluste

Wo liegen bei DevOps die Grenzen der Agilität?

Fällt das Wort DevOps, so wird per se davon ausgegangen, dass eine hochgradig automatisierte und standardisierte Software-Produktionsstraße existiert. Die Agilität der Software-Entwicklung und -Bereitstellung hängt aber noch von ganz anderen Faktoren ab. lesen

Git feiert im April seinen 15. Geburtstag

Jubiläum der Versionsverwaltung

Git feiert im April seinen 15. Geburtstag

Am 7. April feiert die quelloffene Versionsverwaltung namens Git ihren 15. Geburtstag. Damals hob sie Linux-Urgestein Linus Torvalds auf der Taufe – wenngleich nicht ganz freiwillig. lesen

Das Rechenzentrum im Irgendwo

Cloud Native Computing Foundation Survey 2019

Das Rechenzentrum im Irgendwo

Zum siebten Mal legt die Cloud Native Computing Foundation (CNCF) ihre Studie „CNCF Survey“ vor. Die Umfrage für das Jahr 2019 zeigt nach Ansicht der Autoren deutlich, dass Cloud Native Computing mittlerweile im Mainstream angekommen ist. lesen

Parasoft Selenic nun im EMEA-Raum erhältlich

KI-basiertes UI-Testtool für Selenium

Parasoft Selenic nun im EMEA-Raum erhältlich

Parasoft, Spezialist für automatisierte Softwaretests, bietet sein Selenic-Tool ab sofort auch in Europa, dem Mittleren Osten und Afrika (EMEA) an. In den USA ist Selenic bereits seit Oktober 2019 verfügbar. lesen

11 Gründe für die Einführung von GitOps

Continuous Deployments für Cloud-Native-Infrastrukturen

11 Gründe für die Einführung von GitOps

GitOps ist für alle in greifbare Nähe gerückt: Denn mit Kubernetes lassen sich Deployments von Anwendungen und Infrastruktur-Komponenten rein über deklarative Konfigurationsdateien verwalten, die in einem Git-Repository liegen. Aber was spricht eigentlich für diesen Ansatz? lesen

Tipps und Prognosen für Drohnen-Software

Besonderheiten der Drohnen-Technologie und -Entwicklung

Tipps und Prognosen für Drohnen-Software

Drohnen bestehen aus weitaus mehr als nur Gehäuse, Motoren und Rotoren, sprich der Hardware. Unter der Haube arbeitet ein komplexes Software-Gebilde, bestehend aus Embedded-Komponenten, Betriebssystem und APIs. lesen

DevOps auf dem Vormarsch

IDC-Studie

DevOps auf dem Vormarsch

IDC hat IT- und Fachentscheider aus 205 Organisationen mit mehr als 100 Mitarbeitern aus allen Branchen in Deutschland befragt, um Einblicke in die Nutzung, Umsetzungspläne, technologische Treiber, Herausforderungen und Erfolgsfaktoren von DevOps zu erhalten. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45166913 / Definitionen)