Kontinuierliche Bereitstellung: Automatisieren der Implementierungs-Pipeline
White PaperDeployment Automation
Inhaltsverzeichnis Seite
Der Nutzen einer kontinuierlichen Bereitstellung . . . . . . . . . . . . . . . . . . . . . . . . 1
Die Lücke zwischen Build und Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . 3
Automatisieren und Integrieren der Implementierungs-Pipeline . . . . . . . . . . . 4
Integrieren der gesamten Toolchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Modellieren, Verwalten und Visualisieren der Implementierungs-Pipeline . . . 6
Anwendungszentrierte Implementierungsautomatisierung . . . . . . . . . . . . . . . . 7
Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1www.microfocus.com
Der Nutzen einer kontinuierlichen Bereitstellung
Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung, bei
der die Software so erstellt werden muss, dass sie jederzeit freigegeben und auf
Produktionssystemen verwendet werden kann . Um dieser Anforderung gerecht zu
werden, ist eine kontinuierliche Integration der Änderungen an der Software im Zuge der
Entwicklung, der Erstellung, der Tests und der Implementierung der ausführbaren Dateien
erforderlich, sodass die Software auf Produktionssystemen eingesetzt werden kann, sobald
sie vom Unternehmen benötigt wird . Angesichts der Praxis der Softwarebereitstellung in den
IT-Umgebungen heutiger Unternehmen bedeutet dies eine enorme Veränderung .
Warum ist eine kontinuierliche Bereitstellung für die Unternehmens-IT wichtig? Weil sie
es Unternehmen ermöglicht, schnell auf die Erwartungen ihrer Kunden zu reagieren und
gleichzeitig bei geringeren Kosten die Qualität ihrer Produkte zu steigern .
_______________________________________________________________
Abb. 1
Warum eine kontinuierlichen Bereitstellung sinnvoll ist
Eine kontinuierliche Bereitstellung ermöglicht es Unternehmen, schnell auf die Erwartungen ihrer Kunden zu reagieren und gleichzeitig bei geringeren Kosten die Qualität ihrer Produkte zu steigern.
2
White PaperKontinuierliche Bereitstellung: Automatisieren der Implementierungs-Pipeline
Das Ziel der kontinuierlichen Bereitstellung ist es, Möglichkeiten ausfindig zu machen,
hochwertige, nützliche Software auf effiziente, schnelle und zuverlässige Weise
bereitzustellen . Die kontinuierliche Bereitstellung zielt auf kurze Markteinführungszeiten
und einen schnellen Weg von der Konzeption zur Einführung ab, um Wettbewerbern einen
Schritt voraus zu sein . Diese geringen Markteinführungszeiten führen zu einem schnelleren
Feedback-Kreislauf und einer kürzeren Time-to-value . Ein schnellerer Feedback-Kreislauf
bedeutet schnellere Fehlschläge, schnellere Korrekturen, schnellere Anpassungen und
schnelleren Erfolg . Aus dieser Agilität ergibt sich ein deutlicher Geschäftsvorteil, der
es Unternehmen wie Amazon und Netflix erlaubt, ihr jeweiliges Wettbewerbsumfeld
zu dominieren, angrenzende Marktsegmente zu erobern und die Marktführerschaft
zu übernehmen . Diese Unternehmen können sich schneller an die veränderlichen
Marktgegebenheiten anpassen und neue Funktionen und Dienste schneller als ihre
Konkurrenten bereitstellen .
Das zentrale Werkzeug bei der kontinuierlichen Bereitstellung ist die Implementierungs-
Pipeline – eine automatisierte Implementierung des Prozesses zum Erstellen, Bereitstellen,
Testen und Freigeben von Produkten . Die Implementierungs-Pipeline kommt immer dann
zum Tragen, wenn Änderungen an einer Anwendung erforderlich sind .
_______________________________________________________________
Die kontinuierliche Bereitstellung zielt auf kurze Markteinführungszeiten und einen schnellen Weg von der Konzeption zur Einführung ab, um Wettbewerbern einen Schritt voraus zu sein. Diese geringen Markteinführungszeiten führen zu einem schnelleren Feedback-Kreislauf und einer kürzeren Time-to-value.
Abb. 2
Grober Überblick über eine Implementierungs-Pipeline
3www.microfocus.com
Die Implementierungs-Pipeline ist zwar ein effizientes Werkzeug, um eine Software
auf ihrem Weg von der Entwicklung zur Freigabe voranzubringen, allerdings kann
die Ausgestaltung einer automatisierten Implementierungs-Pipeline für ein ganzes
Unternehmen eine große Herausforderung sein . Unternehmen beginnen diesen Prozess
oft mit einem eher inkrementellen Ansatz, also mit einer Entwicklungstätigkeit und
Build-Prozessen, die in eine kontinuierliche Integration münden – der Grundlage für die
Implementierungs-Pipeline .
Die Lücke zwischen Build und Implementierung
Die Grundlage der Implementierungs-Pipeline ist die kontinuierliche Integration . Ohne
kontinuierliche Integration (CI, Continuous Integration) kann es keine kontinuierliche
Bereitstellung geben . Eine kontinuierliche Integration ermöglicht es Entwicklungsteams,
das Integrieren, Erstellen und Testen von Code innerhalb der Entwicklungsumgebung
zu automatisieren . Mit einem CI-Server wie Jenkins können Entwicklungs- und Build-
Umgebungen stärker integriert und automatisiert werden . Builds können verschiedenartig
ausgelöst werden, z . B . infolge eines Commits in einem Versionskontrollsystem, über einen
Zeitplan mithilfe von Cron-Jobs oder ähnlichen Mechanismen, durch die Ausführung eines
neuen Builds, wenn andere Builds fertiggestellt wurden, oder durch Abruf einer bestimmten
Build-URL .
_______________________________________________________________
Ohne kontinuierliche Integration (CI, Continuous Integration) kann es keine kontinuierliche Bereitstellung geben. Eine kontinuierliche Integration ermöglicht es Entwicklungsteams, das Integrieren, Erstellen und Testen von Code innerhalb der Entwicklungsumgebung zu automatisieren.
Abb. 3
Prozesslücken zwischen verschiedenen Abteilungen verhindern eine kontinuierliche Bereitstellung
4
White PaperKontinuierliche Bereitstellung: Automatisieren der Implementierungs-Pipeline
Zwar sind für den Entwicklungs- und Build-Prozess die Entwicklungsteams verantwortlich, der Implementierungsprozess obliegt jedoch im Allgemeinen anderen Abteilungen mit anderen Toolsets, Skripten und Prozessen zum Bereitstellen und Testen von Builds entlang der gesamten Implementierungs-Pipeline.
Bei vielen Softwareprojekten besteht das Problem darin, dass es eine große Lücke zwischen
dem Build- und dem Implementierungsprozess gibt . Zwar sind für den Entwicklungs- und
Build-Prozess die Entwicklungsteams verantwortlich, der Implementierungsprozess obliegt
jedoch im Allgemeinen anderen Abteilungen mit anderen Toolsets, Skripten und Prozessen
zum Bereitstellen und Testen von Builds entlang der gesamten Implementierungs-Pipeline .
Häufig ist der CI-Server nur mangelhaft oder gar nicht in die Toolchain integriert. Es
muss wortwörtlich eine Übergabe stattfinden, nach der das Implementierungsteam einen
manuellen, aufwändigen Prozess zur Freigabe von Release Candidates für Test- und
Produktionsumgebungen beginnt . Diese Lücke führt zu einem Engpass, sobald mehrere
Implementierungen anstehen . Darunter leidet die Qualität der Implementierungen, und es
kommt zu längeren Zykluszeiten, die im Unternehmen höhere Kosten verursachen .
Automatisieren und Integrieren der Implementierungs-Pipeline
Deployment Automation, die Lösung von Micro Focus zur
Implementierungsautomatisierung, schließt diese Lücke . Dies wird durch eine
enge Verzahnung mit Tools wie Jenkins zur kontinuierlichen Integration und
durch die Automatisierung der gesamten Implementierungs-Pipeline erreicht .
Deployment Automation überbrückt die Kluft zwischen Entwicklung und Betrieb, indem
alle Elemente der Toolchain integriert und die Implementierung von Release Candidates
entlang der gesamten Pipeline verwaltet und visualisiert wird – alles aus einem
anwendungszentrierten Blickwinkel .
_______________________________________________________________
5www.microfocus.com
Integrieren der gesamten Toolchain
Deployment Automation unterstützt dank einer flexiblen, stabilen und erweiterbaren Plugin-
Architektur über 80 Integrationsmöglichkeiten für Toolchain-Elemente . Über Plugins
werden sowohl grundlegende Verarbeitungsfunktionen als auch Funktionen zur Integration
von Drittanbieter-Tools realisiert . Im Lieferumfang von Deployment Automation sind
Plugins für viele verbreitete Implementierungsprozesse enthalten . Zusätzlich sind Plugins
für eine Vielzahl von Tools jederzeit verfügbar . Dazu gehören Test-Tools, Middleware-Tools,
Datenbanken, Server und weitere Implementierungsziele .
Im Lieferumfang von Deployment Automation sind Plugins für viele verbreitete Implementierungsprozesse enthalten. Zusätzlich sind Plugins für eine Vielzahl von Tools jederzeit verfügbar. Dazu gehören Test-Tools, Middleware-Tools, Datenbanken, Server und weitere Implementierungsziele.
Abb. 4
Automatisierung der Implementierungs-Pipeline mit Deployment Automation
_______________________________________________________________
6
White PaperKontinuierliche Bereitstellung: Automatisieren der Implementierungs-Pipeline
Zur Integration von Jenkins muss lediglich das Jenkins-Plugin für Deployment Automation
heruntergeladen, installiert und konfiguriert werden. Deployment Automation
unterstützt die Integration von Tools zum automatisierten Testen und das automatische
Starten von Tests im Rahmen des Implementierungsprozesses . Sogar das Provisioning
vollständiger Anwendungspakete kann mithilfe von Plugins für Chef, AWS oder VMware
automatisiert werden. Eine vollständige Liste unterstützter Plugins finden Sie in unserem
Dokumentationsportal .
Modellieren, Verwalten und Visualisieren der Implementierungs-Pipeline
Mit der Implementierungs-Pipeline modellieren Sie den Weg Ihrer Software von der
Versionskontrolle bis zu Ihren Kunden . Jede Einreichung einer Änderung per Commit
führt zur Instanziierung einer neuen Implementierungs-Pipeline . Je nach Anwendung und
Art der Änderung kann die Implementierungs-Pipeline sich in verschiedene erforderliche
Umgebungen und Pfade verzweigen . Die Implementierung in diesen Umgebungen kann
sequenziell, parallel oder in Form von optionalen Stufen erfolgen, die manuell ausgewählt
werden . Die Anzahl der zu verwaltenden Implementierungs-Pipelines kann sich je nach
Anzahl der Anwendungen, Teams, Anforderungen und Umgebungen erhöhen .
Deployment Automation unterstützt Sie durch eine einfache und umfassende Verwaltung
aller Ihrer Implementierungs-Pipelines . Alle Implementierungs-Pipelines können mitsamt
der zugehörigen Umgebungen einfach erstellt, importiert, exportiert und visualisiert
werden . Optional können Sie auch lediglich für die erste Umgebung in der Pipeline
einen Implementierungsprozess anfordern . Danach kann die Implementierung auf
Folgeumgebungen hochgestuft werden . So ist sichergestellt, dass für jede Umgebung in der
Pipeline dieselbe Konfiguration angewendet wird.
Bei Aktivierung der Option zur automatischen Hochstufung wird der Release Candidate
automatisch hochgestuft, sofern er erfolgreich in der ersten Umgebung implementiert
wurde . Nach erfolgreicher Implementierung in dieser Umgebung wird die Anwendung
automatisch zur nächsten Umgebung in der Pipeline-Abfolge hochgestuft . Wenn die
jeweilige Hochstufung erfolgreich verläuft, wird mit der automatischen Hochstufung von
Umgebung zu Umgebung bis hin zur letzten in der Pipeline fortgefahren .
Die Implementierungs-Pipeline verschafft Ihnen innerhalb einer einzigen Lösung einen
ganzheitlichen Überblick darüber, wie die einzelnen Umgebungen in jeder Pipeline verwendet
werden, sodass auf einen Blick erkennbar ist, was bereits wo implementiert wurde .
Deployment Automation unterstützt Sie durch eine einfache und umfassende Verwaltung aller Ihrer Implementierungs-Pipelines.
7www.microfocus.com
Es muss sichergestellt sein, dass alle Anwendungskomponenten, die zusammen implementiert werden sollen, auch zusammen getestet werden. In Deployment Automation wird dieses Problem durch die Unterstützung von Anwendungsprozessen und Snapshots gelöst.
Anwendungszentrierte Implementierungsautomatisierung
Heutige Anwendungen enthalten Komponenten, die möglicherweise aus mehreren
verschiedenen Quellen eingebunden und für verschiedene Anwendungsschichten,
Plattformen und Ressourcen implementiert werden . Daher sind die richtige Koordination und
Orchestrierung für eine erfolgreiche Implementierung solcher Anwendungen entscheidend .
Es muss sichergestellt sein, dass alle Anwendungskomponenten, die zusammen implementiert
werden sollen, auch zusammen getestet werden . In Deployment Automation wird dieses
Problem durch die Unterstützung von Anwendungsprozessen und Snapshots gelöst .
Anwendungsprozesse können manuell ausgeführt, durch eine bestimmte Bedingung
ausgelöst oder gemäß eines benutzerdefinierten Zeitplans gestartet werden. Wenn für eine
Komponente mehrere Prozesse definiert wurden, wird von der Anwendung festgelegt, welche
davon in welcher Reihenfolge ausgeführt werden . Eine n-Schichten-Anwendung könnte
beispielsweise eine Datenbankschicht und eine Webschicht enthalten . Nach der Freigabe
werden sowohl die Webschicht als auch die Datenbankschicht gleichzeitig implementiert .
Der Anwendungsprozess ruft dann die zugehörigen Prozesse der Komponenten auf, die alle
Schritte zur Implementierung dieser Komponenten für bestimmte Ressourcen enthalten .
Ein Snapshot ist eine Abbildung des aktuellen Zustands einer Anwendung in der jeweiligen
Umgebung . Mit Snapshots wird festgelegt, welche Kombinationen von Komponentenversionen
zusammen implementiert werden . Dabei handelt es sich um Modelle, die vor der
Implementierung einer Anwendung erstellt werden . Ein Snapshot gibt die genaue Version
jeder Komponente in der Anwendung vor . Bei der Erstellung eines Snapshots werden von
Deployment Automation verschiedene Informationen über die Anwendung zusammengetragen .
Dazu gehören auch die Versionen der Komponenten für eine bestimmte Umgebung .
Bei den meisten Benutzern wird ein Snapshot nach dem Pull-Prinzip aus der Pipeline
abgerufen . Ein Snapshot wird je nach Status der Anwendung innerhalb der Umgebung erstellt,
sodass die verschiedenen Versionen der Komponenten zu diesem Zeitpunkt erfasst werden .
Zusammenfassung
Die kontinuierliche Bereitstellung kann die Wertschöpfung für Ihre Kunden drastisch
verbessern . Sie kann jedoch schwierig zu implementieren sein . Viele Unternehmen
nutzen eine kontinuierliche Integration, die die Grundlage für eine kontinuierliche
Bereitstellung bildet, schaffen jedoch keinen nahtlosen Übergang zum Implementierungs-
und Freigabeprozess und können diesen nicht automatisieren . Deployment Automation
ermöglicht die Integration, Verwaltung und Automatisierung der gesamten
Implementierungs-Pipeline aus einem anwendungszentrierten Blickwinkel .
162-DE0098-001 | S | 03/17 | © 2017 Micro Focus. Alle Rechte vorbehalten. Micro Focus und das Micro Focus Logo sowie andere Namen sind Marken oder eingetragene Marken von Micro Focus oder Tochterunternehmen bzw. Schwestergesellschaften in Großbritannien, den USA und anderen Ländern. Alle weiteren Marken sind Eigentum ihrer jeweiligen Inhaber.
www.microfocus.com
Micro FocusDeutschlandFraunhoferstraße 7D-85737 Ismaning00 800-58102130
Micro FocusSchweizMerkurstrasse 148953 DietikonSwitzerland00 800-58102130
Micro FocusFirmenhauptsitzVereinigtes Königreich+44 (0) 1635 565200
www.microfocus.com
Top Related