Software deployment


Software deployment

Softwareverteilung (engl. deployment) nennt man Prozesse zur Installation von Software auf Anwender-PCs oder Servern in Betrieben.

Viele Anwender verfügen nicht über die notwendigen Kenntnisse oder Berechtigungen, um Software-Applikationen selbst zu installieren. Daher ist es in (großen) Organisationen üblich, dass qualifizierte Mitarbeiter diese Aufgabe für die Anwender erledigen. Bei einer großen Anzahl von PCs und/oder Anwendungen ist der Aufwand hierfür sehr groß, so dass es notwendig wird, diese Tätigkeit zu automatisieren.

Die Softwareverteilung ist ein kritischer Prozess, da mit ihr auch die Installation sicherheitsrelevanter Applikationen (Virenscanner, Browser, Betriebssystemkorrekturen (Hotfixe)) erfolgt.

Inhaltsverzeichnis

Zielsetzung der Softwareverteilung

Ziel des Einsatzes einer Softwareverteilung ist es, eine vollautomatische Erstinstallation, Konfiguration und Wartung einer großen Anzahl von Computer mit minimalem Aufwand zu realisieren. Weiterhin muss ein störungsarmer und sicherer Betrieb der betreuten Umgebung erreicht werden. Häufig strebt man auch an, dass die PCs möglichst einheitlich mit Software ausgestattet werden. Als Nebeneffekt erhält man oft eine Kontrolle über die Ausnutzung der vorhandenen Softwarelizenzen.

Rollen der Softwareverteilung

  • Administrator: Betreibt, pflegt und konfiguriert das System
  • Anwender: Erhält benötigte Anwendungen automatisch installiert und konfiguriert
  • Softwarehersteller: Liefert die Applikationen und das Installationsprogramm (Setup-Programm)
  • Paketierer: Verpackt das Setup-Programm der Applikation in ein Paket des Softwareverteilsystems
  • Produktverantwortlicher: Legt für eine Applikation die Konfiguration und die Art der Installation fest
  • Support: Unterstützt bei Störungen oder Problemen den Anwender. Erhält vom Administrator Informationen über die Konfiguration des Systems. Leitet Störungen nach Qualifikation zur Lösung an den Administrator weiter.
  • Netzwerkbetreiber: Betreibt das Netzwerk, auf dem die Softwareverteilung stattfindet. Ist bei kleinen Organisationen oftmals identisch mit dem Administrator. Bei großen Organisationen wird das Netzwerk fast immer unabhängig betrieben.
  • Serverbetreiber: Betreibt die notwendigen Server. Ist bei kleinen Organisationen oftmals identisch mit dem Administrator. Bei großen Organisationen werden Server meist unabhängig betrieben.

Die Rollen sind nicht immer scharf voneinander trennbar. Auch können, oftmals bei kleineren Firmen und Organisationen, mehrere Rollen durch eine Person ausgefüllt werden.

Komponenten der Softwareverteilung

  • Netzwerk: Dient zur Übertragung der Pakete und der Konfigurationsdaten. Wird auch verwendet, um die IST-Situation (Inventarisierung) an Server zurückzusenden.
  • Protokolle und Standards: Standardisierte Verfahren mit denen Computer Daten austauschen können. Für die Softwareverteilung sind am wichtigsten BOOTP, PXE, IP, DHCP, HTTP, FTP, UNC, Multicast, LDAP, usw.
  • Computer: Erhält durch die Softwareverteilung das Betriebssystem und die Anwendungen installiert. Wird durch die Softwareverteilung konfiguriert.
  • Paket: Sammlung von Dateien welche eine Applikation automatisiert installiert und konfiguriert. Dabei kann ein Paket auch mehrere Applikationen (z. B. alle notwendigen Hardware Treiber) enthalten. In der Regel werden alle notwendigen Dateien in ein komprimiertes Archiv zusammengepackt.
  • Paketierungs-Software: Spezielles Programm, das dazu verwendet wird um ein Paket zu erstellen. Wird vom Paketierer verwendet.
  • Konfigurations-Datenbank: Speichert zentral alle Konfigurationsdaten des Systems ab.
  • Konfigurations-Server: Ablageort der Konfigurationsdatenbank. Stellt Dienste zur Verfügung, mit denen die Konfigurationsdaten den Computern zugänglich gemacht werden.
  • Konfigurations-Software: Spezielle Software zur Pflege der Konfigurationsdaten. Wegen der großen Datenmengen sind hier leistungsfähige Systeme notwendig.
  • Paket-Server: Stellt die Pakete über das Netzwerk zur Verfügung. Braucht eine sehr leistungsfähige Netzwerkanbindung. Der Paketserver und der Konfigurationsserver sind u. U. der gleiche physische Computer.
  • Inventarisierung: System, um die aktuellen Daten der Umgebung zu erfassen. Ist sinnvollerweise in die Softwareverteilung integriert. Kann aber auch einzeln betrieben werden. Kann u. U. auch komplett entfallen (Kostenreduktion).

Installationsphasen

Installation des Betriebssystems

Bevor Anwendungen installiert werden können, muss zunächst das Betriebssystem installiert werden. Dazu kann entweder eine CD/DVD verwendet werden oder ein Protokoll zum Netzwerkboot von Computern (BOOTP, PXE). Im ersten Fall bootet der Computer von der CD/DVD auf der alle notwendigen Dateien gespeichert sind. Das Programm zur Installation des Betriebssystems (auch auf dem Datenträger) wird automatisch gestartet. Dieses kann oft so vorkonfiguriert werden, dass keine Eingaben durch den Anwender mehr notwendig sind, siehe unbeaufsichtigte Installation

Bei der Netzwerkinstallation lädt das BIOS des Computer zunächst vom Netzwerk die notwendigen Programme (meist über das TFTP Protokoll) und führt diese dann aus. In der Regel lädt dieses Programm dann das Betriebssystem-Installationsprogramm von einem Server Computer im Netzwerk.

Verfahren zur Installation des Betriebssystems

Bei der Installation des Betriebssystems werden zwei verschiedene Verfahren verwendet:

  • Installationsprogramm mit spezieller Konfiguration
  • Imaging-Verfahren

Im ersten Fall wird das Programm aufgerufen, das auch der Anwender verwendet um das Betriebssystem zu installieren. Alle notwendigen Eingaben erhält das Programm aber nicht vom Anwender sondern aus einer Konfigurationsdatei (unattended, also unbeaufsichtigte Installation). Das Betriebssystem-Installationsprogramm führt dann analog zur manuellen Installation des Betriebssystems alle notwendigen Schritte aus, z. B. die Erkennung der vorhandenen Hardware. Im zweiten Fall wird das Betriebssystem einmal auf einem Computer installiert, dann davon ein Speicherabbild (englisch image) erstellt. Dieses wird dann auf der CD/DVD oder dem Netzwerk abgelegt und anschließend einfach sektorweise auf die Festplatte kopiert.

Das erste Verfahren hat den Vorteil, dass es weitgehend unabhängig von der verwendeten Hardware ist. Notwendige zusätzliche Treiber können dem Betriebssystem-Installationsprogramm in einem Ordner bereitgestellt werden. Nachteilig sind die hohe Dauer der Ausführung und dass alle Anwendungsprogramme nachträglich installiert werden müssen. Das zweite Verfahren ist äußerst schnell und erlaubt eine Integration zusätzlicher Standardanwendungen in das eigentliche Betriebssystem-Image. Nachteilig wirkt sich jedoch die Abhängigkeit der Installation von der jeweils verwendeten Hardware aus. Folglich muss für jeden Hardware-Typ ein eigenes Image erstellt, gepflegt und verteilt werden. Letztlich wird durch dieses Verfahren eine bessere Performanz auf Kosten des Verwaltungsaufwands und des Speicherbedarfs erreicht.

Für Windows Vista hat Microsoft selbst ein dateibasiertes Imaging-Verfahren entwickelt. Auf einem Rechner werden Windows Vista und die gewünschten Anwendungen installiert. Dann wird hieraus mit Hilfe des Programms sysprep ein Image erzeugt. Dabei werden bestimmte Teile des Betriebssystems (Security-IDs und Treiberdateien) beim Erstellen des Images entfernt. Auf dem Zielsystem wird Windows PE (Preinstallation Environment) gebootet, eine minimale Version von Windows Vista, die ohne Installation gestartet werden kann. Das Image wird dann auf dem Zielsystem mit dem Windows-Vista-Setup-Programm installiert. Dies ist technisch gesehen ein Kopieren von Dateien. Das Setup-Programm führt dann die Standard-Hardware-Erkennung durch und installiert die notwendigen Treiber. Dieses Verfahren ist deutlich schneller als das bisherige Setup, aber erheblich langsamer als die echten, sektorbasierten Verfahren.

Installation von Anwendungen

Nachdem das Betriebssystem vollständig installiert ist, können die Applikationen (Textverarbeitung, Tabellenkalkulation, Zeichenprogramm, usw.) installiert werden.

Dazu werden diese meist in so genannte Pakete verpackt. Das heißt, die Dateien der Anwendung werden in einem (großen) Archiv zusammengestellt (oftmals komprimiert), das zusätzlich die notwendigen Programme zur Installation der Applikation enthält.

Für Microsoft Windows kann dabei die MSI Technologie verwendet werden, bei der das Setupprogramm bereits im Betriebssystem integriert ist. Für Installationsprogramme, die nicht als MSI vorliegen bietet sich ein eigene Paketierung oder ein natives Installationsverfahren, bei dem das Original-Setup verwendet wird an. Auch bei Programmen, die aus Gründen des Supports nicht umpaketiert werden dürfen, kann man alternativ native Installationsverfahren (Auto-It, WinRobots) anwenden.

Unter Linux ist das RPM-Format weit verbreitet. Das Paket erhält nur noch die notwendigen Dateien der Anwendung und eine Steuerungsdatei, die dem Betriebssystem mitteilt, welche Aktionen zur Installation durchzuführen sind.

Die fertigen Pakete können dann entweder von den zuständigen Rollen zentral für die Installation eingeplant werden (Push-Mechanismus) oder vom Anwender selbst zur Installation, z. B. in einem sogenannten „Software-Kiosk“, ausgewählt werden (Pull-Mechanismus). Speziell bei der Pull-Variante kommt dem Lizenzmanagement eine immer größere Bedeutung zu.

Konfiguration von Betriebssystem und Anwendungen

In der Regel sind die Anwender mit der Durchführung der Konfiguration von Anwendungen überfordert (z. B. Eintragen eines Proxy-Servers für einen HTML-Browser). Überlässt man die Konfiguration der Anwendungen den Anwendern, können zusätzlich Sicherheitsrisiken entstehen (z. B. Virenscanner deaktiviert). Eine fehlerhafte Konfiguration von Anwendungen ist die häufigste Ursache für Störungen bei der Nutzung von Anwendungen.

Daher müssen die Anwendungen, nachdem sie durch die Softwareverteilung installiert wurden, konfiguriert werden. Dabei werden die Parameter der Anwendung festgelegt. Dies sind z. B. Verweise auf andere Computer, Lizenzschlüssel und Pfade.

Es kann sich einerseits um generelle Parameter handeln, die für alle Anwender der Applikation festgelegt werden sollen, oder um Parameter, die für jeden Anwender der Applikation individuell konfiguriert werden sollen.

Es ist auch zu unterscheiden, ob die Konfiguration nur einmalig erfolgen soll (Anwender bekommt sinnvolle Einstellungen, die er aber individuell anpassen kann) oder ob die Softwareverteilung sicherstellen soll, dass die Einstellungen durch den Anwender nicht verändert werden können bzw. dass Änderungen automatisch rückgängig gemacht werden. Ein System zur Softwareverteilung sollte daher in der Lage sein, diese Parameter zentral zu verwalten und automatisiert anzuwenden.

Bei MS Windows kann dies durch die Gruppenrichtlinien erreicht werden, die der Client-PC vom Domänencontroller einer NT-Domäne bzw. einer Active Directory abruft.

Inventarisierung

Nach Installation und Konfiguration meldet sich der Client-Computer bei dem Softwareverteilsystem zurück und berichtet über Erfolg oder Misserfolg der durchgeführten Aktionen. Dies ist für die aktive Störungsbeseitigung notwendig. Weiterhin benötigt der Administrator des Systems diese Rückmeldung, um in einer Regelschleife Soll und Ist am System abzugleichen. Schließlich werden die Daten an weitere Systeme wie Buchhaltung, Lizenzverwaltung, Asset Management usw. weitergeleitet.

Rollout

Ständig werden neue Anwendungsprogramme auf den Markt gebracht, die in bestehende Umgebungen eingefügt werden müssen. Daher ist es auf keinen Fall ausreichend, das System so auszulegen, dass die Computer nur einmal damit installiert werden. Vielmehr muss es möglich sein, neue Pakete zu erstellen und diese einzelnen Computern, einer Gruppe von Computern oder allen Computern zur Installation zuzuweisen.

Es müssen geeignete Verfahren zur Begrenzung der Netzwerklast und der Belastung der Verteilserver vorhanden sein. Ideal ist dabei das Multicast-Verfahren. Wichtig ist aber auch, dass die IT-Organisation und die Anwender mit dem Rollout nicht überlastet werden. Daher muss das Softwareverteilsystem Verfahren bereitstellen, mit denen ein Rollout gezielt gesteuert werden kann. Z. B. kann die Gesamtheit der betroffenen Computer/Anwender in Teilgruppen aufgeteilt werden, die dann nacheinander die neue Software verteilt bekommen.

Betrieb

Da neue Software, wie oben beschrieben, nicht dauerhaft als Gesamtheit ausgerollt werden kann, ist es notwendig neue Softwareprodukte gegen die bestehende Software-Umgebung zu testen. Der Aufwand hierfür kann sehr leicht enorme Ausmaße annehmen. Um den Aufwand einigermaßen zu begrenzen ist es notwendig, die Vielfalt der verwendeten Software so stark zu minimieren wie eben gerade möglich. Ein wichtige Maßnahme um diese Ziele zu erreichen, ist den Anwendern nicht zu gestatten selbst Programme auf ihren Computern zu installieren. Dies ist technisch leicht möglich. Zur Installation von Programmen brauchen die Anwender auf allen heute gängigen Systemen weitreichende Berechtigungen. Diese Berechtigungen sollte man den Anwendern nicht geben. Organisatorisch ist dies aber eine erhebliche Herausforderung, da somit alle Anwendungen über das Softwareverteilsystem bereitgestellt werden müssen.

Installationstechniken

Eine Übersicht über das Thema Installation von Anwendungen finden sie unter Installation (Computer)

Konfigurationsverwaltung

Ein üblicher Anwender benötigt für seine tägliche Arbeit heute eine große Anzahl von Programmen. Für jeden Anwender/Computer muss daher eine Liste der Pakete hinterlegt werden, die durch die Softwareverteilung installiert werden sollen. Weiterhin müssen die Parameter zur Konfiguration der Anwendungen hinterlegt werden (wieder pro Anwender/Computer). Es ist dabei sehr hilfreich, die Anwender/Computer zu gruppieren. Der Administrator der Softwareverteilung kann dann entweder eine ganze Gruppe von Computer/Anwendern oder einzelne konfigurieren, was den Arbeitsaufwand erheblich reduziert.

Für ein effizientes und sicheres Arbeiten ist es weiterhin notwendig, dass zu jedem Zeitpunkt einfach die aktuelle Soll-/Ist-Konfiguration eines Computers dargestellt werden kann. Nur so kann der Administrator feststellen, ob die angestrebte Umgebung funktioniert. Da es sich oft um ein sehr große Anzahl von Computern handelt, sind auch leistungsfähige Abfragewerkzeuge notwendig, mit denen sich statistische Aussagen machen lassen (z. B. auf wie vielen Computer ist die Software X installiert?).

Die effiziente, transparente und sichere Konfigurationsverwaltung ist für den Erfolg einer Softwareverteilung ausschlaggebend. Fehler in der Konfigurationsverwaltung können sehr leicht massive Störungen nach sich ziehen (z. B. aufgrund falscher Proxy-Einstellungen kann kein Anwender mehr auf das Internet zugreifen). Daher sind Maßnahmen zur Qualitätssicherung ein absolutes Muss. Dies sind z. B. Dokumentation der Konfiguration, Schulung der Administratoren, Vieraugenprinzip, statistische Auswertungen etc.

Softwareverteilungssysteme

Beispiele für konkrete Softwareverteilungssysteme sind:

Beispiele für Softwareverteilungssysteme für mobile Geräte (Mobile Device Management):

Alternativen

Java Web Start ermöglicht den Download von Java-Anwendungen und deren automatische Installation im Client-Rechner. Bei jedem erneuten Aufruf einer solchen Java-Anwendung prüft Java Web Start, ob im Server eine neuere Version vorliegt und installiert diese gegebenenfalls. Im Gegensatz zu den anderen genannten Systemen wird es jedoch nicht von zentraler Stelle gesteuert, sondern dezentral vom Client aus angestoßen. Daher handelt es sich nicht um ein Softwareverteilungssystem im engeren Sinn.

Siehe auch

Verteilungsdiagramm

Literatur

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Software deployment — is all of the activities that make a software system available for use.The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer site or at the… …   Wikipedia

  • software deployment — noun All the activities employed in making software ready for use …   Wiktionary

  • Software development process — Activities and steps Requirements Specification …   Wikipedia

  • Software Asset Management — (SAM) is a business practice that involves managing and optimizing the purchase, deployment, maintenance, utilization, and disposal of software applications within an organization. According to the Information Technology Infrastructure Library… …   Wikipedia

  • Software as a service — (SaaS, typically pronounced sass ) is a model of software deployment where an application is hosted as a service provided to customers across the Internet. By eliminating the need to install and run the application on the customer s own computer …   Wikipedia

  • Software product management — is the process of managing software that is built and served as a product as opposed to a serviceoftware productsA software product is typically a single application or suite of applications built by a software company to be used by *many*… …   Wikipedia

  • Deployment — may refer to: Deployment flowchart, a process mapping tool used to articulate the steps and stakeholders of a given process System deployment, transforming a mechanical, electrical, or computer system from a packaged form to an operational state… …   Wikipedia

  • Software engineering — (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.[1] It is the… …   Wikipedia

  • Software documentation — or source code documentation is written text that accompanies computer software. It either explains how it operates or how to use it, and may mean different things to people in different roles. Contents 1 Role of documentation in software… …   Wikipedia

  • Software development — is the translation of a user need or marketing goal into a software product. [cite book|author=Birrell, N.D.|title=A Practical Handbook for Software Development|publisher=Cambridge University Press|year=1985|id=ISBN 0 521 25462 0] [cite… …   Wikipedia


We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.