continuous-integration-frau-computer-code

Was versteht man unter Continuous Integration?

Ein Beispielszenario

Stellen Sie sich folgendes Szenario vor: Fünf Personen bauen unabhängig voneinander an einem Haus. Als sie ihre Teilgebiete zusammenführen möchten, merken sie, dass die Bereiche, die sie gebaut haben, nicht zu den Bereichen der anderen passen. 

Die Suche beginnt: Wo steckt der Fehler oder die Fehler? Muss sogar noch einmal jeder von vorne anfangen? Sind die Fehler erst gefunden, muss abermals viel Zeit investiert werden, bis diese behoben sind. Und je mehr Personen in ein Projekt involviert sind, desto komplexer und zeitintensiver wird es.

Kurze Definition

Genau diesem Problem soll Continuous Integration – wörtlich übersetzt “kontinuierliche Integration” – entgegenwirken.  CI ist eine agile (flexible) Arbeitsmethode, die insbesondere Entwicklung und IT für sich nutzen.

Und wie funktioniert Continuous Integration?

In der IT funktioniert Continuous Integration wie folgt: Statt unabhängig voneinander ihre Bereiche zu programmieren, diese erst nach langer Zeit zusammen zu bringen und am Ende festzustellen, dass sie sich nicht ineinander fügen, speisen Entwickler ihre Codes permanent – in kurzen Zeitabständen – in eine Versionsverwaltung (Repository) ein. 

Dazu lädt sich der jeweilige Entwickler stets die aktuelle Version des gesamten Codes herunter und fügt seinen Code ein. Dann pusht er die Änderung in die Verwaltung. Durchaus kann es vorkommen, dass mehrere Entwickler gleichzeitig Änderungen einspeisen.

In der Verwaltung werden die Änderungen laufend – kontinuierlich – automatisch getestet und abgeglichen.

Bemerkt das System fehlerhafte Elemente, wird das Team darüber unterrichtet, wo der Fehler liegt und wer diesen verursacht hat.

Ein Teil der CI funktioniert also manuell und ein Teil automatisch.

Ein Kreislauf entsteht – mit kurzen Zyklen

  1. Code wird in das System gespeist – ein Build entsteht.
  2. Der Code wird automatisch getestet.
    1. Passt alles? Der  nächste Code kann eingespeist werden (Schritt 1).
    2. Passt etwas nicht? Der Code muss angepasst werden (Schritt 3).
  3. Der Code muss angepasst werden.
    1. Der angepasste Code wird getestet (Schritt 2)

Vorteile und Nachteile der Continuous Integration

VorteileNachteile
ZeitersparnisGefahr von übermäßigem Finger-Pointing
Häufiges FeedbackVertrauen in automatisiertes Testen ggf. nicht sehr groß
Fehler werden schnell gefundenEinarbeitung in neue Arbeitsprozesse
Regelmäßige Check-insWartezeiten bei überlappender Integration
Qualitativ hochwertige Software
Dokumentation von Änderungen
Aktuelle Version vorhanden
Wegfall von komplexen Integrationsproblemen aka “Integration Hell”
Verbesserte Zusammenarbeit

8 Tipps zur Continuous Integration – was braucht es für eine erfolgreiche Umsetzung?

  1. Basics: Zu den Basics gehören die Automatisierung von Build und Test, das Verwenden einer gemeinsamen Versionsverwaltung sowie natürlich die passende Hardware bzw. Server.
  2. Täglicher Check-in: Code sollte mindestens täglich, besser noch mehrmals täglich veröffentlicht werden. Code nur 1x in der Woche oder im Monat zu pushen entspricht nicht mehr dem Prinzip von “kontinuierlich” und lässt sich schon als “verzögert” bezeichnen.
  3. Lokal testen: Um mögliche Fehler vor dem Check-in auszuschließen, sollte der Code schon vor dem Push ins Repository lokal getestet werden.
  4. Fehlerbewusstsein: Das lokale wie automatische Testen sollte von demjenigen, der den Code ins System pusht, just in time mitverfolgt werden. So werden eigene Fehler sofort bemerkt. 
  5. Zeitnah fixen: Fehler sollten binnen 10 Minuten repariert werden, um die Pipeline nicht zu blockieren.
  6. Verantwortlichkeiten: Eigentlich selbstverständlich, aber bei Continuous klar geregelt: Derjenige, dessen Code fehlerhaft ist, ist verantwortlich, diesen zu fixen.
  7. Priorisierung: Das Fixen von Fehlern hat Vorrang vor allen anderen Tätigkeiten.
  8. Kurze Testzyklen: Die Testzyklen sollten so kurz wie möglich gehalten werden, um die Häufigkeit der Check-ins zu erhöhen.

Was ist der Unterschied zwischen Continuous Integration und Continuous Delivery?

Die Methode Continuous Delivery geht noch weiter als Continuous Integration. Zwar wird auch hier manuell Code eingespeist und automatisch ein Build erstellt und dieser automatisch getestet. Da hören aber die Gemeinsamkeiten auf. 

Denn der restliche Prozess bei CI läuft manuell ab, bei CD hingegen automatisch: Integration Test und Production werden automatisch abgewickelt.

5 mögliche CI / CD Tools

Jenkins

Jenkins dürfte wohl das bekannteste CI Tool sein. Basis für das Programm ist Java. Es wird OpenSource zur Verfügung gestellt und von der Community kontinuierlich weiterentwickelt. Jenkins ist für den lokalen Gebrauch gedacht. Es kann nach eigenen Aussagen die Arbeit auf mehrere Maschinen verteilen.

Das Tool ist kostenlos.

GitLab CI

Das Tool von GitLab kann nicht nur Continuous Integration, sondern auch Continuous Delivery und Continuous Deployment. Es ist sowohl möglich, das Tool über einen eigenen Host wie auch über einen Cloud Host (Google Cloud, Azure, Amazon Web Host etc.) zu nutzen. Die Konfiguration findet über eine YAML Datei statt.

Bamboo

Bamboo ist ein Continuous-Integration-Tool von Atlassian. Auch Bamboo basiert auf Java. Wie GitLab deckt Bamboo nicht nur CI, sondern auch Continuous Delivery und Continuous Deployment ab. Es kann über die Cloud, aber auch mit eigenem Host verwendet werden und ist plattformunabhängig. Andere Atlassian Programme können selbstredend leicht integriert werden.

AWS CodePipeline

AWS deckt sowohl Continuous Integration wie Continuous Delivery ab. Es kann ausschließlich über die Cloud gehostet werden. Über vorhandene Plugins können Tools anderer Unternehmen integriert werden. Es können aber auch benutzerdefinierte Plugins implementiert werden. Selbstverständlich ist die Integration anderer AWS Produkte problemlos möglich.

CircleCI

CircleCI ist FedRAMP-zertifiziert und SOC 2 Typ II-konform und lässt sich mit GitHub verbinden. Auch hier findet die Konfiguration über eine YAML Datei statt. CircleCI kann über die Cloud oder selbst gehostet werden.

Wir beraten Ihr Unternehmen gern!

Kontaktieren Sie uns jetzt kostenfrei und unverbindlich - unser Expertenteam hilft Ihnen jederzeit gern und kompetent weiter.

Sie erreichen uns telefonisch Montag – Freitag von 08:30 Uhr bis 17:00 Uhr oder 24/7 bequem per Mail oder über unser Kontaktformular.

Zum Kontaktformular




Frank Bollen
Über den Verfasser

Frank Bollen
Leitung Marketing bei EXTRA Computer GmbH

Frank Bollen, Leiter der Marketingabteilung, verfügt über langjährige Erfahrung im Bereich Business IT und Industrie IT. Mit einem einzigartigen Mix aus kreativem Marketinggeschick und technischem Verständnis prägt er die strategische Ausrichtung seines Teams. Bollens Leidenschaft an innovativen Lösungen zeigt sich nicht nur in seiner beruflichen Laufbahn, sondern auch in seinen Beiträgen und Veröffentlichungen wider.