Christian Händel
Certi!ed TYPO3 Integrator
Deployment für Agenturen
Case Study, Guideline und Tools
Christian Händel
Certi!ed TYPO3 Integrator
Case Study: die medienagenten
• Agentur mit 13 Mitarbeitern, 3 Geschäftsführer
• Spezialisiert auf die Weinbranche und den Pflegebereich
• Entwicklungsabteilung mit 4 Entwicklern (1 Azubi)
• Grafikabteilung mit 7 Grafikern (1 Azubi)
• Web-Projekte aus drei Kategorien: Statische Webseiten,
CMS gestützte Webseiten (TYPO3), Online-Shops (Magento)
Christian Händel
Certi!ed TYPO3 Integrator
Die Ausgangssituation Beginn 2012
• Wenig Standards (TS-Framework)
• Versionierung inHouse
• Zu diesem Zeitpunkt hohe Fluktuation im Entwickler-Team
• Hoher Drang nach Innovation
• Individuelle lokale Entwicklungsumgebungen
Christian Händel
Certi!ed TYPO3 Integrator
Freigabe!
Go!
Design!
Deployment
Deployment
?
Live
Kunde
PM
Grafik
Versionierung
(SVN)
Christian Händel
Certi!ed TYPO3 Integrator
Nachteile
• (-) Wenn Entwickler ausfällt, steht das ganze Projekt
• (-) Kunde bleibt die ganze Zeit ratlos
• (-) Schwere Zusammenarbeit im Team
• (--) Fehler werden erst im Live-System sichtbar
• (--) Alle Zwischenschritte manuell
• (---) Hohe Belastung von Zeit und Technik
Christian Händel
Certi!ed TYPO3 Integrator
Der Aufräumprozess beginnt
Christian Händel
Certi!ed TYPO3 Integrator
Freigabe!
Go!
Design!
Deployment
Deployment
aah
Repository
(SVN/Git)
Deployment
Live
Test
Christian Händel
Certi!ed TYPO3 Integrator
Vorteile
• Fehler werden direkt auf dem Testsystem sichtbar
• Das Live-System läuft immer auf einer stabilen Version
• Automatisierte Prozesse ersetzen manuelle und damit
fehleranfällige Teil-Schritte
Christian Händel
Certi!ed TYPO3 Integrator
Schritt 1: Umstellung von SVN auf Git
Christian Händel
Certi!ed TYPO3 Integrator
Warum?
• Performanter: Datenübertragung erfolgt schneller, da nur die
tatsächlichen Änderungen übertragen werden
• Einfacher zu bedienen: es gibt mehr gute Tools, Befehle auf
der Kommandozeile sind intuitiver
• Breitere Community: hohe Bekanntheit durch Portale wie
github und bitbucket
Christian Händel
Certi!ed TYPO3 Integrator
Die lokale Oberfläche
• Kommandozeile?: Hilfreich aber keine ordentliche Visuelle
Darstellung
• GUI mit intuitiver Steuerung
gitboxapp.com/ www.git-tower.com/ www.atlassian.com/software/sourcetree
Christian Händel
Certi!ed TYPO3 Integrator
Die Serverumgebung
• Serverumgebung mit ansprechender GUI
• Geringe Investitionskosten
• InHouse installierbar
gitlab.org/ gitorious.org/
https://enterprise.github.com/
Christian Händel
Certi!ed TYPO3 Integrator
Schritt2: ein einheitlicher Editor
Christian Händel
Certi!ed TYPO3 Integrator
• Einheitliches Interface für alle Arbeitsplätze
• Schnellere Bearbeitung ohne unnötigen Verbrauch von
Systemressourcen
• Standardisierung
Warum?
www.sublimetext.com/ www.jetbrains.com/idea/ panic.com/coda/ www.aptana.com/
Christian Händel
Certi!ed TYPO3 Integrator
Schritt 3: die Entwicklungsumgebung
Christian Händel
Certi!ed TYPO3 Integrator
Die richtige Software
• Einheitlicher Standard für alle Entwickler
• Mit wenigen Klicks zu installieren
• Erweiterbar über verschiedenste Module
www.macports.org/ www.mamp.info/de/ www.eosgarden.com/en/products
Christian Händel
Certi!ed TYPO3 Integrator
Schritt 4: die Testumgebung
Christian Händel
Certi!ed TYPO3 Integrator
Bedingungen
• Schnelle Lösung mit viel Performance
• Alle gängigen Technologien müssen unterstützt werden
• Preis-/Leistungsverhältnis
Christian Händel
Certi!ed TYPO3 Integrator
Schritt 5: das Deployment
Christian Händel
Certi!ed TYPO3 Integrator
Die Software
• Einfach zu bedienende Oberfläche, skalier- und beliebig
erweiterbar
• Zeitliche Steuerung der Automatismen
• Alle Methoden müssen unterstützt werden
gitlab.org/ jenkins-ci.org/
Christian Händel
Certi!ed TYPO3 Integrator
Schritt 6: die Methoden
Christian Händel
Certi!ed TYPO3 Integrator
FTP vol. 1 - „Push-all at Live“
• Überträgt die kompletten Git-Ressourcen in den Zielordner
• (+) Plugin in Jenkins vorhanden
• (-) Überflüssiges wird nicht gelöscht
• (--) Webseite kann z.T. nicht erreichbar sein
• (--) Fehlerkorrektur sehr schwierig
Christian Händel
Certi!ed TYPO3 Integrator
SSH vol. 1 - „Put-all to Live“
• Überträgt die kompletten Git-Ressourcen in den Zielordner
• (+) Plugin in Jenkins vorhanden
• (-) Überflüssiges wird nicht gelöscht
• (--) Webseite kann z.T. nicht erreichbar sein
• (--) Fehlerkorrektur sehr schwierig
Christian Händel
Certi!ed TYPO3 Integrator
Git: „pull-at-Live“
• (-) Benötigt ssh-Zugang und git-Unterstützung auf dem
Zielsystem
• Führt auf dem Zielserver einen git pull aus und
aktualisiert so die Daten
• (+) extrem performant (je nach Anbindung an den git-Server)
• (+) löscht und aktualisiert nur die Änderungen
Christian Händel
Certi!ed TYPO3 Integrator
SSH vol. 2 : „rsync“
• Führt einen rsync-Befehl aus
• (+) Löscht nicht mehr vorhandene Daten
• (+) Aktualisiert nur die Änderungen
• (-) An Befehlsvorgabe auf dem Ziel-Server gebunden
• (--) Kein Plugin für Jenkins vorhanden
Christian Händel
Certi!ed TYPO3 Integrator
FTP vol. 2 - „full-backup“ - der Ablauf
• Erstellt per FTP einen Ordner next
• Pusht alle Daten in den Ordner next
• Benennt den Ordner production in prev um (löscht ggf. prev)
• Benennt den Ordner next in production um
Christian Händel
Certi!ed TYPO3 Integrator
FTP vol. 2 - „full-backup“ - Vor/Nachteile
• (++) Kaum spürbare Ausfallzeit
• (+) Volles Backup vorhanden auf dem Live-System
• (-) Doppelter Speicherplatz
• (-) An Befehlsvorgabe auf dem Ziel-Server gebunden
• (--) Langsame Übertragungen
Christian Händel
Certi!ed TYPO3 Integrator
Schritt 6: die Prozesse
Christian Händel
Certi!ed TYPO3 Integrator
Repository
(Git)
Deployment
Live
Test
Christian Händel
Certi!ed TYPO3 Integrator
einheitliche Arbeitsweise schaffen
• Ordnerstrukturen in Projektstandards integrieren
• Struktur für branches festlegen
• Guidelines für die einzelnen Schritte festhalten
• Abläufe so kurz wie möglich
Christian Händel
Certi!ed TYPO3 Integrator
Fazit
• Ermöglicht viele Automatisierungen die Arbeit abnimmt und
die Zusammenarbeit gerade in regional verteilten Teams
optimiert
• Deployment und Einrichtung muss kaufmännisch und von der
Seite des Projektmanagement mit eingeplant werden
• Relationale Datenbanken bleiben beim Deployment ein
erhebliches Problem und erschweren den gesamten Prozess
(Eigenentwicklung)
Christian Händel
Certi!ed TYPO3 Integrator
Alternative 1: „big-Player“
Christian Händel
Certi!ed TYPO3 Integrator
Was ist anders?
• Mehr Mitarbeiter (z.T. in verschiedenen Standorten)
• Verschiedenste Technologien
• Größere Fluktuation innerhalb des Projektes
Christian Händel
Certi!ed TYPO3 Integrator
Vagrant Chef
Christian Händel
Certi!ed TYPO3 Integrator
Vagrant
• Virtualisierungssoftware
• Ausführbar in der Konsole und damit auf allen bekannten
Systemen
• Arbeitet mit VirtualBox
• (+) Standardisiertes schnelles Arbeiten durch Vorlagen
• (-) Benötigt große Ressourcen auf dem Lokalsystem
Christian Händel
Certi!ed TYPO3 Integrator
Chef
• Automationssoftware zur Standardisierten Ausführung von
Befehlen (Rezepte und Kochbücher)
• Ausführbar in der Konsole und damit auf allen bekannten
Systemen
• Basiert auf Ruby
• (+) Vorlagen reduzieren Konfigurationsaufwand auf ein
Minimum
Christian Händel
Certi!ed TYPO3 Integrator
Standardisierter Ablauf
• Entwickler lädt sich eine Minimalkonfiguration herunter
(im Idealfall ebenfalls im Repository gespeichert)
• Beim 1. Ausführen wird Chef aktiv und richtet die Installation
auf der VirtualBox ein
• Über den Startbefehl kann das System neu initialisiert werden
und arbeitet so mit den aktuellen Daten aus den Repositories
• Über die hosts-Datei wird die VirtualBox zugänglich gemacht
und kann so auch bearbeitet werden
Christian Händel
Certi!ed TYPO3 Integrator
Alternative 2: „small-Player“
Christian Händel
Certi!ed TYPO3 Integrator
Was ist anders?
• Sehr wenige Mitarbeiter (1-2)
• Auf bestimmte Technologien beschränkt
• Einrichtungsaufwand ist nicht gerechtfertigt
Christian Händel
Certi!ed TYPO3 Integrator
Die Lösung: beanstalk
• (+) Online-Portal inklusive Git
• (+) Deployment-Prozesse inklusive:
• (++) Methoden sehr ausgereift (FTP, SSH)
• (-) Kein kostenfreier Service
http://beanstalkapp.com/

Deployment

  • 1.
    Christian Händel Certi!ed TYPO3Integrator Deployment für Agenturen Case Study, Guideline und Tools
  • 2.
    Christian Händel Certi!ed TYPO3Integrator Case Study: die medienagenten • Agentur mit 13 Mitarbeitern, 3 Geschäftsführer • Spezialisiert auf die Weinbranche und den Pflegebereich • Entwicklungsabteilung mit 4 Entwicklern (1 Azubi) • Grafikabteilung mit 7 Grafikern (1 Azubi) • Web-Projekte aus drei Kategorien: Statische Webseiten, CMS gestützte Webseiten (TYPO3), Online-Shops (Magento)
  • 3.
    Christian Händel Certi!ed TYPO3Integrator Die Ausgangssituation Beginn 2012 • Wenig Standards (TS-Framework) • Versionierung inHouse • Zu diesem Zeitpunkt hohe Fluktuation im Entwickler-Team • Hoher Drang nach Innovation • Individuelle lokale Entwicklungsumgebungen
  • 4.
    Christian Händel Certi!ed TYPO3Integrator Freigabe! Go! Design! Deployment Deployment ? Live Kunde PM Grafik Versionierung (SVN)
  • 5.
    Christian Händel Certi!ed TYPO3Integrator Nachteile • (-) Wenn Entwickler ausfällt, steht das ganze Projekt • (-) Kunde bleibt die ganze Zeit ratlos • (-) Schwere Zusammenarbeit im Team • (--) Fehler werden erst im Live-System sichtbar • (--) Alle Zwischenschritte manuell • (---) Hohe Belastung von Zeit und Technik
  • 6.
    Christian Händel Certi!ed TYPO3Integrator Der Aufräumprozess beginnt
  • 7.
    Christian Händel Certi!ed TYPO3Integrator Freigabe! Go! Design! Deployment Deployment aah Repository (SVN/Git) Deployment Live Test
  • 8.
    Christian Händel Certi!ed TYPO3Integrator Vorteile • Fehler werden direkt auf dem Testsystem sichtbar • Das Live-System läuft immer auf einer stabilen Version • Automatisierte Prozesse ersetzen manuelle und damit fehleranfällige Teil-Schritte
  • 9.
    Christian Händel Certi!ed TYPO3Integrator Schritt 1: Umstellung von SVN auf Git
  • 10.
    Christian Händel Certi!ed TYPO3Integrator Warum? • Performanter: Datenübertragung erfolgt schneller, da nur die tatsächlichen Änderungen übertragen werden • Einfacher zu bedienen: es gibt mehr gute Tools, Befehle auf der Kommandozeile sind intuitiver • Breitere Community: hohe Bekanntheit durch Portale wie github und bitbucket
  • 11.
    Christian Händel Certi!ed TYPO3Integrator Die lokale Oberfläche • Kommandozeile?: Hilfreich aber keine ordentliche Visuelle Darstellung • GUI mit intuitiver Steuerung gitboxapp.com/ www.git-tower.com/ www.atlassian.com/software/sourcetree
  • 12.
    Christian Händel Certi!ed TYPO3Integrator Die Serverumgebung • Serverumgebung mit ansprechender GUI • Geringe Investitionskosten • InHouse installierbar gitlab.org/ gitorious.org/ https://enterprise.github.com/
  • 13.
    Christian Händel Certi!ed TYPO3Integrator Schritt2: ein einheitlicher Editor
  • 14.
    Christian Händel Certi!ed TYPO3Integrator • Einheitliches Interface für alle Arbeitsplätze • Schnellere Bearbeitung ohne unnötigen Verbrauch von Systemressourcen • Standardisierung Warum? www.sublimetext.com/ www.jetbrains.com/idea/ panic.com/coda/ www.aptana.com/
  • 15.
    Christian Händel Certi!ed TYPO3Integrator Schritt 3: die Entwicklungsumgebung
  • 16.
    Christian Händel Certi!ed TYPO3Integrator Die richtige Software • Einheitlicher Standard für alle Entwickler • Mit wenigen Klicks zu installieren • Erweiterbar über verschiedenste Module www.macports.org/ www.mamp.info/de/ www.eosgarden.com/en/products
  • 17.
    Christian Händel Certi!ed TYPO3Integrator Schritt 4: die Testumgebung
  • 18.
    Christian Händel Certi!ed TYPO3Integrator Bedingungen • Schnelle Lösung mit viel Performance • Alle gängigen Technologien müssen unterstützt werden • Preis-/Leistungsverhältnis
  • 19.
    Christian Händel Certi!ed TYPO3Integrator Schritt 5: das Deployment
  • 20.
    Christian Händel Certi!ed TYPO3Integrator Die Software • Einfach zu bedienende Oberfläche, skalier- und beliebig erweiterbar • Zeitliche Steuerung der Automatismen • Alle Methoden müssen unterstützt werden gitlab.org/ jenkins-ci.org/
  • 21.
    Christian Händel Certi!ed TYPO3Integrator Schritt 6: die Methoden
  • 22.
    Christian Händel Certi!ed TYPO3Integrator FTP vol. 1 - „Push-all at Live“ • Überträgt die kompletten Git-Ressourcen in den Zielordner • (+) Plugin in Jenkins vorhanden • (-) Überflüssiges wird nicht gelöscht • (--) Webseite kann z.T. nicht erreichbar sein • (--) Fehlerkorrektur sehr schwierig
  • 23.
    Christian Händel Certi!ed TYPO3Integrator SSH vol. 1 - „Put-all to Live“ • Überträgt die kompletten Git-Ressourcen in den Zielordner • (+) Plugin in Jenkins vorhanden • (-) Überflüssiges wird nicht gelöscht • (--) Webseite kann z.T. nicht erreichbar sein • (--) Fehlerkorrektur sehr schwierig
  • 24.
    Christian Händel Certi!ed TYPO3Integrator Git: „pull-at-Live“ • (-) Benötigt ssh-Zugang und git-Unterstützung auf dem Zielsystem • Führt auf dem Zielserver einen git pull aus und aktualisiert so die Daten • (+) extrem performant (je nach Anbindung an den git-Server) • (+) löscht und aktualisiert nur die Änderungen
  • 25.
    Christian Händel Certi!ed TYPO3Integrator SSH vol. 2 : „rsync“ • Führt einen rsync-Befehl aus • (+) Löscht nicht mehr vorhandene Daten • (+) Aktualisiert nur die Änderungen • (-) An Befehlsvorgabe auf dem Ziel-Server gebunden • (--) Kein Plugin für Jenkins vorhanden
  • 26.
    Christian Händel Certi!ed TYPO3Integrator FTP vol. 2 - „full-backup“ - der Ablauf • Erstellt per FTP einen Ordner next • Pusht alle Daten in den Ordner next • Benennt den Ordner production in prev um (löscht ggf. prev) • Benennt den Ordner next in production um
  • 27.
    Christian Händel Certi!ed TYPO3Integrator FTP vol. 2 - „full-backup“ - Vor/Nachteile • (++) Kaum spürbare Ausfallzeit • (+) Volles Backup vorhanden auf dem Live-System • (-) Doppelter Speicherplatz • (-) An Befehlsvorgabe auf dem Ziel-Server gebunden • (--) Langsame Übertragungen
  • 28.
    Christian Händel Certi!ed TYPO3Integrator Schritt 6: die Prozesse
  • 29.
    Christian Händel Certi!ed TYPO3Integrator Repository (Git) Deployment Live Test
  • 30.
    Christian Händel Certi!ed TYPO3Integrator einheitliche Arbeitsweise schaffen • Ordnerstrukturen in Projektstandards integrieren • Struktur für branches festlegen • Guidelines für die einzelnen Schritte festhalten • Abläufe so kurz wie möglich
  • 31.
    Christian Händel Certi!ed TYPO3Integrator Fazit • Ermöglicht viele Automatisierungen die Arbeit abnimmt und die Zusammenarbeit gerade in regional verteilten Teams optimiert • Deployment und Einrichtung muss kaufmännisch und von der Seite des Projektmanagement mit eingeplant werden • Relationale Datenbanken bleiben beim Deployment ein erhebliches Problem und erschweren den gesamten Prozess (Eigenentwicklung)
  • 32.
    Christian Händel Certi!ed TYPO3Integrator Alternative 1: „big-Player“
  • 33.
    Christian Händel Certi!ed TYPO3Integrator Was ist anders? • Mehr Mitarbeiter (z.T. in verschiedenen Standorten) • Verschiedenste Technologien • Größere Fluktuation innerhalb des Projektes
  • 34.
    Christian Händel Certi!ed TYPO3Integrator Vagrant Chef
  • 35.
    Christian Händel Certi!ed TYPO3Integrator Vagrant • Virtualisierungssoftware • Ausführbar in der Konsole und damit auf allen bekannten Systemen • Arbeitet mit VirtualBox • (+) Standardisiertes schnelles Arbeiten durch Vorlagen • (-) Benötigt große Ressourcen auf dem Lokalsystem
  • 36.
    Christian Händel Certi!ed TYPO3Integrator Chef • Automationssoftware zur Standardisierten Ausführung von Befehlen (Rezepte und Kochbücher) • Ausführbar in der Konsole und damit auf allen bekannten Systemen • Basiert auf Ruby • (+) Vorlagen reduzieren Konfigurationsaufwand auf ein Minimum
  • 37.
    Christian Händel Certi!ed TYPO3Integrator Standardisierter Ablauf • Entwickler lädt sich eine Minimalkonfiguration herunter (im Idealfall ebenfalls im Repository gespeichert) • Beim 1. Ausführen wird Chef aktiv und richtet die Installation auf der VirtualBox ein • Über den Startbefehl kann das System neu initialisiert werden und arbeitet so mit den aktuellen Daten aus den Repositories • Über die hosts-Datei wird die VirtualBox zugänglich gemacht und kann so auch bearbeitet werden
  • 38.
    Christian Händel Certi!ed TYPO3Integrator Alternative 2: „small-Player“
  • 39.
    Christian Händel Certi!ed TYPO3Integrator Was ist anders? • Sehr wenige Mitarbeiter (1-2) • Auf bestimmte Technologien beschränkt • Einrichtungsaufwand ist nicht gerechtfertigt
  • 40.
    Christian Händel Certi!ed TYPO3Integrator Die Lösung: beanstalk • (+) Online-Portal inklusive Git • (+) Deployment-Prozesse inklusive: • (++) Methoden sehr ausgereift (FTP, SSH) • (-) Kein kostenfreier Service http://beanstalkapp.com/