Software-Bereitstellung - Software deployment

Als Software-Deployment werden alle Aktivitäten bezeichnet, die ein Softwaresystem zur Nutzung bereitstellen .

Der allgemeine Bereitstellungsprozess besteht aus mehreren miteinander verbundenen Aktivitäten mit möglichen Übergängen zwischen ihnen. Diese Aktivitäten können auf der Erzeugerseite oder auf der Verbraucherseite oder auf beiden erfolgen. Da jedes Softwaresystem einzigartig ist, lassen sich die genauen Prozesse oder Abläufe innerhalb jeder Aktivität kaum definieren. Daher sollte „Einsatz“ als allgemeiner Prozess interpretiert werden , der an spezifische Anforderungen oder Merkmale angepasst werden muss.

Geschichte

Als Computer extrem groß, teuer und sperrig waren ( Großrechner und Minicomputer ), wurde die Software oft von den Herstellern zusammen mit der Hardware gebündelt. Wenn Unternehmenssoftware auf einem vorhandenen Computer installiert werden muss, kann dies einen teuren und zeitaufwändigen Besuch eines Systemarchitekten oder Beraters erfordern . Bei komplexen, lokalen Installationen von Unternehmenssoftware kann dies heute noch manchmal der Fall sein.

Mit der Entwicklung von Massenmarktsoftware für das neue Zeitalter der Mikrocomputer in den 1980er Jahren kamen jedoch neue Formen der Softwareverteilung – zuerst Kassetten , dann Compact Cassettes , dann Disketten , dann (ab den 1990er Jahren) optische Medien , das Internet und Flash-Laufwerke . Dies bedeutete, dass die Softwarebereitstellung dem Kunden überlassen werden konnte. Im Laufe der Zeit wurde jedoch auch zunehmend erkannt, dass die Konfiguration der Software durch den Kunden wichtig ist und diese idealerweise eine benutzerfreundliche Oberfläche haben sollte (anstatt den Kunden beispielsweise Registrierungseinträge unter Windows bearbeiten zu müssen).

Bei der Bereitstellung von Software vor dem Internet waren Bereitstellungen (und ihre eng verwandten Verwandten, neue Softwareversionen) notwendigerweise teure, seltene und sperrige Angelegenheiten. Es ist daher fraglich, dass die Verbreitung des Internets eine durchgängige agile Softwareentwicklung ermöglicht hat. Tatsächlich bedeutete das Aufkommen von Cloud Computing und Software as a Service , dass Software innerhalb von Minuten über das Internet bei einer großen Anzahl von Kunden bereitgestellt werden konnte. Dies bedeutete auch, dass die Bereitstellungszeitpläne in der Regel jetzt vom Softwareanbieter und nicht mehr von den Kunden festgelegt wurden. Diese Flexibilität führte dazu, dass Continuous Delivery eine praktikable Option wurde, insbesondere für weniger riskante Webanwendungen .

Bereitstellungsaktivitäten

Freigeben
Die Release- Aktivität folgt aus dem abgeschlossenen Entwicklungsprozess und wird manchmal eher als Teil des Entwicklungsprozesses als als Bereitstellungsprozess eingestuft. Es umfasst alle Arbeitsschritte, um ein System für die Montage vorzubereiten und auf das/die Computersystem(e) zu übertragen, auf dem/denen es in der Produktion ausgeführt wird. Daher beinhaltet es manchmal, die Ressourcen zu bestimmen, die für den Betrieb des Systems mit einer tolerierbaren Leistung erforderlich sind, und das Planen und/oder Dokumentieren nachfolgender Aktivitäten des Bereitstellungsprozesses.
Installation und Aktivierung
Bei einfachen Systemen beinhaltet die Installation die Einrichtung einer Form von Befehl , Verknüpfung, Skript oder Dienst zum Ausführen der Software (manuell oder automatisch). Bei komplexen Systemen kann es sich um die Konfiguration des Systems handeln – möglicherweise durch Fragen des Endbenutzers zu seinem Verwendungszweck oder direkt nach seiner Wunschkonfiguration – und/oder um die Bereitstellung aller erforderlichen Subsysteme. Aktivierung ist die Aktivität, die ausführbare Komponente einer Software zum ersten Mal in Betrieb zu nehmen (nicht zu verwechseln mit der gebräuchlichen Verwendung des Begriffs Aktivierung bezüglich einer Softwarelizenz, die eine Funktion von Digital Rights Management- Systemen ist).
Bei größeren Softwarebereitstellungen auf Servern kann die Hauptkopie der von Benutzern zu verwendenden Software - "Produktion" - auf einem Produktionsserver in einer Produktionsumgebung installiert werden. Andere Versionen der bereitgestellten Software können in einer Testumgebung , einer Entwicklungsumgebung und einer Notfallwiederherstellungsumgebung installiert werden .
In komplexen Continuous-Delivery- Umgebungen und/oder Software-as-a-Service- Systemen können unterschiedlich konfigurierte Versionen des Systems sogar gleichzeitig in der Produktionsumgebung für verschiedene interne oder externe Kunden existieren (dies wird als Multi-Tenant-Architektur bezeichnet ) oder sogar sein schrittweise parallel auf verschiedene Kundengruppen ausgerollt, mit der Möglichkeit, eine oder mehrere der parallelen Bereitstellungen abzubrechen. Zum Beispiel Twitter ist die letztgenannte Ansatz für die Verwendung bekannten A / B - Tests von neuen Features und Benutzeroberfläche ändert. Eine "versteckte Live"-Gruppe kann auch innerhalb einer Produktionsumgebung erstellt werden, die aus Servern besteht, die noch nicht mit dem Produktions- Load Balancer verbunden sind , zum Zwecke der Blau-Grün-Bereitstellung .
Deaktivierung
Die Deaktivierung ist die Umkehrung der Aktivierung und bezieht sich auf das Herunterfahren aller bereits ausgeführten Komponenten eines Systems. Die Deaktivierung ist oft erforderlich, um andere Bereitstellungsaktivitäten durchzuführen, zB muss ein Softwaresystem möglicherweise deaktiviert werden, bevor eine Aktualisierung durchgeführt werden kann. Die Praxis, selten verwendete oder veraltete Systeme aus dem Dienst zu nehmen, wird oft als Anwendungsstilllegung oder Anwendungsstilllegung bezeichnet.
Deinstallation
Die Deinstallation ist die Umkehrung der Installation. Es ist die Entfernung eines Systems, das nicht mehr benötigt wird. Es kann auch eine Neukonfiguration anderer Softwaresysteme beinhalten, um die Abhängigkeiten des deinstallierten Systems zu entfernen .
Aktualisieren
Der Aktualisierungsprozess ersetzt eine frühere Version des gesamten oder eines Teils eines Softwaresystems durch eine neuere Version. Es besteht in der Regel aus einer Deaktivierung gefolgt von einer Installation. Auf einigen Systemen, z. B. unter Linux, wird bei Verwendung des Paketmanagers des Systems normalerweise auch die alte Version einer Softwareanwendung automatisch deinstalliert. (Dies ist , weil Linux - Paket - Manager der Regel nicht zur gleichen Zeit mehrere Versionen einer Software - Anwendung unterstützt die Installation , wenn das Software - Paket speziell entwickelt wurde , um um Arbeit dieser Einschränkung.)
Integriertes Update
Mechanismen zum Installieren von Updates sind in einigen Softwaresystemen (oder bei einigen Betriebssystemen wie Linux , Android und iOS ) in das Betriebssystem selbst eingebaut. Die Automatisierung dieser Update-Prozesse reicht von vollautomatisch bis hin zu benutzerinitiiert und gesteuert. Norton Internet Security ist ein Beispiel für ein System mit einer halbautomatischen Methode zum Abrufen und Installieren von Updates sowohl für die Antivirendefinitionen als auch für andere Komponenten des Systems. Andere Softwareprodukte bieten Abfragemechanismen zum Bestimmen, wann Updates verfügbar sind.
Versionsverfolgung
Versionsverfolgungssysteme helfen dem Benutzer, Updates für Softwaresysteme zu finden und zu installieren. Beispiel: Der Softwarekatalog speichert Versions- und andere Informationen für jedes auf einem lokalen System installierte Softwarepaket. Ein Klick auf eine Schaltfläche öffnet ein Browserfenster zur Upgrade-Webseite für die Anwendung, einschließlich des automatischen Ausfüllens des Benutzernamens und des Kennworts für Sites, die eine Anmeldung erfordern. Unter Linux, Android und iOS ist dieser Vorgang noch einfacher, da ein standardisierter Prozess zur Versionsverfolgung (für offiziell unterstützt installierte Softwarepakete) in das Betriebssystem integriert ist, sodass keine separaten Anmelde-, Download- und Ausführungsschritte erforderlich sind – so die Prozess kann so konfiguriert werden, dass er vollständig automatisiert wird. Einige Software von Drittanbietern unterstützt auch die automatische Versionsverfolgung und Aktualisierung für bestimmte Windows-Softwarepakete.

Bereitstellungsrollen

Die Komplexität und Variabilität von Softwareprodukten hat die Entstehung spezialisierter Rollen für die Koordination und Entwicklung des Bereitstellungsprozesses gefördert. Bei Desktop-Systemen werden Endbenutzer häufig auch zu „Software-Bereitstellern“, wenn sie ein Softwarepaket auf ihrem Rechner installieren. Die Bereitstellung von Unternehmenssoftware umfasst viele weitere Rollen, und diese Rollen ändern sich in der Regel mit dem Fortschreiten der Anwendung von der Testumgebung (Vorproduktionsumgebung) in die Produktionsumgebung. Typische Rollen bei der Softwarebereitstellung für Unternehmensanwendungen können sein:

Siehe auch

Verweise

Externe Links