Was ist Softwarebereitstellung?
- 3 Minuten
Die Softwarebereitstellung umfasst alle Aktivitäten, die ein Softwaresystem zur Verwendung zur Verfügung stellen. Der allgemeine Bereitstellungsprozess besteht aus mehreren zusammenhängenden Aktivitäten mit möglichen Übergängen zwischen ihnen. Jedes Softwaresystem ist einzigartig, daher ist die Bereitstellung ein allgemeiner Prozess, der an bestimmte 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. Die Bereitstellung umfasst mehr Aspekte. 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 wird nicht gut skaliert. 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.
Dieser Lernpfad konzentriert sich auf die optimale Bereitstellung von Software für Zuverlässigkeit. 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: Die epische Bereitstellung
Das Wort episch bedeutet "großartig, monumental oder gewaltig", aber im Kontext dieser Diskussion ist es nicht gut. Jez Humble und David Farley verwenden den Begriff in ihrem Buch Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation, weil es ein gewaltiges (und massiv störendes) Unterfangen darstellt. Hier ist ein Beispiel dafür, wie dies in der Regel geschieht:
- 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.
- Jedes Update ist eine "all hands on deck"-Situation. Das Anwendungsteam, das Supportteam, das Infrastrukturteam und die Verwaltung sind alle 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.
- Es geht selten gut, und wenn es fertig ist, fühlt es sich normalerweise zusammengewürfelt und nicht reproduzierbar an.
Dies ist keine gute Bereitstellungssituation. 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 Prozess lang und mühsam ist, muss er zu Zeiten geplant werden, die die geringste Unterbrechung der Benutzerproduktivität verursachen, was bedeutet, dass Zeiten, die wahrscheinlich für das Bereitstellungsteam unangenehm sind, wie Wochenenden und 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.
Es sollte eine bessere Möglichkeit geben, und es gibt. Die gute Nachricht ist, dass die herkömmliche epische Bereitstellungsstrategie nicht die einzige Option ist. In der nächsten Einheit erfahren Sie mehr über diesen Prozess.