Upload
comsolit-ag
View
564
Download
1
Embed Size (px)
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