Startseite

Themen

Continuous Delivery

Was ist Continuous Delivery?
Erkunden Sie die Continuous-Delivery-Lösung von IBM Zu KI-Updates anmelden
Illustration mit Collage aus Piktogrammen von Ausrüstung, Roboterarm, Mobiltelefon
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
The Total Economic Impact™ von IBM Robotic Process Automation

Sehen Sie sich eine Kosten-Nutzen-Analyse von IBM Robotic Process Automation (RPA) an.

Ähnliche Inhalte Jetzt für den Observability-Leitfaden registrieren
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.
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).
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.

Für mehr Infos zu DevOps sehen Sie sich das Video an:

Weiterführende Lösungen
IBM Cloud Continuous Delivery

IBM Continuous Delivery ist ein Cloud-Service, der Toolchains bereitstellt, Builds und Tests automatisiert und die Qualität anhand von Analysen kontrolliert.

IBM Cloud Continuous Delivery kennenlernen
IBM UrbanCode

Die Produkte aus der Reihe IBM UrbanCode helfen Ihnen dabei, Software schneller auf den Markt zu bringen, indem sie die Anwendungsbereitstellung beschleunigen und manuelle Prozesse reduzieren.

Mehr zu IBM UrbanCode
Tekton auf IBM Cloud

Erstellen Sie Kubernetes-native CI/CD-Pipelines mit maximaler Geschwindigkeit und Flexibilität.

Tekton auf IBM Cloud kennenlernen
Ressourcen Was ist DevOps?

DevOps beschleunigt die Bereitstellung höherwertiger Software, weil es die Arbeit von Softwareentwicklungs- und IT-Betriebsteams kombiniert und automatisiert.

Was ist Continuous Integration?

Continuous Integration ist ein iterativer Entwicklungsprozess, bei dem Entwickler mindestens einmal täglich neuen Code in die Codebasis integrieren.

Was sind CI/CD und die CI/CD-Pipeline?

Ein praktischer Leitfaden für die CI/CD (Continuous Integration/Continuous Delivery)-Pipeline.

Machen Sie den nächsten Schritt

Sind Sie bereit für DevOps? Um Software und Services mit der vom Markt geforderten Geschwindigkeit bereitzustellen, müssen Teams schnell iterieren und experimentieren, regelmäßig neue Versionen bereitstellen und sich von Feedback und Daten leiten lassen. Die erfolgreichsten Cloud-Entwicklungsteams setzen auf moderne DevOps-Kultur und -Praktiken sowie cloudnative Architekturen und stellen Toolchains aus erstklassigen Tools zusammen, um ihre Produktivität zu steigern.

DevOps-Lösungen erkunden Kostenfrei ausprobieren