Zu jedem Webprojekt gehört neben den Entscheidungen zur Entwicklung, Hosting und Design auch Entscheidungen für den Deployment Prozess. Der Deployment Prozess befasst sich mit der Initialisierung, Planung, Implementierung und dem GoLive (Rollout) von IT Projekten, so wie sie die IT Abteilung geplant und das Team entwickelt hat.

Um für den Deployment Prozess zu einem Projekt die richtigen Ziele definieren zu können, stelle ich nachfolgend eine Liste mit Fragen hierzu bereit. Oft wird erst aufgrund auftretender Schwierigkeiten in einem bereits existierenden Projekt die Entscheidung getroffen, dass ein Deployment Konzept notwendig ist. Der Aufwand in einem laufenden Projekt den Deployment Prozess umzustellen, ist jedoch meist deutlicher höher, als wenn man von Anfang an (also beim Start eines neuen Projekts) ein gutes Deployment Konzept ausgearbeitet hätte.

Bei der Beantwortung der Fragen ist es wichtig zu beachten, dass die Antwort auch mit dem Budget und den zur Verfügung stehenden Ressourcen zusammenpassen. Alle Fragen einfach mit “Ja” zu beantworten, wird nicht das gewünschte Ergebnis liefern.

Fragekatalog zum Deployment Prozess

  • Wie wird der Sourcecode verwaltet?
  • Welche Systemumgebungen sollen eingesetzt werden (Testing Umgebung, Staging Umgebung, Produktiv Umgebung)?
  • Sollen automatisierte Tests durchgeführt werden?
  • Wenn automatisierte Tests durchgeführt werden, welche Art von Tests kommen zum Einsatz?
  • Werden Code Metriken zur Qualitätseinstufen eingesetzt?
  • Wer ist verantwortlich für die Einhaltung des Deployment Prozesses?
  • Ist das Deployment bei der “Definition of done” einer Aufgabe berücksichtigt (sofern Scrum eingesetzt wird)?
  • Hat der Deployment Manager das Mandat, um für die Einhaltung des Prozesses zu sorgen?
  • Wurde der Deployment Prozess dokumentiert?
  • Welche zeitlichen Abhängigkeiten müssen eingehalten werden? (z.B. Wartungsfenster, Zyklen für Bereitstellung neuer Inhalte durch Rollout)
  • Welche Software kommt zum Einsatz? (Versionierung, Konfigurationsmanagement, CI, Build Tool)
  • Welche Test-Strategie kommt zum Einsatz?
  • Aus wie vielen Stages wird die Deployment Pipeline bestehen? (z.B. Commit-Stage, AAT = Automated Acceptance Tests, UAT = User Acceptance Tests, Productive)
  • Welche Release-Strategie kommt zum Einsatz?
  • Steht die benötige Infrastruktur bereit?
  • Wurde das Projektteam für den festgelegten Deployment Prozess geschult? (Entwickler, Designer, Administratoren, Projektmanager, Kunde?)
  • Steht das Budget für das angestrebte Deployment Konzept bereit?
  • Wer seht das Deployment Konzept um? (Build Skripte, Server Instanzen, CI Jobs)

Ziele für die Einführung von Deployment Prozessen

Hier führe ich beispielhaft Ziele auf, die für das Einführen oder die Anpassung eines Deployment Prozess sprechen.

  • Verbesserung der Transparenz
  • Automatisierung eines komplexen Projektes, welches auf verschiedenen Systemumgebungen ausgerollt werden muss
  • Qualitätsverbesserung durch automatisierte Tests
  • Qualitätsverbesserung durch Automatisierung (da manuelle Arbeitsschritte eine häufige Ursache für Fehler darstellen)
  • automatisiertes Deployment für eine Anzahl an gleich aufgebauten Projekten bzw. die Systemumgebung sieht bei den Projekten gleich aus
  • Bessere Skalierbarkeit durch Arbeitsteilung (Admin / Entwickler / Tester / Manager)
  • Minimierung anfallende Tätigkeiten für Administratoren an Systemumgebung
  • Minimierung anfallende Tätigkeiten für Entwickler an Systemumgebung
  • Beschleunigung des Ausrollen-Vorgangs
  • Testmöglichkeit des Ausroll-Vorgangs (Tests zum Deployment und nicht nur zum Projekt)

Bevor ein Deployment Konzept erstellt wird, ist festzulegen, welche Ziele damit verfolgt werden. Um die Ziele zu erreichen benötigt man je nach angestrebten Ziel Budget, Know-How und Zeit. Diese drei Faktoren schränken das Ziel auch entsprechend ein.

Sind am Projekt mehrere Unternehmen beteiligt, oder bei großen Unternehmen mehrere Abteilungen, müssen in einem gemeinsamen Meeting die Ziele und Anforderungen für das Deployment besprochen werden. Da das Deployment ein übergreifender Bereich ist, macht es meist wenig Sinn, mehrere oder unterschiedliche Lösungen für einzelne Teilbereiche des Projektes festzulegen. Das sogenannte “Silo-Denken” verhindert die Transparenz im Projekt und bringt erhebliche Komplexität mit sich. Die Ziele bzw. die Anforderungen für das Deployment sind deshalb unbedingt vor der Erstellung des Deployment Konzeptes zu finalisieren, wodurch die Kosten minimiert werden und auch keine unnötige Zeit für das Deployment verbrannt wird.

Das AlphaNodes Team aus München besteht aus langjährig erfahrenen Deployment Experten und steht bei Fragen zum Deployment gerne zur Verfügung.

Aktualisiert: