Case Study, Guideline und Tools zum Thema Git, Jenkins und lokale Entwicklungsumgebung. Ich gebe eine Einführung wie die Firma die Medienagenten oHG einen Deploymentprozess eingeführt haben inklusive aller Stolpersteine
2. 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)
3. 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
4. Christian Händel
Certi!ed TYPO3 Integrator
Freigabe!
Go!
Design!
Deployment
Deployment
?
Live
Kunde
PM
Grafik
Versionierung
(SVN)
5. 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
7. Christian Händel
Certi!ed TYPO3 Integrator
Freigabe!
Go!
Design!
Deployment
Deployment
aah
Repository
(SVN/Git)
Deployment
Live
Test
8. 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
10. 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
11. 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
12. 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/
16. 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
18. 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
20. 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/
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
30. 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
31. 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)
33. 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
35. 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
36. 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
37. 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
39. Christian Händel
Certi!ed TYPO3 Integrator
Was ist anders?
• Sehr wenige Mitarbeiter (1-2)
• Auf bestimmte Technologien beschränkt
• Einrichtungsaufwand ist nicht gerechtfertigt
40. 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/