Erfassen Sie Ihre Fortschritte
Trailhead-Startseite
Trailhead-Startseite

Erfahren Sie mehr über Continuous Integration, Continuous Deployment und Continuous Delivery

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:

  • Erläutern und Vergleichen von Continuous Integration, Continuous Deployment und Continuous Delivery
  • Nennen einiger Vorteile von Continuous Delivery

Voraussetzungen

Für dieses Modul benötigen Sie Folgendes:

  • Ein kostenloses Heroku-Konto
  • Ein kostenloses GitHub-Konto

Wenn Sie das Modul "Heroku Enterprise – Grundlagen" noch nicht durchgearbeitet haben, sollten Sie dies unbedingt tun, ehe Sie mit diesem Modul starten.

Moderne Entwicklungsmethoden ermöglichen Teams, die technisch ausgereiftesten und ansprechendsten Anwendungen auf dem Markt zu entwickeln und bereitzustellen. Zu diesen Methoden gehören Continuous Integration, Continuous Deployment und Continuous Delivery, die kurze Release-Zyklen, Automatisierung und eine direkte Verbindung mit dem Quellcode-Repository ermöglichen. Diese Methoden sind darauf ausgelegt, Teams in die Lage zu versetzen, schrittweise erfolgende Codeänderungen schnell und sicher in die Produktion zu überführen. Wenn diese Methoden richtig umgesetzt werden, treten Fehler und Probleme früher im Anwendungslebenszyklus auf, was zu schnelleren Produktfreigaben mit höherer Qualität führt.

Nun wollen wir uns eingehender mit Continuous Integration, Continuous Delivery und Continuous Deployment beschäftigen. Obwohl sie sich ähnlich anhören, achten Sie auf die Unterschiede zwischen den einzelnen Prozessen.

Continuous Integration

Beim Arbeiten mit Continuous Integration wird ein Produkt so entwickelt, dass jede Codeänderung von beliebigen Entwicklern bei jedem Commit (kontinuierlich) einbezogen und integriert wird. Ein automatisierter Build überprüft dann jedes Einchecken und lässt Teams Probleme frühzeitig erkennen.

Bei komplexen Produkten können scheinbar einfache und eigenständige Änderungen unbeabsichtigte Folgen haben. Wenn mehrere Entwickler parallel an mehreren isolierten Code-Branches arbeiten, kann das Zusammenführen von Änderungen an einem gemeinsamen Master-Branch zu unvorhersehbaren Ergebnissen führen. Unvorhersehbare Ergebnisse führen oft zu mehrfachen Runden von Regressionstests und Fehlerkorrekturen. Continuous Integration (CI) ist ein Bestandteil des Continuous Delivery-Prozesses, der es Entwicklern ermöglicht, ihre Aktualisierungen regelmäßig in den Master-Branch zu integrieren. CI sorgt dafür, dass automatisierte Tests vor und nach jeder Änderung im Master-Branch durchgeführt werden, um sicherzustellen, dass keine Fehler aufgetreten sind.

Continuous Delivery

Continuous Delivery stellt sicher, dass Code schnell und sicher in der Produktion bereitgestellt werden kann, indem jede Änderung manuell per Push in eine produktionsähnliche Umgebung übertragen wird. Da jede Änderung automatisch an eine Staging-Umgebung übermittelt wird, können Sie die Anwendung zum richtigen Zeitpunkt per Knopfdruck in der Produktion bereitstellen.

Der zusätzliche Schritt des Übertragens des Codes per Push in eine Staging-Umgebung unterscheidet Continuous Integration von Continuous Delivery. Wenn Sie mithilfe von CI einen grünen (erfolgreichen) Build erstellt haben, bedeutet dies nicht, dass Ihr Code produktionsreif ist, bis er per Push in eine Staging-Umgebung verschoben wurde, die der endgültigen Produktionsumgebung entspricht.

Continuous Deployment

Continuous Deployment ist der nächste Schritt bei Continuous Delivery. Bei Continuous Deployment wird jede Änderung, die die automatisierten Tests besteht, automatisch in der Produktion bereitgestellt. Die meisten Unternehmen, die nicht an behördliche oder andere Auflagen gebunden sind, sollten Continuous Deployment als Ziel verfolgen.

Wenngleich nicht jedes Unternehmen Continuous Deployment umsetzen kann, können die meisten Unternehmen jedoch Continuous Delivery implementieren. Continuous Delivery gibt Ihnen die Gewissheit, dass Ihre Änderungen bei der Veröffentlichung Ihres Produkts einen Mehrwert für Ihre Kunden darstellen und dass Sie diesen Knopf jederzeit drücken können, sobald das Unternehmen bereit dafür ist.