Continuous Integration (CI = Kontinuierliche Integration) beschreibt den Prozess des regelmäßigen, vollständigen Neubildens und Testens einer Anwendung. Dieser Prozess sollte automatisiert und im Idealfall ohne manuelle Interaktion durch eines oder mehrerer Teammitglieder ablaufen. Denn nur ohne externe Abhängigkeit kann das System sinnvoll eingesetzt werden.

Continuous Integration ist mittlerweile ein wichtiger Teil in der agilen Softwareentwicklung. Wer CI einsetzt muss darauf achten, dass alle Team-Mitglieder mindestens einmal täglich Ihren Code einchecken, damit dieser gebaut und getestet werden kann. Vor allem die automatisierten Tests sind ein wichtiger Bestandteil des CI Prozesses. Sie geben dem Entwickler unmittelbar Feedback zur Qualität und Funktionsweise seines eingecheckten Codes. Er erhält dadurch die Möglichkeit frühzeitig fehlerhafte Komponenten oder Integrationsprobleme zu entdecken und zu beheben.

Warum man Continuous Integration einsetzt

Continuous Integration ist ein fortlaufender Prozess, der aus mehreren Komponenten und Aufbaustufen besteht. Durch die automatisierten Builds und nachfolgenden Tests steigert er die Produktivität des Entwicklerteams und trägt somit seinen Teil dazu bei das Projektziel zu erreichen. Hier einige konkrete Vorteile durch Continuous Integration:

  • Deployment wird getestet
  • Abhängigkeiten zur Systemumgebung werden getestet
  • Anwendung wird getestet (phpunit, selenium, jmeter, etc.)
  • Projekt Management wird verbessert (schnelles erkennen bei Problemen in der Entwicklung)
  • Sourcecode Qualität wird verbessert (messbare und visualisierte Qualität)

Vor allem im Open Source Bereich gibt es viele CI Build Server die man einsetzen kann. Unser persönlicher Favorit ist Jenkins. Leider ist es mit der Installation einer solchen Software allein nicht getan. Denn die CI Integration / Betriebsführung ist der schwere Teil an der Sache und wird exponential gesteigert durch:

  • die Anzahl der Komponenten
  • die Anzahl der Fehler
  • den Zeitpunkt der letzten Integration

Das bedeutet, dass folgendes vorhanden sein muss: ein voll automatisiertes Deployment, der Einsatz von Versionierung, Tests und eine Testumgebung.

Die Continuous Integration Pyramide

In der nachfolgenden Continuous Integration Pyramide sieht man sehr schön die einzelnen Stufen des Continuous Integration Prozesses. Anhand derer sollte man bereits erkennen können, dass die Einführung von Continuous Integration nicht einfach von heute auf morgen passieren kann. Die Pyramide soll deutlich machen, dass man frühzeitig mit Continuous Integration beginnen sollte.

Der Einsatz von CI ist immer zu empfehlen, vor allem in besonders langen bzw. besonders großen Projekten.

Continuous Integration Pyramide

Die Stufen der Continuous Integration Pyramide

Die CI Pyramide listet die einzelnen Stufen des Continuous Integration Prozesses auf, die je nach Projektlaufzeit bzw. Projektgröße weiter nach oben wachsen / umgesetzt werden sollten.

  • Stufe 1: Einsatz von Versionierung für den Sourcecode (z.B. Git, SVN, etc.)
  • Stufe 2: Projektmanagement Tool für die Aufgabenverwaltung in Verbindung mit Sourcecode (z.B. Redmine, etc.)
  • Stufe 3: Projektdeployment über CI Server (z.B. Jenkins, etc.)
  • Stufe 4: Logging und Monitoring für Anwendung / Systemumgebung (z.B. Logstash, Zabbix, etc.)
  • Stufe 5: Erweitertes Reporting und automatisierte Tests (z.B. Sonar, Checkmarx, etc.)

Fazit

Aufgrund unserer langjährigen Erfahrung im Bereich agiles Projektmanagement / agile Softwareentwicklung wissen wir, dass sowohl kleine als auch große Projekte von Continuous Integration profitieren. Wer professionell und zeitgemäß entwickeln will und dies nach außen seinen Kunden verkauft, kommt um Continuous Integration nicht herum. Bei AlphaNodes wird Continuous Integration seit Jahren eingesetzt. Wir sind überzeugte Anwender von Open Source CI-Werkzeugen. Gerne sind wir bei der Integration von Continuous Integration behilflich (Kontakt).

Aktualisiert: