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

Das Deployment-Tool Spinnaker unter Cloud Foundry

Continuous Delivery in der Cloud, Teil 1

Das Deployment-Tool Spinnaker unter Cloud Foundry

Was nützt es agil zu sein, wenn fertig entwickelte und den Integrationstest erfolgreich absolvierte Code-Änderungen nicht schnell genug ausgeliefert werden können? Das Open-Source-Tool Spinnaker ist dabei eine wertvolle Unterstützung. lesen

Sollte ein Start-up freie Entwickler beauftragen?

Vor- und Nachteile von Freelancern

Sollte ein Start-up freie Entwickler beauftragen?

Die Versuchung, freie Entwickler an Softwareprojekten mitwirken zu lassen, ist für Start-ups recht groß. Denn Freelancer sind flexibel, bezahlbar und nicht vertraglich an das Unternehmen gebunden. Doch können die Pluspunkte die Nachteile aufwiegen? lesen

API-Management im Unternehmen einführen

Strategien zur Schnittstellen-Implementierung

API-Management im Unternehmen einführen

APIs sind eine Schlüsseltechnologie in der heutigen digitalen Welt. Dieser Artikel beschreibt Strategien, um API-Management in Unternehmen einzuführen und die Schritte, wie Organisationen ihre IT mit Hilfe eines API-basierten Ansatzes transformieren können. lesen

DevSecOps in 4 Schritten

Sicherheit in die DevOps-Strategie integrieren

DevSecOps in 4 Schritten

Die Agilität von DevOps und Microservices-Umgebungen macht die Integration der Sicherheit nicht gerade einfacher. DevSecOps lässt sich aber durchaus realisieren, wenn man vom traditionellen Sicherheitsdenken abrückt. lesen

DevQOps – eine Frage der Qualität

Code Quality Testing als DevOps-Stütze

DevQOps – eine Frage der Qualität

DevOps-Strategien etablieren sich immer weiter, haben ihr volle Leistungsfähigkeit jedoch noch nicht zwingend erreicht. Was auf dem Weg zum nächsten Evolutionsschritt fehlt, ist der maximale Qualitätsanspruch. Willkommen im Zeitalter der DevQOps. lesen

Testautomatisierung im Atlassian-Ökosystem

SmartBear bringt Testmanagement mit Jira in Einklang

Testautomatisierung im Atlassian-Ökosystem

SmartBear kündigt neue Integrationen zwischen der akquirierten Lösung Zephyr und den Testing-Tools SoapUI Pro, TestComplete, CrossBrowserTesting und LoadNinja an. Damit zielt der Anbieter darauf ab, Testmanagement und -automatisierung einheitlich über eine native Jira-Lösung anzubieten. lesen

Managed Continuous Integration und Delivery in der Cloud

Partnerschaft von Atos, CloudBees und Google Cloud

Managed Continuous Integration und Delivery in der Cloud

Atos, CloudBees und Google Cloud haben eine gemeinsame Lösung zur Modernisierung der Anwendungsentwicklung erarbeitet. Der integrierte Service dient der Überwachung der Softwareentwicklungsumgebung und bietet eine verwaltete Plattform für die Softwarebereitstellung. lesen

Neue Funktionen für GitLab-Versionsverwaltung

Zugangsdaten-Erkennung und verbesserte Merge-Freigabe

Neue Funktionen für GitLab-Versionsverwaltung

Einen zuverlässigeren Umgang mit Geheimnissen verspricht die neue Version der Quellcode-Versionsverwaltung GitLab 11.9. Bei Genehmigungs-Workflows und Automatisierung wurden weitere Verbesserungen angekündigt. lesen

DevOps und „Shift left“ in drei Schritten

Agile Entwicklung erfordert Continuous Testing

DevOps und „Shift left“ in drei Schritten

Durch „Shift Left“ rückt das Testen auf dem Zeitstrahl des Software Development Lifecycle weiter nach links. Warum der Begriff bei DevOps und agiler Entwicklung aber etwas irreführend ist und was Unternehmen tun müssen, erläutert Malcom Isaacs von Micro Focus. 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)