Agile Software Verteilung Vortrag: René Steg Steg IT-Engineering, Zürich (Schweiz) Gründe für Agile Software-Verteilung Wenn Sie Hunderte von Servern mit vielen Anwendungen betreiben Verteilte Anwendungen betreiben Manuelle Eingriffe in die Laufzeit-Konfigurationen der Applikationen nach der erlauben Keine Verbindung zwischen Software Configuration (SCM) und Software Verteilung (SWD¹) haben Die sanweisungen in Fliesstext dokumentieren Auf die Frage: Welche Release von meiner Anwendung läuft auf welchen Server? nur sehr schwer eine Antwort finden (wenn sie überhaupt beantwortet werden kann) Dann sollten Sie Ihre Software-Verteilung im Sinne einer Agilen Software-Verteilung optimieren ¹ SWD = Software Distribution 1
Voraussetzungen Setzen Sie sg. s voraus Stellen Sie ein Team zusammen, welches die Entwickler beim Erstellen der spakete unterstützt Verwenden Sie auch für Hardware-Metadaten ein, welches Sie einfach abfragen können Definieren Sie Standards und Richtlinien, wie Applikationen installiert werden müssen (z. B. bestimmen Sie, dass die Applikationen im Solaris- Packaging Format geliefert werden müssen) Software-Verteilungsprozess Software-Verteilung s- Test / Betrieb Silver s- Server-Metadata -Logs Server-Metadata Silver s, Install-Param. / /2 s- Silver Source, s. / Entwicklung 2
- Source-Code Sources from Baseline Compile / s Check-in / -s (Part 1) Packaging- Specialist - Parameters s- /2 /2 / 3
-s (Teil 2) s- s Runtime- Code Packaging- Specialist - Parameters, s /2 / Silver Check-in / Silver Install-s Server- Metadata s- Server is assigned Environment /2 Silver Environment Server Product Assignment / 4
Environment Distribution- Order s- Server /2 is assigned Silver Distribution / Server is installed Server Server -Status Automatisieren der Prozesse Automatisieren des -Prozess Sorgen Sie dafür, dass der -Prozess automatisiert wird Verwenden Sie immer eine Baseline für den (sonst ist er nicht nachvollziehbar, also nicht referential ) Automatisieren der Paket-Erstellung Prüfen Sie, welche Software-Produkte auf die gleiche Art und Weise installiert werden und automatisieren die Paket-Erstellung für diese Art der Produkte Versionieren Sie auch die sparameter (diese sind sowieso Teil der Software-Konfiguration) Automatisches scannen von Hardware-Daten Minimieren Sie manuelle Erfassung von Hardware-Daten, damit das Hardware-Inventar so aktuell wie möglich ist Automatisieren der Verteilungs- und -Prozesse Lassen Sie keine manuellen Interaktionen bei der Verteilung / zu De- muss ebenfalls automatisiert werden Sorgen Sie für performante en, durch Verwendung von Delta- Verteil-Methoden 5
Wo liegt der Nutzen? Software-Verteilung wird agil, trotz hunderten von Servern in einer grossen Unternehmung Die Frage: Welche Release von meiner Applikation läuft auf welchem Server?, kann mittels einem Web-Report über ein paar Mausklicks beantwortet werden Die gleiche Applikations-Release wird immer auf die gleiche Weise installiert Back-out Szenarien werden einfacher zu implementieren Die Verteilung einer Applikation wird zu einem one-button-click, sobald alle Metadaten einmal erfasst sind und darum muss der Distribution die sreihenfolge und internen Abhängigkeiten nicht mehr kennen CMMI-Level 3 kann erreicht werden, weil für die erfolgreiche Implementation und Automatisierung der Software-Verteilung die Prozesse dokumentiert standardisiert und wiederholbar sein müssen Empfehlungen Definieren Sie Standards, Richtlinien und Namenskonventionen (Automaten lieben Konventionen!) Minimieren Sie Special-Engineering und die Anzahl von unterschiedlichen Middleware- und Betriebssystem-Komponenten (Automaten hassen Ausnahmen!...und Ihre Programmierer ebenfalls!!!) Verwenden Sie ein, welches die Metadaten der Software- Verteilaktivitäten festhält Verwenden Sie den Verteil-Automaten bereits in frühen Teststufen, damit die spakete schon in frühen Phasen getestet werden können Verteilen Sie sämtliche Software-Produkttypen unter der Verwendung des Automaten, auch Middleware- und Betriebssystem-Komponenten Stellen Sie eine Verbindung zwischen Source ( ) und der seinheit (Silver ) her, damit Sie bei Fehlern sofort auf den zugrunde liegenden Code schliessen können (Best Practice: Verbindung zwischen Source-Code, compilierten Objekten und s-paketen) Beschreiben Sie in einem Notfall-Szenario, wie Sie die Software verteilen / installieren, wenn der Automat einmal nicht verfügbar sein sollte Verhindern Sie technisch jeden manuelle Eingriff während der Verteilung / (Ausnahme: Notfall-Szenario) Performance: Wenn Sie SWD in frühen Stufen einsetzen wollen, dann sorgen Sie dafür, dass sie entsprechend performt (Datenmodell, Delta-Verteilung etc.) Denken Sie beim Design des Datenmodells auch an die Auswertungen! 6
Herzlichen Dank für Ihre geschätzte Aufmerksamkeit! 7