Web Deployment Engen - 02.10.2014 - t3see Lars Messmer - comsolit AG Deplyoment t3see Version: 1 Seite 1 / 16 comsolit AG •agile / Scrum •Gerrit / git / Jenkins •Webbasierte Software •Websites, Shops, Internet Portale Deplyoment t3see Version: 1 Seite 2 / 16 Wie arbeiten wir? •Entwickler PC •Git-Versionverwaltung •Agentur-Server •Kunden-Server •2 Wochen Sprints Deplyoment t3see Version: 1 Seite 3 / 16 Früher •Ein Release war ein Ereignis •Launchplan mit min. 10 Punkten •½ Tag 2 Entwickler •Freitag wollten wir nicht mehr launchen •etwas ging immer schief ;-( •nach erfolgreichem Release > Party Deplyoment t3see Version: 1 Seite 4 / 16 Heute •ein Befehl macht den Launch •2 Release pro Tag / Projekt •Release ohne Fehler •Zeiteinsparung ist immens •leider keine Releasepartys mehr Deplyoment t3see Version: 1 Seite 5 / 16 Wieso Deployment? •agile Entwicklung benötigt eine schnelle und einfache Veröffentlichung •sichere und vollständige Release •kurze Unterbrüche •Staging •build Step •nachvollziehbare History/Dokumentation Deplyoment t3see Version: 1 Seite 6 / 16 so oft wie möglich! •schnelles Feedback •effizientes Bugfixen •Integration/Migration kleiner halten •weniger grosse changes •Transparenz für den Kunden •update release Deplyoment t3see Version: 1 Seite 7 / 16 continuous integration •ist unser Ziel •Gerrit / Jenkins Workflow haben wir •aber leider zu wenig Testabdeckung Deplyoment t3see Version: 1 Seite 8 / 16 Unser Deployment •Open-Source (https://github.com/comsolit/comsolit_deploy) •läuft auf dem Web-Server (Linux) •benötigt ein git repository •benötigt ssh •Konfiguration im Projekt Deplyoment t3see Version: 1 Seite 9 / 16 Die Power-Features! •continous integration fähig •läuft auf jedem webserver •ohne Unterbruch •test-driven •release Dokumentation Deplyoment t3see Version: 1 Seite 10 / 16 weitere Features •install script •stagingfähig (3. Stufen) •letzte 4 Versionen als fallback •diverse Umgebungsvariablen •gut konfigurierbar •hook für weitere Aktionen Deplyoment t3see Version: 1 Seite 11 / 16 Funktionsweise •git branches •dev, release, master •git push [webserver] •webserver > git checkout •webserver > post receive hook Deplyoment t3see Version: 1 Seite 12 / 16 Vorteile •unabhängig von Infrastruktur •lässt sich in build process einbauen •schnelle und vollständige •Übertragung mit git •Versionsfeatures von git nutzen (Tags usw.) •deploy hook projektspezifisch Deplyoment t3see Version: 1 Seite 13 / 16 TYPO3 hook •Core symlink •medienfiles symlink •typo3temp •Localconfiguration.php •cli script / sql script Deplyoment t3see Version: 1 Seite 14 / 16 Beispiel-Softwareprojekt •git-Tag gibt Version im FE an •mehrere Webserver gleichzeitig updaten •jenkins trigger •composer integration •cache warm-up •E-Mail Versand nach Release •automatisches Changelog Deplyoment t3see Version: 1 Seite 15 / 16 Infos Blogpost •http://www.comsolit.com/blog/2014/07/open-source-deployment-script/ Github •https://github.com/comsolit/comsolit_deploy Support •http://www.comsolit.com/ Deplyoment t3see Version: 1 Seite 16 / 16