Continuous Deployment

Das Problem

Komplexer Deployment-Prozess, der schwer zu automatisieren ist: viele Komponenten, die mit unterschiedlicher Konfiguration in verschiedene Zielumgebungen wie Staging, Test und Produktionsumgebungen ausgeliefert werden sollen. Hoher Aufwand für händisch durchgeführte Deployments.

Die Lösung

Visuelle Modellierung von Software schafft einen Ort, an dem Sie den Überblick über Deployments behalten können. Das Modell wird als Grundlage für die End-to-End-Automatisierung in der Python-Automatisierungs-Engine verwendet. Durch die modulare Automatisierung werden Änderungen an der Deployment-Automatisierung zum Kinderspiel.

Das Problem

Automatisches Deployment von Software, die aus vielen Komponenten besteht und/oder in vielen verschiedenen Konfigurationen auf verschiedenste Zielsysteme ausgeliefert werden soll, ist herausfordernd. Kennen Sie manche dieser Probleme?

  • Da die Software aktiv in Entwicklung ist, ändert sich der Deployment Prozess häufig. Daher wird kaum in Automatisierung investert, da der Aufwand zu hoch ist, die Automatisierung ständig anzupassen.
  • Händisches Deployment ist sehr zeitaufwändig. Änderungen in der Software und dem Deployment Prozess führen häufig zu Fehlern, deren Analyse und Behebung langwierig ist.
  • Der Deployment Prozess (und die Software selbst) sind kaum dokumentiert. Informationen über Änderungen, die im Deployment berücksichtigt werden müssen, werden intern nicht immer zuverlässig weitergegeben. 
  • Versuche, das Deployment mit klassischen Deployment-Tools oder selbstentwickelten Skripten zu automatisieren waren aufwändig und haben die Situation nicht oder nur kaum verbessert. 
  • Deployment-Automatisierung einzuführen wäre eine Änderung, die mehrere Teams und Abteilungen betrifft. Alle Beteiligten an Board zu bekommen und eine solche Änderung umzusetzen ist schwierig.
  • Es stehen keine internen Ressourcen zur Verfügung, um sich mit Deployment Automatisierung zu befassen.

Die Lösung: Continuous Deployment Software von Cloudomation

Modellierung und End-to-End Automatisierung des Deployment-Prozesses mit Cloudomation Engine:

  • Die Cloudomation Plattform erlaubt einfaches Modellieren der Software, Komponenten und deren Abhängigkeiten. Die Modellierung dient als Zielzustandsbeschreibung, die von der unterliegenden Automatisierung hergestellt wird. 
  • Die Automatisierung des Deployment-Prozesses findet in Python statt. In Python können auch komplexe und verschachtelte Bedingungen einfach abgebildet sowie beliebige Deployment-Logik automatisiert werden.
  • Durch visuelle Darstellung der Software und Visualisierung des Deployment-Prozesses, welche direkt aus den Python-Skripten generiert wird, wird der Deployment Prozess greifbar und verständlich. 
  • Modulare Automatisierung in abgegrenzten Einzelschritten macht Änderungen der Deployment-Automatisierung einfach möglich. Durch die Visualisierung kann dennoch einfach der Überblick bewahrt werden. 
  • Bestehende Skripte und Automatisierungen in anderen Tools können eingebunden und wiederverwendet werden. 
  • Durch günstige Einstiegspakete und flexibles Pricing können Sie die Deployment Automatisierung in einem kleinen Team testen und schrittweise in der weiteren Organisation ausrollen. 
  • Unser Team steht Ihnen im gesamten Prozess zur Verfügung: Entwickeln Sie Ihre Automatisierungen selbst, mit uns gemeinsam, oder beauftragen Sie uns mit der gesamten Umsetzung – ganz wie Sie es wünschen. 
  • Automatisierungen bleiben schlank, wartbar und übersichtlich

So funktioniert es

Visuelle Modellierung ihrer Software als Grundlage für Ihre Automatisierung: Beschreiben Sie Ihre Software. Nutzen Sie das Modell in der Deployment-Automatisierung. Behalten Sie den Überblick.

Pro-Code AutomationDas ermöglicht beispiellose Flexibilität ohne vorgegebenes Datenmodell, ohne Grenzen in Logik und Komplexität.

Schlank, schnell, kundenorientiert: Leichtgewichtige Plattform, Fokus auf Kundenbefähigung, kundenorientierte Produktentwicklung. 

Das Ergebnis

Modellierung Ihrer Software bietet Übersicht und Grundlage für Deployment-Automatisierung:

  • Da das Modell für die Automatisierung genutzt wird, bleibt es immer aktuell
  • Modell-Templates ermöglichen schnellen Start

Flexible, mitwachsende Automatisierung:

  • Maßgeschneidert auf Ihre Anforderungen: so einfach wie möglich, so komplex wie nötig
  • Hinzufügen, Entfernen und Ändern von Deployment-Varianten ist schnell und einfach
Sichtbarkeit und Möglichkeit zur Zusammenarbeit am Prozess für alle Teams:
  • Graphische Darstellung des Prozesse auch für nicht-Techniker greifbar
  • Nachvollziehbarkeit für alle Prozessschritte

FAQ

Ein Deployment Target ist ein Ort, an dem Software installiert wird – das kann ein Server sein, das können aber auch mehrere Server oder VMs sein. Es könnten beliebig viele Deployment Targets über Cloudomation Engine automatisiert werden.

Ja. Eine Komponente kann auf mehrere verschiedene Server deployed werden. Es können auch mehrere Komponenten auf einem Server deployed werden oder eine Komponente auf einen eigenen Server plus weitere auf einen gemeinsamen etc. Wie und wohin die Software deployed wird, ist vollständig anpassbar.

Keine. Cloudomation automatisert agentless. Auf den Deployment Targets müssen keine Agents vorinstalliert werden. Cloudomation kann sich z.B. über ssh agentless mit einem Server verbinden und dort Software installieren. Cloudomation kann auch direkt die APIs von Cloud-Anbietern oder Virtualisierungstechnologien ansprechen und die Infrastruktur erstellen, auf der dann Software installiert wird.

Es kann eine beliebige Error-Catching-Logik eingebaut werden. Grundsätzlich geben alle Konnektoren Fehler weiter, die ihnen „begegnen“, sodass über die Python-Logik in Cloudomation Engine definiert werden kann, wie mit Fehlern umgegangen werden soll. Sie können auch eine allgemeine Fehlerbehandlungslogik verwenden, die unabhängig von konkreten Fehlern definiert (wenn z.B. nicht gewusst wird, welche Fehler auftreten können), wie vorgegangen werden soll – beispielsweise, dass Benachrichtigungen versendet werden.

Logs werden auf dem Cloudomation Server gespeichert. Es gibt eine Log-Expiry-Logik, die angepasst werden kann. Grundsätzlich empfehlen wir, ältere Logs vom Cloudomation Server zu löschen. Es kann eine Log-Archivierungslogik eingebaut werden, die Logs in einen Log-Server oder in ein Log-Archiv schreibt.

Grundsätzlich gibt es keine Grenzen auf Softwareseite, aber die Performance hängt stark davon ab, wie viele Daten und in welcher Größe diese übertragen werden. Je nach den zu übertragenden Datenmengen muss auch der Cloudomation Server entsprechend „gesized“ werden.