Deployment pipeline mit maven, chef und jenkins

22
by Wulf-Thilo Schreiter Berlin, 2016-03-30 Deployment Pipeline mit Maven, Chef und Jenkins.

Transcript of Deployment pipeline mit maven, chef und jenkins

Page 1: Deployment pipeline mit maven, chef und jenkins

by Wulf-Thilo Schreiter

Berlin, 2016-03-30

Deployment Pipeline mit Maven, Chef und Jenkins.

Page 2: Deployment pipeline mit maven, chef und jenkins

◼ Rückblick und Zukunft

◼ Mengenlehre

◼ Auswahl der Werkzeuge

◼ Manöverkritik

Deployment Pipeline mit Maven, Chef und Jenkins.

Agenda

Page 3: Deployment pipeline mit maven, chef und jenkins

Rückblick und Zukunft

Page 4: Deployment pipeline mit maven, chef und jenkins

Deployments vor UDC

Deployment Pipeline mit Maven, Chef und Jenkins.

Rückblick und Zukunft

Page 5: Deployment pipeline mit maven, chef und jenkins

Deployments im UDC

Deployment Pipeline mit Maven, Chef und Jenkins.

Rückblick und Zukunft

Page 6: Deployment pipeline mit maven, chef und jenkins

Wo wir hin wollen

Deployment Pipeline mit Maven, Chef und Jenkins.

Rückblick und Zukunft

Page 7: Deployment pipeline mit maven, chef und jenkins

Mengenlehre

Page 8: Deployment pipeline mit maven, chef und jenkins

Welche Arten von Builds haben wir

◼ Java/Maven

◼ NPM/Grunt

◼ Android/Gradle

◼ IOS/XCode

◼ Docker/Packer ( ja - keine Dockerfiles )

◼ Vagrant/Packer

◼ Chef/Cookbooks

◼ etc...

Deployment Pipeline mit Maven, Chef und Jenkins.

Mengenlehre

Page 9: Deployment pipeline mit maven, chef und jenkins

In Zahlen

◼ Java/Maven - CI-Builds: 18 - IT-Runs: 8

◼ NPM/Grunt - CI-Builds: 1

◼ Android/Gradle - CI-Builds: 1+ ( Komplet in Team-Hand)

◼ IOS/XCode - CI-Builds: 1+ ( Komplet in Team-Hand)

◼ Docker/Packer - CI-Builds: 97

◼ Vagrant/Packer - Noch keine Automatisierung

◼ Chef/Cookbooks- CI-Builds: 136

Deployment Pipeline mit Maven, Chef und Jenkins.

Mengenlehre

Page 10: Deployment pipeline mit maven, chef und jenkins

In Zahlen

◼ Jenkins-Hosts: 7 ( ohne QA )

◼ Jenkins-Jobs: > 500 ( nur Build & Deployment )

Deployment Pipeline mit Maven, Chef und Jenkins.

Mengenlehre

Page 11: Deployment pipeline mit maven, chef und jenkins

Auswahl der Werkzeuge

Page 12: Deployment pipeline mit maven, chef und jenkins

Maven

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 13: Deployment pipeline mit maven, chef und jenkins

Maven - naja nicht nur Maven ;-)

◼ Build-Systeme können nur polimorth sein.

◼ Gleiche Anforderungen an alle Build-Systeme

a. Auch ohne UI

b. Keine externen Ressourcen

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 14: Deployment pipeline mit maven, chef und jenkins

Chef

◼ Deployments mit Chef machen wir schon lange

◼ Wir nutzen die selben Werkzeuge

◼ innerhalb und

◼ ausserhalb der Container.

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 15: Deployment pipeline mit maven, chef und jenkins

Jenkins

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 16: Deployment pipeline mit maven, chef und jenkins

Jenkins - Warum nicht gocd

GOCD ( https://www.go.cd/ )

◼ ( + ) fokussiert auf Pipelines

◼ ( + ) Multiple Start-Repositories

◼ ( + ) tolles UI

◼ ( - ) alles muss im UI konfiguriert werden

◼ ( - ) keine DSL

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 17: Deployment pipeline mit maven, chef und jenkins

Jenkins - Warum nicht LambdaCD

LambdaCD ( http://www.lambda.cd/ )

◼ ( + ) fokussiert auf Pipelines

◼ ( + ) Multiple Start-Repositories

◼ ( ++ ) alles ist Code

◼ ( -- ) basic UI only

◼ ( - ) nichts kann im UI konfiguriert werden

◼ ( -- ) keine Historie nach neustart.

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 18: Deployment pipeline mit maven, chef und jenkins

Jenkins

Also doch Jenkins ( https://jenkins.io )

◼ ( + ) Multiple Start-Repositories

◼ ( + ) alles kann im UI konfiguriert werden

◼ ( + ) es gibt eine erweiterbare DSL

◼ ( +/- ) etwas angestaubtes UI

◼ ( - ) kein expliziter Fokus auf Pipelines

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

Page 19: Deployment pipeline mit maven, chef und jenkins

Manöverkritik

Page 20: Deployment pipeline mit maven, chef und jenkins

Was funktioniert gut

◼ Deployments ohne auf die Bleche zu müssen

◼ Dev & Stage deployments durch die Teams selbst

◼ Integration-Tests, da wo auch die Komponenten laufen

◼ Leichte änderbarkeit der Build-Konfigurationen

Deployment Pipeline mit Maven, Chef und Jenkins.

Manöverkritik

Page 21: Deployment pipeline mit maven, chef und jenkins

Was funktioniert nicht so gut

◼ Konflikthandling bei konkurrierenden Jobs

◼ Docker-Cookbooks bei den Sourcen sind schwer erfassbar

◼ Wir brauchen eine bessere Lösung für das

Versionsmanagement

◼ Die Chef Mechanismen für viele Komponenten behindern uns

Deployment Pipeline mit Maven, Chef und Jenkins.

Manöverkritik

Page 22: Deployment pipeline mit maven, chef und jenkins

Q & A