von meinem rechner in die cloud - entwicklertag.de · kontakt daniel zwicker...
TRANSCRIPT
Von meinem Rechner in die Cloud Continuous Integration wie maßgeschneidert
Vorraussetzungen
• Dependency-Management
• Buildsystem
• Jenkins
• Staging
• Management-Getrieben
Was braucht es wirklich?
• Ein Projekt (Java, Python, AngularJS……)
• Hier stimmt etwas nicht
• Der Wille etwas zu ändern
• Ok! Projektleitung
Wo wollen wir hin?
• Continuous Integration
• Einfache Build / Deploy Verfahren
• Höchst mögliche Sicherheit & Effizienz
• Staging Umgebungen / manuelles Testen
• “Die Cloud”
• Continuous Delivery
Build & Deploy
• Script(e) zum Erstellen und Deploy
• Lokales Ausführen
• Fehlersuche & Disaster Recovery
• Immutable Builds
Warum Docker? • Leichtgewichtig
• Sehr geringe Boot-Zeiten
• Mehr Kontrolle über Laufzeitumgebung
• Einfache Verteilung & Skalierung
• Einsatzgebiete:
• Anwendung
• Buildserver
Anwendung mit Docker
• Caching ist Alles!
• Clean Build: 55 sec
• Cached Build: 0,8 sec
• Häufige Änderungen ans Ende (Bauzeit)
• Reihenfolge Statements (übergreifend Bauzeit)
• Base-Images (Wiederverwendung / Bauzeit)
Base-Image Reihenfolge-> Cache
Shared User -> Volumes
Layer reduzieren / Aufräumen
Service-Ports
• Dockerfile
• Clean Build: 2,5 sec
• Keine Symlinks
App-Image dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
dddd
Artefakte im Docker-Context
Aufräumen
Demo
Warum den Buildserver?
• Lokal erstellen und ausprobieren (Fehlersuche)
• Keine Management-Attention
• Reproduzierbar / Wiederverwendbar
• Einfaches Umziehen (eigener Server / Cloud)
• Skalieren (Master / Slave, Cloud)
Jenkins-Container
• Konfiguration
• SCM-Config-Plugin
• Installierte Plugins
Dockerfile
Install Docker
Install Plugins & Konfiguration
Git konfigurieren
Demo
Cloud
• Images wiederverwenden
• Fast kein Aufwand
• Images veröffentlichen (docker push)
• Z.B.: @ Docker Hub
swarm.json
Demo
Fazit
• Lokales Ausführen durch Skripte
• CI-Server schnell aufsetzen / umziehen / erweitern /
skalieren
• Artefakt-Grenze erweitern / Immutable Builds
• Einfach auch in die Cloud
Kontakt
Daniel Zwicker
Demo Projekt: https://github.com/dzwicker/docker-jenkins-demo.git
Quellen: https://www.docker.com
http://jenkins-ci.org
http://www.atomrain.com/it/software-process/continuous-integration-quality-fast-track