Definition von Deployment

Deployment

Deployment bezeichnet in der IT die Verteilung oder Bereitstellung von Software. Die Softwarebereitstellung erfolgt durch automatisierte Prozesse, mit deren Hilfe die Installation und Konfiguration von Softwarelösungen durchgeführt wird.

Die Bereitstellung umfasst Aspekte wie die Installation, Konfiguration, Aktualisierung und Wartung von Betriebssystemen und Anwendungssystemen auf PCs oder Servern. Updates und Patches sowie deren Bereitstellung sind ebenfalls Teil der Softwarebereitstellung.

„Code complete“ ist ein gängiger Satz unter Softwareentwicklern, wenn sie ein Entwicklungsprojekt abgeschlossen haben. Dies bedeutet jedoch nicht, dass alles fertig ist. Wenn die Entwickler den Code für eine Website geschrieben haben, müssen sie ihn auf die Webserver stellen.

Dabei kann es sich um Code handeln, der Fehler behebt, neue Funktionen hinzufügt oder die zugrunde liegende Plattform aktualisiert. Häufig handelt es sich um eine Kombination aus allen drei Aspekten. Solange der neue Code nicht bereitgestellt wurde, können die Besucher einer Website ihn nicht nutzen oder von ihm profitieren.

Das Deployment ist also der Prozess, bei dem Ihr Code von der Entwicklungsphase in die Produktionsphase überführt wird, so dass er den Benutzern zur Verfügung steht.

Arten der Softwarebereitstellung

Es gibt verschiedene Strategien für die Bereitstellung von Software, von denen jede ihre eigenen Vorteile und Überlegungen hat. Die Wahl der Strategie hängt von den Bedürfnissen des Teams, den Projektzielen und den Einschränkungen ab.

  • Basic Deployment: Alle Knoten werden gleichzeitig aktualisiert. Dies ist die einfachste Methode, kann aber zu Ausfallzeiten während des Aktualisierungsprozesses führen.
  • Rolling Deployment: Hier wird eine Untermenge von Instanzen nacheinander aktualisiert. Diese Strategie minimiert Ausfallzeiten, benötigt aber mehr Zeit für den vollständigen Rollout.
  • Blue/Green Deployment: Bei dieser Strategie laufen zwei Versionen der Software gleichzeitig. Die Benutzer werden schrittweise von der alten auf die neue Version umgestellt, wodurch das Risiko von Problemen während der Umstellung verringert wird.
  • Kanarienvogel-Deployment: Ähnlich wie Blau/Grün-Deployment, jedoch wird die neue Version zunächst für eine kleine Gruppe von Benutzern freigegeben. Wenn keine Probleme auftreten, wird die neue Version nach und nach für alle Benutzer freigegeben.
  • A/B-Tests: Zwei Versionen der Software werden auf der Grundlage bestimmter Parameter für verschiedene Untergruppen von Benutzern bereitgestellt. Diese Strategie wird häufig verwendet, um neue Funktionen oder Designs zu testen.
  • Schattenimplementierung: Die neue Version wird parallel zur alten Version getestet, ohne den Datenverkehr zu beeinträchtigen. Dies ermöglicht umfangreiche Tests vor dem vollständigen Rollout.

Verfahren der Softwarebereitstellung

Eine erfolgreiche Bereitstellung ermöglicht den Benutzern einen nahtlosen Zugriff auf neue Funktionen und Verbesserungen, was die Benutzererfahrung verbessert und potenziell die Kundenbindung erhöht. Um die Effizienz zu gewährleisten und potenzielle Probleme zu minimieren, gibt es eine Reihe bewährter Verfahren, die berücksichtigt werden sollten:

Automatisierung: Die Produktivität kann erheblich gesteigert und das Risiko menschlicher Fehler verringert werden, wenn Automatisierungstechnologien für Bereitstellungsaufgaben eingesetzt werden.

Kontinuierliche Integration und Auslieferung (CI/CD): Zur Aufrechterhaltung einer hohen Softwarequalität und zur Verkürzung der Time-to-Market können die regelmäßige Integration neuen Codes und automatisierte Tests vor der Freigabe in der Live-Umgebung beitragen.

Überwachung und Leistungsmessung: Die genaue Überwachung der wichtigsten Metriken hilft, potenzielle Probleme frühzeitig zu erkennen.

Vorbereitung, Test und Bereitstellung: Diese Phasen sind entscheidend, um sicherzustellen, dass die Software wie geplant funktioniert.

Rollback-Strategie: Ein Plan zur Rücknahme von Änderungen im Fehlerfall kann Unterbrechungen und Ausfallzeiten minimieren.