Web-Deployment

Preview:

DESCRIPTION

Deployment im Webbereich

Citation preview

Seite 1 / 25Deployment

Deployment

Seite 2 / 25Deployment

Versionskontrolle

Seite 3 / 25Deployment

Verteilte Versionskontrollsysteme

Seite 4 / 25Deployment

Seite 5 / 25Deployment

Zusammenfassung

VersionskontrolleWir verwenden bei der Entwicklung das dezentralisierte Versionskontrollsystem Git.Eine Versionsverwaltung dient zur Erfassung von Änderungen an Dokumenten oder Dateien verwendet wird. Alle Versionen werden in einem Archiv mit Zeitstempel und Benutzerkennung gesichert und können später wiederhergestellt werden.

Verteilte VersionskontrollsystemeDezentralisierte oder verteilte Versionskontrollsysteme haben gegenüber zentralisierten Systemen (CVS, Subversion) den Vorteil, dass sie unabhängig sind von einem Ausfall der zentralen Stelle, welche die Historie der Codeentwicklung verwaltet.

GitGit wird bei namhaften Open Source Projekten eingesetzt, wie zum Beispiel Linux, Drupal und TYPO3.

DeploymentDeployment oder Softwareverteilung nennt man Prozesse zur Installation von Software auf Anwender-PCs oder Servern. Ziel ist die automatische Installation, Konfiguration und Wartung mit geringem Aufwand.Unser Deploymentsystem ist dreistufig aufgebaut:

Seite 6 / 25Deployment

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

WEB SERVER

Seite 7 / 25Deployment

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

Seite 8 / 25Deployment

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

Seite 9 / 25Deployment

SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER

SERVER

1 Development

2 Release

3 Master

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

GIT bare repository

Seite 10 / 25Deployment

SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER

Entwickler PC

SERVER

Entwickler PC

Entwickler PC

1 Development

2 Release

3 Master

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

GIT bare repository

Seite 11 / 25Deployment

SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER

Manuelles Auslösen:

COMMIT, PUSH

Entwickler PC

SERVER

Entwickler PC

Entwickler PC

1 Development

2 Release

3 Master

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

GIT bare repository

Seite 12 / 25Deployment

SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER

Manuelles Auslösen:

COMMIT, PUSH

Entwickler PC

SERVER

Entwickler PC

Entwickler PC

1 Development

2 Release

3 Master

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

Post-receiveHook

GIT bare repository

Seite 13 / 25Deployment

SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER

Manuelles Auslösen:

COMMIT, PUSH

Entwickler PC

SERVER

Entwickler PC

Entwickler PC

1 Development

2 Release

3 Master

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

subdomains:

release.example.com

development.example.com

Post-receiveHook

Post-receiveHook

GIT bare repository

Seite 14 / 25Deployment

SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER

Manuelles Auslösen:

COMMIT, PUSH

Entwickler PC

SERVER

Entwickler PC

Entwickler PC

1 Development

2 Release

3 Master

Lokal

SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SERVER SER-VER SERVER SERVER SERVER SERVER SERVER SERVER

GIT bare repository

Development

Release

Master

WEB SERVER

subdomains:

Master:example.com

release.example.com

development.example.com

Post-receiveHook

Post-receiveHook

GIT bare repository

DANGER !

Seite 15 / 25Deployment

Drei-Ordner-Deploymentsystem„Lecherbauer´sches Karussell“

Seite 16 / 25Deployment

Drei-Ordner-Deploymentsystem

next

prev

prod

Seite 17 / 25Deployment

Drei-Ordner-Deploymentsystem

Unser Drei-Ordner-Deploymentsystem bietet folgende Vorteile:

1. Zeitersparnis beim Deployment2. Konsistenz3. Continuous Integration (ohne Unterbruch des Anwendungsbetriebs)

Letzteres wird durch eine Aufteilung der Branches in drei Unterordner erreicht. Der Ordner next wird erstellt und per Git mit der neusten Version befüllt. Der aktuelle Stand wird in den Ordner prev verschoben und der ordner next in prod umbenannt. Somit haben wir sehr kurze Umschaltzeiten; auch im Falle eines Reverts auf die letzte Version.

Seite 18 / 25Deployment

Drei-Ordner-Deploymentsystem

(aktuelle Version)

(vorhergehende Version)

Ausgangszustand

prod

prev

Seite 19 / 25Deployment

Drei-Ordner-Deploymentsystem

1. next wird beim deployen neu erstellt. Der jeweilige Branch wird darin ausgecheckt.

(aktuelle Version)

(vorhergehende Version)

next

prod

prev

Development

Release

Master

Check-out der Branches aus dem bare repository

(neue Version)

Ausgangszustand

prod

prev

Seite 20 / 25Deployment

Drei-Ordner-Deploymentsystem

2. prev wird gelöscht

prev

prod

X next

Seite 21 / 25Deployment

Drei-Ordner-Deploymentsystem

2. prev wird gelöscht 3. prod wird in prev umbenannt

prev

prod

nextX

prod

prev next

Seite 22 / 25Deployment

Drei-Ordner-Deploymentsystem

4. next wird in prod umbenannt

next

prod

prev

Seite 23 / 25Deployment

Drei-Ordner-Deploymentsystem

Endzustand

prod

prev

(aktuelle Version)

(vorhergehende Version)

4. next wird in prod umbenannt

next

prod

prev

Seite 24 / 25Deployment

Vielen Dank für Ihre Aufmerksamkeit

Seite 25 / 25Deployment

Bildquellen

http://www.flickr.com/photos/63246437@N00/231271035http://www.flickr.com/photos/23651004@N06/9058945095http://www.flickr.com/photos/pewag66/8221901360http://www.flickr.com/photos/reinvented/5586120369http://www.flickr.com/photos/26546578@N06/4193814990http://www.flickr.com/photos/79200003@N05

Recommended