25

Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker [email protected] Demo Projekt: Quellen:

  • Upload
    ngotruc

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:
Page 2: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Von meinem Rechner in die Cloud Continuous Integration wie maßgeschneidert

Page 3: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Vorraussetzungen

• Dependency-Management

• Buildsystem

• Jenkins

• Staging

• Management-Getrieben

Page 4: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Was braucht es wirklich?

• Ein Projekt (Java, Python, AngularJS……)

• Hier stimmt etwas nicht

• Der Wille etwas zu ändern

• Ok! Projektleitung

Page 5: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Wo wollen wir hin?

• Continuous Integration

• Einfache Build / Deploy Verfahren

• Höchst mögliche Sicherheit & Effizienz

• Staging Umgebungen / manuelles Testen

• “Die Cloud”

• Continuous Delivery

Page 6: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Build & Deploy

• Script(e) zum Erstellen und Deploy

• Lokales Ausführen

• Fehlersuche & Disaster Recovery

• Immutable Builds

Page 7: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Warum Docker? • Leichtgewichtig

• Sehr geringe Boot-Zeiten

• Mehr Kontrolle über Laufzeitumgebung

• Einfache Verteilung & Skalierung

• Einsatzgebiete:

• Anwendung

• Buildserver

Page 8: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

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)

Page 9: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Base-Image Reihenfolge-> Cache

Shared User -> Volumes

Layer reduzieren / Aufräumen

Service-Ports

Page 10: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

• 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

Page 11: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Demo

Page 12: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:
Page 13: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Warum den Buildserver?

• Lokal erstellen und ausprobieren (Fehlersuche)

• Keine Management-Attention

• Reproduzierbar / Wiederverwendbar

• Einfaches Umziehen (eigener Server / Cloud)

• Skalieren (Master / Slave, Cloud)

Page 14: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Jenkins-Container

• Konfiguration

• SCM-Config-Plugin

• Installierte Plugins

Page 15: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Dockerfile

Install Docker

Install Plugins & Konfiguration

Git konfigurieren

Page 16: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Demo

Page 17: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:
Page 18: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:
Page 19: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Cloud

• Images wiederverwenden

• Fast kein Aufwand

• Images veröffentlichen (docker push)

• Z.B.: @ Docker Hub

Page 20: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

swarm.json

Page 21: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Demo

Page 22: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:
Page 23: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:
Page 24: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Fazit

• Lokales Ausführen durch Skripte

• CI-Server schnell aufsetzen / umziehen / erweitern /

skalieren

• Artefakt-Grenze erweitern / Immutable Builds

• Einfach auch in die Cloud

Page 25: Von meinem Rechner in die Cloud - entwicklertag.de · Kontakt Daniel Zwicker email@daniel-zwicker.de Demo Projekt:  Quellen:

Kontakt

Daniel Zwicker

[email protected]

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