kontinuierliche bereitstellung: automatisieren der ...... 1 der nutzen einer kontinuierlichen...

10
Kontinuierliche Bereitstellung: Automatisieren der Implementierungs-Pipeline White Paper Deployment Automation

Upload: others

Post on 25-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

Kontinuierliche Bereitstellung: Automatisieren der Implementierungs-Pipeline

White PaperDeployment Automation

Page 2: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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

Page 3: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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.

Page 4: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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

Page 5: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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

Page 6: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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 .

_______________________________________________________________

Page 7: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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

_______________________________________________________________

Page 8: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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.

Page 9: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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 .

Page 10: Kontinuierliche Bereitstellung: Automatisieren der ...... 1 Der Nutzen einer kontinuierlichen Bereitstellung Die kontinuierliche Bereitstellung ist eine Methode der Softwarebereitstellung,

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