Was ist Softwarebereitstellung?

Abgeschlossen

Laut Wikipedia umfasst die Bereitstellung von Software alle erforderlichen Aktivitäten, um ein Softwaresystem einsatzbereit zu machen. Der allgemeine Bereitstellungsprozess besteht aus mehreren Aktivitäten, die miteinander verknüpft sind. Dabei ist jedes Softwaresystem einzigartig. Allgemeine Hinweise zum Bereitstellungsprozess sollten daher als Rahmen gesehen werden, der entsprechend der jeweiligen Anforderungen oder Merkmale angepasst werden muss.

Gelegentlich werden die Begriffe „Bereitstellung“ und „Installation“ synonym verwendet, doch genau genommen ist die Softwareinstallation nur ein Bestandteil des Bereitstellungsvorgangs. Er umfasst deutlich mehr Schritte. Folgende Aktivitäten können Teil des Bereitstellungsprozesses sein:

  • Montieren und Stapeln eines Servers.
  • Bereitstellen einer aktualisierten Softwarekomponente auf diesem Server.
  • Verwenden von Skripts und Infrastruktur als Code.
  • Möglicherweise sogar das manuelle Installieren von Software auf allen Computern in einem Bürogebäude mithilfe eines USB-Speichersticks.

Die manuelle Bereitstellung von Software ist arbeitsintensiv und ermöglicht keine angemessene Skalierung. Eine automatisierte Vorgehensweise ist einfacher und wesentlich kostengünstiger. Außerdem kann bei der Einführung neuer Software oder der Aktualisierung vorhandener Software im gesamten Unternehmen dadurch die Konsistenz gewährleistet werden.

Der Schwerpunkt dieses Moduls als Teil des Lernpfads liegt in der größtmöglichen Zuverlässigkeit der Softwarebereitstellung. In diesem Modul wird nicht nur die Bereitstellung von Software beschrieben, sondern auch die Bereitstellung von Cloudinfrastruktur. Die Bereitstellung eines Diensts oder einer Lösung schließt immer auch die Bereitstellung von Software, Cloudinfrastruktur, Konfigurationen oder anderer Elemente ein, die für die zuverlässig Nutzbarmachung eines Softwaresystems erforderlich sind.

Szenario: Bereitstellungsmodell „Epic Deployment“

Das englische Wort epic bedeutet übersetzt so viel wie „gewaltig“, „monumental“ oder „riesig“. Doch im Kontext einer Bereitstellung ist der Begriff nicht positiv gemeint. Geprägt wurde er in diesem Zusammenhang von Jez Humble in seinem Buch Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, da es sich bei dieser Art von Bereitstellung um ein gewaltiges (und häufig gewaltig störanfälliges) Unterfangen handelt. Der folgende Ablauf ist ein typisches Beispiel für eine „Epic Deployment“-Bereitstellung:

  • Ein Unternehmen entwickelt eine vertriebsbezogene Anwendung. Diese Anwendung wird genau zweimal pro Jahr aktualisiert.
  • Während dieser Updates werden alle neuen Funktionen, (große und kleine) Fehlerbehebungen und Abhängigkeitsaktualisierungen gleichzeitig bereitgestellt.
  • Die erste Bereitstellung des Jahres findet am Wochenende um den 1. Mai statt, die zweite am Wochenende nach Thanksgiving.
  • Für jedes dieser Ereignisse ist das gesamte Team fest eingeplant. Vom Anwendungsteam, über das Support- und das Infrastrukturteam bis hin zur Geschäftsleitung sind alle Mitarbeiter an der Bereitstellung beteiligt.
  • Während der Bereitstellungen sind die Dienste vorübergehend offline.
  • Die Erfahrung zeigt, dass diese Art von Bereitstellungen immer zu Problemen, punktuellen technischen Lösungsanforderungen, Problembehandlungen und Änderungen der Konfigurationsverwaltung führt.
  • Der Vorgang läuft selten reibungslos ab, und das Ergebnis gleicht häufig einem nicht reproduzierbaren Flickenteppich an Maßnahmen.

So sollte eine gute Bereitstellung nicht ablaufen. Die Methode der „Epic Deployment“ ist eine gewaltige manuelle Aufgabe, die eine ganze Reihe von Problemen beinhaltet:

  • Sie ist komplex.
  • Sie ist anstrengend.
  • Sie ist riskant.
  • Sie ist langsam.
  • Sie ist aufgrund der Vielzahl komplexer Schritte nicht reproduzierbar.
  • Für ihre Durchführung sind häufig mehrere unterschiedliche Experten erforderlich.

Da dieser mühsame Prozess eine gewisse Zeit in Anspruch nimmt, muss er zu einer Zeit geplant werden, in der eine geringstmögliche Unterbrechung der Benutzerproduktivität zu erwarten ist. Doch dabei handelt es sich zwangsläufig auch um Zeiten, die für das Bereitstellungsteam ungelegen sind, wie Wochenenden oder Feiertage.

Die Teammitglieder fühlen sich möglicherweise unter Druck gesetzt, die Mammutaufgabe innerhalb des gesetzten Zeitrahmens zu erledigen, was zu Unachtsamkeiten und Fehlern bei der Konfiguration führen kann. Zudem kann die Routine bei der Ausführung der Aufgaben in den langen Pausen zwischen den halbjährlichen Bereitstellungen verloren gehen.

Das Dilemma bei der Bereitstellung

Die Softwarebereitstellung ist eine komplexe Aufgabe. Sollen dabei viele große Änderungen, Problembehebungen und Funktionsergänzungen „in einem Aufwasch“ erledigt werden, erhöht sich automatisch die Komplexität und damit auch die Wahrscheinlichkeit für Probleme. Und wenn dann tatsächlich etwas schief geht, ist es aufgrund der Komplexität auch schwieriger, die Fehlerursache zu finden.

Auch für Benutzer ist es anspruchsvoll, mit einer Vielzahl von neuen Funktionen und Änderungen klarzukommen, mit denen sie gleichzeitig konfrontiert werden – ganz zu schweigen von den möglichen Fehlern, die sich als Folge der komplexen Herausforderungen einer „Epic Deployment“-Bereitstellung möglicherweise eingeschlichen haben.

Dazu sollte es Alternativen geben – und die gibt es auch! Neben der traditionellen Methode der „Epic Deployment“-Bereitstellung gibt es eine weitere Option. Diese zuverlässigere Bereitstellungsmethode lernen Sie in der folgenden Einheit kennen.

Überprüfen Sie Ihr Wissen

1.

Welches der folgenden Merkmale kennzeichnet die Bereitstellungsmethode „Epic Deployment“?