Deployment pipeline mit maven, chef und jenkins

Post on 14-Apr-2017

172 views 4 download

Transcript of Deployment pipeline mit maven, chef und jenkins

by Wulf-Thilo Schreiter

Berlin, 2016-03-30

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

Rückblick und Zukunft

Deployments vor UDC

Deployment Pipeline mit Maven, Chef und Jenkins.

Rückblick und Zukunft

Deployments im UDC

Deployment Pipeline mit Maven, Chef und Jenkins.

Rückblick und Zukunft

Wo wir hin wollen

Deployment Pipeline mit Maven, Chef und Jenkins.

Rückblick und Zukunft

Mengenlehre

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

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

In Zahlen

◼ Jenkins-Hosts: 7 ( ohne QA )

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

Deployment Pipeline mit Maven, Chef und Jenkins.

Mengenlehre

Auswahl der Werkzeuge

Maven

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

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

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

Jenkins

Deployment Pipeline mit Maven, Chef und Jenkins.

Auswahl der Werkzeuge

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

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

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

Manöverkritik

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

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

Q & A