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

20% Rabatt auf „DevOps World | Jenkins World 2019“-Tickets

Dev-Insider ist Medienpartner der Jenkins-Konferenz

20% Rabatt auf „DevOps World | Jenkins World 2019“-Tickets

Die Jenkins Community und CloudBees haben das Programm für die DevOps World | Jenkins World 2019 Lissabon auf die Beine gestellt. Unter dem Motto „Deliver“ sprechen Fachexperten in insgesamt 78 Sessions über aktuelle Themen der digitalen Transformation und Softwarebereitstellung. lesen

Cloud-native Alternativen zu Jenkins

Consol testet moderne CI- und CD-Tools

Cloud-native Alternativen zu Jenkins

Beim Cloud-native Development stoßen gängige Continuous-Integration- und -Delivery-Tools an ihre Grenzen. Auf Microservice-Architekturen sind diese Werkzeuge schlicht nicht ausgerichtet, meint das Consulting-Unternehmen Consol, das einige Alternativen identifiziert hat. lesen

DevOps für Salesforce-Umgebungen

Prozessoptimierung im Cloud CRM

DevOps für Salesforce-Umgebungen

Bei der Entwicklung und dem Betrieb für Salesforce werden Unternehmen vor verschiedene Herausforderungen gestellt. Welche Herausforderungen das sind und wie DevOps bei der Optimierung des Software-Lifecycles unterstützen kann, werde ich in diesem Fachartikel erläutern. lesen

So passen DevOps und Sicherheit zusammen

Worauf IT-Entscheider achten müssen

So passen DevOps und Sicherheit zusammen

An agilen Methoden wie DevOps kommt heute bei der Software-Entwicklung niemand mehr vorbei. Wer dem Thema Sicherheit dabei nicht von Anfang an große Aufmerksamkeit widmet, riskiert eine Menge Geld und den Ruf seines Unternehmens. lesen

Mehr Development-Tools für die Cloud geplant

Neue Arbeitsgruppe der Eclipse Foundation

Mehr Development-Tools für die Cloud geplant

Die Eclipse Foundation hat eine neue Arbeitsgruppe ins Leben gerufen, um die Bereitstellung von Cloud-Entwicklungswerkzeugen voranzutreiben. Zur Gruppe gehören namhafte Unternehmen wie IBM, Red Hat, SAP und Broadcom. lesen

Agile Entwicklung erfordert agile Sicherheitsprozesse

Von DevOps zu DevSecOps

Agile Entwicklung erfordert agile Sicherheitsprozesse

Agile Softwareentwicklung und DevOps stehen für einen regelmäßigen Austausch zwischen IT-Teams und Fachbereichen sowie deren gemeinsame Verantwortung. Doch nur wer Sicherheitsexperten in die Prozesskette mit einbindet, kann die entstehenden Services sicher betreiben. lesen

Mainframe-Entwickler – ernsthaft?

Junge Fachkräfte für Großrechner interessieren

Mainframe-Entwickler – ernsthaft?

Viele haben ihn schon längst abgeschrieben, doch der Mainframe lebt munter weiter. Und seine Nutzung steigt sogar, so dass Entwickler händeringend gesucht sind. Doch wie können Unternehmen die Plattform für junge Fachkräfte interessant machen? lesen

Was ist Bitbucket?

Definition „Atlassian Bitbucket“

Was ist Bitbucket?

Mit Bitbucket können kleine und große Teams ihre Softwareprojekte kollaborativ verwalten. Das von Atlassian entwickelte Tool unterstützt Git und Mercurial für die Versionskontrolle. lesen

8 Tipps für DevSecOps und Continuous Testing

Sichere Web-Applikationen trotz agiler Entwicklung

8 Tipps für DevSecOps und Continuous Testing

Das Tempo und die Agilität, die mit DevOps einhergehen, können sich nachteilig auf die Sicherheit auswirken. Eine Abhilfe verspricht DevSecOps durch die Integration kontinuierlicher Sicherheitsprozesse. Janosch Maier, Co-Founder von Crashtest-Security, hat acht Tipps für entsprechende Strategien parat. 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)