Was ist Continuous Delivery?

Zwei Computerprogrammierer arbeiten zusammen

Was ist Continuous Delivery?

Mit Continuous Delivery können Entwicklerteams den Prozess automatisieren, der den Weg einer Software durch den Softwareentwicklungslebenszyklus vorgibt.

Continuous Delivery kann bei der Bereitstellung einer integrierten Toolbox viele Vorteile bieten:

  • Verkürzung der Bereitstellungszeit durch kontinuierliches Testen und Entwickeln

  • Senken der mit einer traditionellen Softwareentwicklung verbundenen Kosten

  • Skalierung der Softwareentwicklung basierend auf der Projektgröße

  • Automatisches Bereitstellen des Codes in jeder Phase des Entwicklungszyklus

Best Practices für Continuous Delivery

Bei der Verwendung von Continuous Delivery sollten Sie die folgenden Best Practices in Betracht ziehen:

  • Machen Sie jede Änderung freigabefähig: Wenn Sie Continuous Delivery verwenden, um jede Änderung freigabefähig zu machen, müssen darin Benutzerdokumentation, Runbooks und Informationen zu den Änderungen zu Überwachungszwecken enthalten sein.

  • Setzen Sie auf eine stammbasierte Entwicklung: Continuous Delivery baut auf kontinuierlicher Integration auf. Vermeiden Sie so weit wie möglich Verzweigungen, die die Integration verzögern, damit jede Änderung gemeinsam erstellt, getestet und bereitgestellt werden kann, um schnellstmöglich Feedback zu erhalten.

  • Bereitstellung über eine automatisierte Pipeline: Um die kontinuierliche Bereitstellung erfolgreich zu implementieren, benötigen Sie eine gut strukturierte, automatisierte Delivery Pipeline, um sicherzustellen, dass alle Code-Freigaben auf konsistente Weise in Ihre Test- und Produktionsumgebungen gelangen.

  • So viel wie möglich automatisieren: Bei der kontinuierlichen Bereitstellung müssen Sie so viele Prozesse wie möglich in Ihrem Softwareentwicklungszyklus automatisieren. Diese Automatisierung schafft eine gute, zuverlässige Delivery Pipeline, nicht nur für Code-Builds und Bereitstellungen, sondern auch für die Erstellung neuer Entwicklungsumgebungen.

  • Das Ziel sind null Ausfallzeiten: Um die Anwendungsverfügbarkeit bei häufigen, kontinuierlichen Aktualisierungen sicherzustellen, müssen Sie eine neue Funktion zunächst validieren, bevor Sie sie in der öffentlichen aktiven Anwendungsinstanz bereitstellen.

  • Veröffentlichung nach Testgranularität: Wenn zwei Teile eines Systems zusammen getestet werden müssen, sollten sie auch zusammen veröffentlicht werden. So haben Sie Gewissheit, dass die Teile Ihres Systems kompatibel sind. Release-Automatisierungstools sind gut für die Koordination einer solchen Bereitstellung geeignet. Alternativ können Sie die Teile vollständig entkoppeln.
Luftaufnahme einer Autobahn

Bleiben Sie in der Cloud

Abonnieren Sie den wöchentlichen Think-Newsletter und erhalten Sie Tipps von Experten zur Optimierung von Multi-Cloud-Einstellungen in Zeiten von KI.

Continuous Pipeline/Framework

Um die Vorteile von Continuous Delivery zu nutzen, benötigen Sie weitere Elemente des Continuous-Frameworks, z. B. Continuous Exploration, Continuous Integration, Continuous Deployment und Release on demand.

Wenn Sie Continuous-Delivery-Pipelinephasen verwenden, sollten Sie diese in separate Aufträge unterteilen, bei denen es sich um Ausführungseinheiten innerhalb einer Phase handelt:

  • Build-Jobs: Kompilieren Sie Ihr Projekt im Build-Job, um sich auf die Bereitstellung vorzubereiten, wobei Sie Artefakte generieren, die Sie an ein Build-Archivverzeichnis senden können.

  • Deploy-Jobs: Laden Sie Ihr Projekt als App in Ihre Continuous-Delivery-Pipeline hoch, auf die Sie über eine URL zugreifen können. Nachdem Sie Ihr Projekt bereitgestellt haben, sehen Sie es auf Ihrem Dashboard.

  • Testjobs: Passen Sie Test-Jobs an und fügen Sie sie basierend auf Ihrer Suite von Unit-Tests oder funktionalen Tests mit Test-Services von anderen Anbietern vor oder nach Ihren Build- und Deployment-Jobs ein.

Die Continuous-Delivery-Pipeline kann Entwicklungsteams helfen:

  • Automatisieren Sie Builds, Komponententests und Bereitstellungen.

  • Sie können Code mithilfe von Git Repositories, Problemverfolgung und Ihrer webbasierten IDE (integrierte Entwicklungsumgebung) bearbeiten und veröffentlichen.

  • Sie können eine integrierte DevOps-Toolbox, um Ihre Apps mit Ihren Services, Open-Source-Tools und Tools von anderen Anbietern erstellen, bereitstellen und verwalten.

  • Bearbeiten Sie Ihren Code von jedem Ort aus, an dem Sie Ihre IDE zum Erstellen, Bearbeiten, Ausführen, Debuggen und Abschließen von Versionskontrollaufgaben verwenden möchten.

  • Nutzen Sie Ihre automatisierte Pipeline, um Builds, Tests und Bereitstellungen kontinuierlich und wiederholbar bereitzustellen.

  • Verbessern Sie die Qualität, indem Sie den Build-Status, die Ergebnisse von Sicherheitsscans, die Codeabdeckung und die Testabdeckung verstehen. So können Sie beurteilen, ob Sie Ihre App in die nächste Umgebung befördern sollen (durch Policy-Gates, die die Qualität vor der Beförderung automatisch sicherstellen).
IBM DevOps

Was ist DevOps?

Andrea Crawford erklärt, was DevOps ist, welchen Wert DevOps hat und wie DevOps-Praktiken und -Tools Ihnen dabei helfen, Ihre Anwendungen durch die gesamte Delivery Pipeline der Softwareentwicklung von der Idee bis zur Produktion zu bringen. Das von führenden IBM Experten geleitete Programm soll Führungskräften das nötige Wissen vermitteln, um Prioritäten für KI-Investitionen zu setzen, die zu mehr Wachstum führen.

Kontinuierliche Bereitstellung versus Continuous Delivery

Kontinuierliche Bereitstellung kann Teil einer Continuous-Delivery-Pipeline sein. Bei Continuous Delivery handelt es sich um das automatisierte Verschieben von Code durch den Entwicklungszyklus (manchmal auch Delivery Lifecycle genannt). Die kontinuierliche Bereitstellung ist das automatisierte Verschieben dieses Codes in die Produktion, sobald er die erforderlichen automatisierten Tests bestanden hat.

Ob Sie Continuous Deployment in Ihre Deployment Pipeline aufnehmen, hängt von Ihren Geschäftsanforderung ab. Wenn es gemäß den Geschäftsanforderungen erforderlich ist, dass das Bereitstellungsteam neue oder aktualisierte Software wiederholt, zuverlässig oder so schnell wie möglich für die Produktion freigibt, oder wenn die Lösung mehrere Abhängigkeiten hat, dann werden Sie sehr wahrscheinlich von einer kontinuierlichen Bereitstellung profitieren.

Weitere Informationen zu den Unterschieden zwischen Continuous Deployment und Continuous Delivery finden Sie in diesem Video:

Continuous Delivery Tools

Mit einem Continuous-Delivery-Tool können Sie Open-Source-Tools für die Entwicklung, Bereitstellung und Verwaltung Ihrer Anwendungen verwenden. Durch die Integration von Toolsets können Sie wiederholbare und einfach zu verwaltende Aufgaben erstellen – nicht nur für Ihr Entwicklungsteam, sondern auch für Ihr Operations Team.

Ihre Toolbox kann Ihre aktuellen Cloud-Services, Open-Source- und Drittanbieter-Tools enthalten. Sie sollten aber auch ein Continuous-Delivery-Tool in Betracht ziehen, das Folgendes umfasst:

  • Wiederholt anwendbare Vorlagen für die Automatisierung von Builds und Bereitstellungen. Was für eine Ihrer Apps funktioniert, sollte auch für andere funktionieren. Lassen Sie nicht zu, dass jedes Team für sich selbst mit der Konfiguration zu kämpfen hat.

  • Eine Pipeline, mit der Sie automatisch Builds beim Übernehmen von Änderungen erstellen, Deployments in Ihrer Cloud vornehmen, Builds und Deployments in Ihre Toolchains integrieren und Deployments in Ihrer Toolchain verwalten können.

  • Tools für elektronisches Teamwork, Planung, Quellcodeverwaltung und Tests.

  • Instrumentierung, die aufzeigt, wo Ihr Team rasch vorankommt und wo die Dinge ins Stocken geraten. Dies kann als Leitfaden, um „kontinuierlicher“ zu werden, dienen.

Jenkins, Concourse CI, Spinnaker, Travis CI, GoCD und GitLab CI sind Open Source Continuous Delivery Tools, die Sie einsetzen können, wenn Sie eine starke Continuous Delivery Pipeline benötigen.

Agile und DevOps

Agile kontinuierliche Bereitstellung (Continuous Delivery)

Bisher haben Sie Software nur einmal freigegeben und sie dann aktualisiert. In diesem Fall werden Kunden nur am Anfang und am Ende befragt, um zu sehen, ob die Software seinen Bedürfnissen entspricht.

Bei der agilen Methode wird Software in kurzen Iterationen nach einem kontinuierlichen Zeitplan zur Verfügung gestellt. Aktuell wird beim agilen Continuous-Delivery-Prozess Code für den Kunden freigegeben, sobald jede definierte Funktion verfügbar ist. Agile Entwicklung und Continuous Delivery sind der Schlüssel dazu, dass Funktionen dem Kunden zur Verfügung stehen, sobald sie produktionsreif sind. Das Ziel ist es, dass jede Funktion veröffentlicht werden kann, sobald sie die Pipeline verlässt.

DevOps und Continuous Delivery

In den letzten Jahrzehnten hat sich die Softwareentwicklung erheblich verändert, da man vom standardmäßigen Wasserfallansatz zur effizienteren agilen Methodik übergegangen ist. Für solche Trends sollten Sie zu einer Vorgehensweise wechseln, die sich auf Agilität, DevOps und kontinuierliche Bereitstellung konzentriert. Als Teil einer Continuous-Delivery-Pipeline ermöglichen diese zielgerichteten Prozesse zuverlässigere, qualitativ hochwertige Software-Releases und Updates.

Wenn Sie durch agile Entwicklung schnellere, kleinere Software-Releases erstellen, können Sie sich stärker auf die einzelnen Phasen der Softwareentwicklung konzentrieren. Gleichzeitig konzentriert sich DevOps auf das Gesamtbild und den kulturellen Wandel. Bei diesem Ansatz werden Entwicklung und Betrieb eng zu einem Team zusammengeführt. Dieses Team arbeitet am gesamten Lebenszyklus der Softwareentwicklung, von der Programmierung über das Testen bis hin zur Bereitstellung und dem Support.

Weiterführende Lösungen
IBM DevOps Accelerate

Automatisieren Sie die Software-Bereitstellung für jede Anwendung On-Premises, in der Cloud oder auf dem Mainframe.

DevOps Accelerate erkunden
DevOps-Lösungen

Verwenden Sie DevOps-Software und -Tools, um cloudnative Anwendungen für mehrere Geräte und Umgebungen zu erstellen, bereitzustellen und zu verwalten.

DevOps-Lösungen erkunden
Cloud-Beratungsleistungen 

Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.

Cloud-Services
Machen Sie den nächsten Schritt

Erschließen Sie das Potenzial von DevOps, um sichere cloudnative Anwendungen mit kontinuierlicher Integration und Bereitstellung zu entwickeln, zu testen und bereitzustellen.

DevOps-Lösungen erkunden DevOps in Aktion entdecken