Continuous Integration und Delivery: Bessere Software schneller ausliefern

By appsoluts 5 Jahren agoNo Comments
Vorteile von Continuous Integration und Continuous Delivery

Die Umsetzung einer neuen Website oder einer App, ist ein komplexes Projekt, an dem viele unterschiedliche Entwickler gleichzeitig arbeiten. Oftmals wird monatelang an den verschiedenen Features gearbeitet. Anschließend werden die Codebausteine zusammengeführt. Ein Vorgehen, bei dem Fehler vorprogrammiert sind.

Zusätzliche Arbeit und Verzögerungen in der Fertigstellung des Projekts sind so gut wie sicher. Um dieses Problem zu vermeiden, greifen einige Teams auf alternative Softwareentwicklungsstrategien, wie Continuous Integration und Continuous Deployment, zurück. Das Ziel: Bessere Software schneller ausliefern.

Was sind Continuous Integration und Delivery?

Um dieses Ziel zu erreichen, ist es notwendig, möglichst viele Prozesse zu automatisieren und in möglichst kleinen Intervallen zu arbeiten. Der eine oder andere wird dieses Vorgehen bereits von ähnlichen Konzepten wie der Lean Startup Methode kennen. Hier wird ebenfalls in möglichst kleinen Schritten gearbeitet und Ideen in einem iterativem Vorgehen so häufig wie möglich getestet. Lediglich der Aspekt der Automatisierung ist bei dieser Methode nicht gegeben.

Doch zurück zur Softwareentwicklung. Schauen wir uns den Prozess der Softwareentwicklung schrittweise an. Dieser beginnt in der Regel mit einer Codeänderung bzw. dem Testen dieses Codes. Nutzt eine Team Continuous Integration (CI) so wird jede Änderung, die vom Entwicklerteam durchgeführt wird, umgehend getestet. Ein entscheidender Bestandteil sind hierbei automatisierte Tests.

Jedes Mal, wenn eine Änderung am Code vorgenommen wird, wird diese Änderung beispielsweise an einen Server geschickt, der das Testen des Codes übernimmt und so in kurzer Zeit Ergebnisse liefert, ohne dass der Code manuell durch einen Mitarbeiter geprüft werden muss.

Nun gibt es zwei Optionen: Der Test ist bestanden und es können weitere Änderungen durchgeführt werden oder der Test scheitert und die Fehler im Code müssen behoben werden. Auf diese Weise können Fehler früh entdeckt werden.

Allerdings ist es mit dem Entwickeln und Testen der Software noch nicht getan. Der geänderte Code muss nun veröffentlicht werden. Wird auch dieser Schritt automatisiert, so spricht man von Continuous Delivery (CD) bzw. von Continuous Deployment.

Somit gibt es drei Schritte, die aufeinander aufbauen:

  • Continuous Integration: Codeänderungen werden umgehend integriert und getestet.
  • Continuous Delivery: Die Software wird so entwickelt, dass sie zu jeder Zeit veröffentlicht werden kann. Die Freigabe der Änderungen erfolgt hierbei manuell.
  • Continuous Deployment: Dies ist eine Erweiterung von Continuous Delivery und bedeutet, dass die Änderungen automatisiert veröffentlicht werden.  

Eine ausführlichere Erklärung der Themen Continuous Integration und Deployment finden Sie auch in diesem Video: https://youtu.be/YGYoYSR-d98

Sollte ich Continuous Integration und Delivery nutzen?

Sowohl bei der Auswahl einer passenden Agentur als auch beim Umsetzen eigener Softwareprojekte stellt sich nun die Frage, ob Sie auf das Anwenden von Continuous Integration und Delivery achten sollten. Im Folgenden findest du die wichtigsten Vor- und Nachteile dieser Prozesse.

Das sind die Vorteile von Continuous Integration und Delivery:

  • Weniger Fehler: Ein entscheidender Vorteil ist es, dass der Code weniger anfällig für Fehler ist. Das kontinuierliche Testen ermöglicht es, Fehler frühzeitig zu erkennen und zu beheben.
  • Schnellere Entwicklung: Die Softwareentwicklung geht schneller vorran. Fertige Features können direkt veröffentlicht werden, ohne dass man monatelang auf das nächste Release warten muss.
  • Schnelleres Testen: Durch die Möglichkeit Features umgehend zu veröffentlichen, können Ideen schneller getestet werden. So kann die weitere Softwareentwicklung davon abhängig gemacht werden, wie ein Feature bei den Nutzern ankommt.

Das sind die Nachteile von Continuous Integration und Delivery:

  • Anfängliche Entwicklungskosten: Die anfänglichen Entwicklungskosten und -aufwand sind höher, da zum Beispiel die automatisierten Tests für das jeweilige Softwareprojekt zunächst entwickelt werden müssen. Langfristig gesehen ist der Prozess jedoch in der Regel nachhaltiger, da weniger Fehler auftreten und nicht mehr manuell getestet werden muss.
  • Fachwissen und Unternehmenskultur: Das Team und die Unternehmskultur muss auf diese Prozesse ausgelegt sein. Zum einen benötigen die Mitarbeiter das notwendige Wissen, um die Prozesse umsetzen zu können. Zum anderen muss die Unternehmenskultur diese testorientiere Vorgehensweise ermöglichen.

Zusammenfassend lässt sich sagen, dass der initiale Aufwand beim Einsatz von Continuous Integration und Delivery höher ist. Allerdings zahlt sich dies in der Regel langfristig aus. Vor allem für Unternehmen, die umfangreiche Softwarprojekte haben und häufig Software Updates ausführen, ist diese Vorgehensweise empfehlenswert.

Categories:
  Allgemein, Continuous Delivery
this post was shared 0 times
 100

Leave a Reply

Your email address will not be published.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.