Dein letzter Login ist schon eine Weile her.

Bitte überprüfe, ob alle Angaben in Deinem Profil noch aktuell sind.


26.10.2018
von Jan-Dirk
in IT-Talents

Was ist Continuous Integration (Kontinuierliche Integration)?

x
Für Unternehmen:
IT-Nachwuchs kennenlernen!
Jetzt starten

Die Probleme der Integration sind in der Softwareentwicklung bekannt. Der neue Code ist geschrieben und damit ist die Arbeit eigentlich erledigt. Der Quelltext muss jetzt nur noch in das große Vorhaben eingefügt werden und alle hoffen, dass dabei keine Probleme auftreten und alles zusammenpasst. Um die Katastrophe nach einer langen Entwicklungsphase zu vermeiden, entscheiden sich immer mehr Teams für Continuous Integration. Dadurch werden Änderungen täglich in das Projekt eingefügt, im Idealfall sogar mehrmals täglich.

Lesezeit: ca. 3 Min.

Bewerten

Themen auf dieser Seite:

IT-Talents.de ist Deine Plattform für Förderung und Weiterbildung während des IT-Studiums!
Fördermöglichkeiten ansehen


Was bedeutet Continuous Integration (CI)?

Continuous Integration ist eine Technik der agilen Softwareentwicklung. Auf Deutsch würde man es wohl am ehesten kontinuierliche Integration oder permanente Integration nennen. Die in kleineren Schritten vorgenommenen Änderungen werden in der Praxis regelmäßig zusammengeführt. Dabei erfolgt die Einspeisung in ein unterteiltes Code Repository. Die jeweils aktuellste Code-Version wird durch einen automatisierten Build-Prozess übernommen, was zu regelmäßigen Versionskontrollen führt.

Folgendes Szenario könntest Du Dir beispielsweise vorstellen: Für einen Kunden arbeitet das Unternehmen an einer umfangreichen und komplexen Software. Die Entwickler programmieren einzelne Funktionen, während separate Teams Teilaspekte erarbeiten. Nach sehr langer, vielleicht monatelanger Arbeit wird dann alles zusammengefügt. Treten dann Probleme auf, kann es bis zum finalen Testing und dem schlussendlichen Deployment im schlimmsten Fall wieder Monate dauern, bis Fehler aufgespürt und bereinigt und die einzelnen Funktionen, quasi als Code-Schnipsel, wieder zusammengefügt sind.

Arbeitet man für dasselbe Projekt mit Continuous Integration, wird neuer Code sämtlicher Beteiligter nicht erst nach Fertigstellung der Teilbereiche eingebunden, sondern viel früher. Den fertiggestellten Code fügen die Entwickler je nach Bedarf einmal oder mehrmals täglich in die Mainline ein. Dieser Quelltext steht allen am Projekt beteiligten Programmierern offen. Diese Integration fällt dann eher kurz aus, schließlich handelt es sich dabei jeweils um relativ kleine Code-Abschnitte. Der Entwickler braucht also nur wenige Minuten, um sein Teilergebnis dem übrigen Team zugänglich zu machen. Es liegt auf der Hand, dass eventuelle Fehler so schneller aufgespürt und behoben sind.

Welche Vor- und Nachteile hat Continuous Integration (CI)?

Trotz vieler positiver Aspekte zeigt sich im Arbeitsalltag oft, dass Continuous Integration nicht nur Vorteile hat. Sicher kann die langwierige Integrationsphase am Ende eines Projekts abgekürzt werden. Probleme können frühzeitig in Angriff genommen werden. Für eingespielte Teams stellt sich eine Umstellung auf Continuous Integration aber oft als schwierig heraus. Anstatt Zeit zu sparen, kann das Verfahren dann sogar mehr Zeit kosten.

Vorteile

  • Fehlersuche frühzeitig möglich
  • Ständiges Feedback
  • Bei Integration zum Abschluss keine Überforderung
  • Änderungen werden genau aufgezeichnet
  • Aktuelle und funktionierende Version stetig verfügbar
  • Granulares Arbeiten wird gefördert

Nachteile

  • Umstellung vom gewohnten Prozess
  • Zusätzliche Server und Umgebungen werden benötigt
  • Geeignete Test-Abläufe müssen erarbeitet werden
  • Wartezeiten, wenn mehrere Entwickler gleichzeitig integrieren möchten
Auf IT-Talents.de kannst Du Dich mit dem Who-is-Who der IT-Branche vernetzen!
Jetzt Top-Unternehmen anschauen


Welche Tools gibt es für Continuous Integration (CI)?

Continuous Integration lässt sich im Prinzip manuell ohne spezielle Werkzeuge managen. Das ist aber sehr aufwendig und erfordert sehr viel Disziplin. Einfacher ist es, sich die Arbeit mit nützlichen Tools zu erleichtern. Meist helfen diese beim Building und der Versionskontrolle und stellen oft einen Server zur Verfügung.

  • Jenkins: Sehr populäres Java-Programm. Ein Fork von Hudson, wird aber nicht mehr weiterentwickelt.
  • Travis CI: Besonders wegen der reibungslosen Funktion mit GitHub beliebt. Für Open-Source-Projekte kostenlos. Für andere
    Vorhaben kostenpflichtig.
  • Bamboo: Software auf Java Basis. Das normalerweise kostenpflichtige Programm steht für Open-Source-Projekte auch kostenlos
    zur Verfügung.
  • Gitlab CI: Programm zur kontinuierlichen Integration. Funktioniert mit der bekannten Versionsverwaltung.
  • CircleCI: Bietet zwei Versionen für die Continuous Integration an. Entweder in der Cloud des Anbieters oder über einen eigenen
    lokalen Server.
  • CruiseControl: Die freie Software basiert auf Java mit eigenem Dashboard für Entwickler.
  • Codeship: Basiert auf der Container-Technologie. Zwei verschiedene Versionen, Basic und Pro.
  • TeamCity: Kommerzielle Software, die sehr viel Wert auf Interoperabilität mit anderen Werkzeugen legt.

Einsatzgebiete/Fazit

Sehr beliebt ist Continuous Integration vor allem im Umfeld von agiler Softwareentwicklung. Die moderne Herangehensweise hat immer zum Ziel in kleinen Schritten zu arbeiten, den Entwicklungsprozess selbst effektiver zu gestalten um dadurch flexibler auf Änderungen reagieren zu können.

Mittlerweile lässt sich sagen, dass Continuous Integration in der Praxis ein erprobtes Mittel zur Optimierung der Softwareentwicklung ist. Es gibt keinen Grund, Softwareentwicklung ohne einen Continuous-Integration-Prozess zu betreiben. Dies auch dank eines breiten Erfahrungsschatzes sowie einer großen Palette fertiger Werkzeuge. Continuous Integration funktioniert aber nur, wenn alle Team-Mitglieder das System mittragen. Kommunikation ist also ein sehr wichtiger Faktor. Hält man sich gegenseitig auf dem neusten Stand, sind kleine Schwierigkeiten schnell behoben. Das Thema bleibt auch in Zukunft spannend, da aktuelle Entwicklungen in Richtung Continuous Delivery und ALM zeigen.

Aktuelle Aktionen:

IT-Stipendium Februar 2020 NRW

1200€ Förderung für IT-Talente aus NRW


Stipendium über 1200€ - Exklusiv für IT-Talente aus NRW!
Jetzt bewerben!

IT-Stipendium Februar 2020

1200€ Förderung für IT-Talente


Sei dabei und sichere Dir im bundesweiten IT-Stipendium Februar 2020 bis zu 1200€ Förderung.
Jetzt bewerben!

IT-Talents ist ein Netzwerk nur für IT'ler. Auf unserer Plattform kannst Du Dich als registriertes Mitglied mit wenigen Klicks auf die Jobs unserer Partnerunternehmen oder auf IT-Projekte für Studierende bewerben. Darüberhinaus führen wir Wettbewerbe durch und vergeben IT-Stipendien.

Jetzt Mitglied werden.

Schnell-Login für unsere Mitglieder

Tipp: Halte Dein Profil aktuell.

Lass' uns wissen, falls sich etwas Neues bei Dir ergibt.

Tipp: Vervollständige Dein Profil für noch bessere Karrierechancen.

Bist Du Schüler, Student oder bereits berufstätig? Teile uns Deinen aktuellen Status mit, damit wir Dir sinnvolle Aufgaben anbieten können.

Jetzt Status angeben

Wann stehst Du der IT-Branche zur Verfügung?

Bitte Monat und Jahr angeben.

{{ perspectiveForm.availableFrom.$error.dynamic }}

Neuer Versuch

Wo möchtest Du durchstarten?

{{ location.geolocation.name }}×
Bitte mindestens ein Ort angeben.

Als {{currentUser.status.title}} bist Du bereit für:


Lade Beschäftigungsarten

Bitte wähle den Zeitpunkt, Ort und min. eine Beschäftigungsart aus.

You have voted!
Schliessen
Vote for:
stars
Vote
You have not rated!