Deployments Best
Practices
Daniel Drexlmaier
09.05.2014
www.se-medien.de
Unsere heutigen Themen
u  Einführung
u  Ziele Release und Deployment Management Prozesses
u  Systemlandschaften
u  Entwicklungs(Sandbox) -System
u  Test-System
u  Stage/QS-System
u  Training-System
u  Produktiv-System
u  Rolling Back
Einführung
u  Überblick über Release und Deployment Management
u  Entwicklung einer Release Policy und –Planung
u  Wie wird ein Release getestet und in das Produktiv-System ausgerollt
u  Integrität des Produktiv-Systems geschützt wird
u  Nur zuvor getestete Releases kommen auf das Produktiv-System
u  Release Management hängt immer vom Budget und der gewünschten
Sicherheit ab
Einführung
u  Änderungen nie direkt am Produktiv-System vornehmen
u  Es entstehen Fehler
u  Es ist nicht dokumentiert
u  Es ist nicht getestet
u  Ein schlechtes Deployment kann alles ruinieren
u  Viele Vorteile eines Deployment-Systems
u  Keine deployments kurz vor Feierabend!
Ziele Release und Deployment
Management Prozesses
Ziele nach ITIL
u  Erfolgreiches Rollout planen und beaufsichtigen
u  Schutz der Produktionsumgebung
u  Änderungen dokumentieren
u  Kommunikation mit Kunden während der Planung und des Rollouts
u  Zusammenarbeit mit dem Change Management
u  Anwendung von Controlling Prozesse des Konfiguration- und Change-
Managements
Systemlandschaft
u  Die Systemlandschaft beinhaltet alle installierten Systeme einer Software
u  Systeme sind durch Transportwege miteinander verbunden
u  Dokumentation
u  Unabhängige Systeme um ein Release zu testen.
3-Systemlandschaft
u  Für Mittelgröße Implementierungen
u  Empfehlung von 3 Systemen
u  Entwicklungssystem
u  Qualitätssicherungssystem
u  Produktiv
u  Schulung findet im QS-System statt
2-Systemlandschaft
u  Für kleine Implementierungen
u  Empfehlung von 2 Systemen
u  Entwicklungssystem
u  Produktiv
u  Qualitätssicherung findet im Entwicklungs-System statt
u  Probleme beim Testen ob Release im Produktiv-System lauffähig ist
1-Systemlandschaft
u  Empfehlen wir nicht!
u  Keine sicherere Weiterentwicklung möglich
u  Stop des Produktiv-Betriebs
u  Entwicklung
u  Test-Phase
Entwicklungs(Sandbox)-System
u  unabhängiges System vom Produktiv und QS-System
u  Entwicklung eines neuen Releases
u  Fehlerbehebung
u  Neue Features
u  Änderungen
u  Hier wird nur entwickelt
u  Testen aller Änderungen (Validierung und Verifikation)
u  Transport des Releases erst nach Validierung und Verifikation
u  Programmierfehler und Systemausfälle betreffen nicht das Produktivsystem
Test-System
u  Kann eine Virtuelle Maschiene sein
u  Unabhängig von anderen Systemen
u  Sollte identisch mit der Produktivumgebung sein
u  Kann auch virtuell sein
u  System nur zum Testen für interne Test-Benutzer, nicht für Key-User
Stage/QS-System
u  Kopie vom Produktiv-System (nachstellen des Produktiv-System)
u  Software
u  Datenbank
u  Hardware
u  So gut es geht das Test vor dem Produktiv-System
u  Test von neuer Version
u  Test wird von Kunden (Key-User) und Dienstleister vorgenommen
u  Endkontrolle/Funktionstest
Produktiv-System
u  Produktiv-System – Finaler Punkt wo alles funktionieren muss
u  Nur Live/Produktiv-Daten
u  Nur Versionen die davor ausführlich getestet wurden
u  Gründliches ausführen von Unit-Tests, Lasttests,...
Rolling Back
u  Oft passieren Dinge die nicht geplant sind
u  Zurückrollen zu einem beliebigen alten Software stand
u  Im Fehlerfall
Berechtigung
u  QS-System
u  Alle Entwickler sollten hier neue Releases deployen dürfen
u  Produktiv-System
u  Nur Zugriff für eine kleine Gruppe
Training-System
u  Schulung von Mitarbeitern
u  Gleicher Kenntnisstand bei allen Mitarbeitern
u  Kopie von Produktivdaten
u  Gleicher oder neuerer Release-Stand wie Produktiv-System
u  Geg. kleiner Schulungs-Datenbestand
u  Schulungssystem steht i.d.R. laufend zur Verfügung
u  Lernen / Testen ohne Produktiv-Daten zu beschädigen
Fragen und Antworten

Deployments Best Practices

  • 1.
  • 2.
    Unsere heutigen Themen u Einführung u  Ziele Release und Deployment Management Prozesses u  Systemlandschaften u  Entwicklungs(Sandbox) -System u  Test-System u  Stage/QS-System u  Training-System u  Produktiv-System u  Rolling Back
  • 3.
    Einführung u  Überblick überRelease und Deployment Management u  Entwicklung einer Release Policy und –Planung u  Wie wird ein Release getestet und in das Produktiv-System ausgerollt u  Integrität des Produktiv-Systems geschützt wird u  Nur zuvor getestete Releases kommen auf das Produktiv-System u  Release Management hängt immer vom Budget und der gewünschten Sicherheit ab
  • 4.
    Einführung u  Änderungen niedirekt am Produktiv-System vornehmen u  Es entstehen Fehler u  Es ist nicht dokumentiert u  Es ist nicht getestet u  Ein schlechtes Deployment kann alles ruinieren u  Viele Vorteile eines Deployment-Systems u  Keine deployments kurz vor Feierabend!
  • 5.
    Ziele Release undDeployment Management Prozesses Ziele nach ITIL u  Erfolgreiches Rollout planen und beaufsichtigen u  Schutz der Produktionsumgebung u  Änderungen dokumentieren u  Kommunikation mit Kunden während der Planung und des Rollouts u  Zusammenarbeit mit dem Change Management u  Anwendung von Controlling Prozesse des Konfiguration- und Change- Managements
  • 6.
    Systemlandschaft u  Die Systemlandschaftbeinhaltet alle installierten Systeme einer Software u  Systeme sind durch Transportwege miteinander verbunden u  Dokumentation u  Unabhängige Systeme um ein Release zu testen.
  • 7.
    3-Systemlandschaft u  Für MittelgrößeImplementierungen u  Empfehlung von 3 Systemen u  Entwicklungssystem u  Qualitätssicherungssystem u  Produktiv u  Schulung findet im QS-System statt
  • 8.
    2-Systemlandschaft u  Für kleineImplementierungen u  Empfehlung von 2 Systemen u  Entwicklungssystem u  Produktiv u  Qualitätssicherung findet im Entwicklungs-System statt u  Probleme beim Testen ob Release im Produktiv-System lauffähig ist
  • 9.
    1-Systemlandschaft u  Empfehlen wirnicht! u  Keine sicherere Weiterentwicklung möglich u  Stop des Produktiv-Betriebs u  Entwicklung u  Test-Phase
  • 10.
    Entwicklungs(Sandbox)-System u  unabhängiges Systemvom Produktiv und QS-System u  Entwicklung eines neuen Releases u  Fehlerbehebung u  Neue Features u  Änderungen u  Hier wird nur entwickelt u  Testen aller Änderungen (Validierung und Verifikation) u  Transport des Releases erst nach Validierung und Verifikation u  Programmierfehler und Systemausfälle betreffen nicht das Produktivsystem
  • 11.
    Test-System u  Kann eineVirtuelle Maschiene sein u  Unabhängig von anderen Systemen u  Sollte identisch mit der Produktivumgebung sein u  Kann auch virtuell sein u  System nur zum Testen für interne Test-Benutzer, nicht für Key-User
  • 12.
    Stage/QS-System u  Kopie vomProduktiv-System (nachstellen des Produktiv-System) u  Software u  Datenbank u  Hardware u  So gut es geht das Test vor dem Produktiv-System u  Test von neuer Version u  Test wird von Kunden (Key-User) und Dienstleister vorgenommen u  Endkontrolle/Funktionstest
  • 13.
    Produktiv-System u  Produktiv-System –Finaler Punkt wo alles funktionieren muss u  Nur Live/Produktiv-Daten u  Nur Versionen die davor ausführlich getestet wurden u  Gründliches ausführen von Unit-Tests, Lasttests,...
  • 14.
    Rolling Back u  Oftpassieren Dinge die nicht geplant sind u  Zurückrollen zu einem beliebigen alten Software stand u  Im Fehlerfall
  • 15.
    Berechtigung u  QS-System u  AlleEntwickler sollten hier neue Releases deployen dürfen u  Produktiv-System u  Nur Zugriff für eine kleine Gruppe
  • 16.
    Training-System u  Schulung vonMitarbeitern u  Gleicher Kenntnisstand bei allen Mitarbeitern u  Kopie von Produktivdaten u  Gleicher oder neuerer Release-Stand wie Produktiv-System u  Geg. kleiner Schulungs-Datenbestand u  Schulungssystem steht i.d.R. laufend zur Verfügung u  Lernen / Testen ohne Produktiv-Daten zu beschädigen
  • 17.