25
Seite 1 / 25 Deployment Deployment

Web-Deployment

Embed Size (px)

DESCRIPTION

Deployment im Webbereich

Citation preview

Page 1: Web-Deployment

Seite 1 / 25Deployment

Deployment

Page 2: Web-Deployment

Seite 2 / 25Deployment

Versionskontrolle

Page 3: Web-Deployment

Seite 3 / 25Deployment

Verteilte Versionskontrollsysteme

Page 4: Web-Deployment

Seite 4 / 25Deployment

Page 5: Web-Deployment

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:

Page 6: Web-Deployment

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

Page 7: Web-Deployment

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

Page 8: Web-Deployment

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

Page 9: Web-Deployment

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

Page 10: Web-Deployment

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

Page 11: Web-Deployment

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

Page 12: Web-Deployment

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

Page 13: Web-Deployment

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

Page 14: Web-Deployment

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 !

Page 15: Web-Deployment

Seite 15 / 25Deployment

Drei-Ordner-Deploymentsystem„Lecherbauer´sches Karussell“

Page 16: Web-Deployment

Seite 16 / 25Deployment

Drei-Ordner-Deploymentsystem

next

prev

prod

Page 17: Web-Deployment

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.

Page 18: Web-Deployment

Seite 18 / 25Deployment

Drei-Ordner-Deploymentsystem

(aktuelle Version)

(vorhergehende Version)

Ausgangszustand

prod

prev

Page 19: Web-Deployment

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

Page 20: Web-Deployment

Seite 20 / 25Deployment

Drei-Ordner-Deploymentsystem

2. prev wird gelöscht

prev

prod

X next

Page 21: Web-Deployment

Seite 21 / 25Deployment

Drei-Ordner-Deploymentsystem

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

prev

prod

nextX

prod

prev next

Page 22: Web-Deployment

Seite 22 / 25Deployment

Drei-Ordner-Deploymentsystem

4. next wird in prod umbenannt

next

prod

prev

Page 23: Web-Deployment

Seite 23 / 25Deployment

Drei-Ordner-Deploymentsystem

Endzustand

prod

prev

(aktuelle Version)

(vorhergehende Version)

4. next wird in prod umbenannt

next

prod

prev

Page 24: Web-Deployment

Seite 24 / 25Deployment

Vielen Dank für Ihre Aufmerksamkeit

Page 25: Web-Deployment

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