8. 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
9. 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
10. In Zahlen
◼ Jenkins-Hosts: 7 ( ohne QA )
◼ Jenkins-Jobs: > 500 ( nur Build & Deployment )
Deployment Pipeline mit Maven, Chef und Jenkins.
Mengenlehre
13. 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
14. 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
16. 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
17. 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
18. 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
20. 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
21. 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