Tobias Frank, Isabella Gobel ,Konstantin Hungs, Steffen Scheller, Thomas Steffek 1
Gliederung
• Was & Wofür?
• Installation
• Jenkins 2.0: Continuous Delivery
• Pipeline
• Git-Integration
• Beispiele
• Alternativen
• Quellen
2
Was & Wofür?
3
Kohsuke Kawaguchi
• Fork von Hudson von Sun Microsystems
• In Java geschrieben
• Plattformübergreifend
• Continuous Integration (CI) Tool
• Typische Anwendung:
• Nightly Builds
• Unterstützt zahlreiche Werkzeuge:
• Maven, Ant, SVN, Junit, …
• Für Projekte div. Sprachen & Technologien:
• Java, PHP, Ruby, .Net, …
Installation
4
• LTS- oder Weekly-Version
• Native Downloadpakete für viele Plattformen➢Alternativ .war Dateien
• Für Windowsnutzer:• ZIP-Archiv mit setup.exe mit .NET Bibliotheken
• Erreichbar über den Port 8080 nach Installation
Von CI nach CD nach CD
5
• Begriffsklärung
• CI – Continuous Integration
• CD – Continuous Delivery
• Aber auch:• CD – Contiuous Deployment
Von CI nach CD nach CD
6
• Continuous Integration
• Automatisches mergen in den Master
• Viele kleine Änderungen um Konflikte zu vermeiden
• Automatische Validierung durch Tests
• Kein fester Release-Tag
Von CI nach CD nach CD
7
• Continuous Integration Kosten Nutzen
Probleme werden schnell gefunden
Integration wird vereinfacht
Weniger Bugs
Zusätzlicher Server, zusätzliche
Fehlerquelle
Ausreichende Unit-Tests sind ein Muss
Kleine Features
Von CI nach CD nach CD
8
• Continuous Delivery
• Erweiterung von CI
• Mehr als nur Validierung:
• Klicktests
• Skalierungstests
• Stresstests
• Kunden Szenarios (Internationalisierung)
Von CI nach CD nach CD
9
• Continuous Delivery
• Deployment ins Produktivsystem wird manuell ausgeführt
• Menschliche „Instanz“ ist die höchste
• Stabile und vorhersagbare Ergebnisse (auch ohne Mensch)
Von CI nach CD nach CD
10
• Continuous Delivery
Kosten Nutzen
Von CI nach CD nach CD
11
• Continuous Deployment
• Erweiterung von Continuous Delivery
• Änderungen werden automatisch ins Produktivsystem gepusht
• Kein Raum für Fehler
Von CI nach CD nach CD
12
• Continuous Deployment
Kosten Nutzen
Nutzer sehen Veränderungen
Extrem kurze Zyklen, keine
Wartezeit
Beste Testkultur
Disziplin
Jenkins Pipeline
13
• Was ist eine Pipeline?
• Sammlung von Jenkins-Plugins
• Build-Workflow -> Build-Pipeline
• Jenkinsfile
Pipeline-Aufbau / Konzept
14
• Pipeline
• Node / Agent
• Stage
• Step
Warum Pipeline?
15
• Erstellt automatisch einen Build
• Pipeline as Code
• Single source of truth
Pipeline Funktionen
16
• Code
• Langlebig
• Pausierbar
• Vielseitig
• Erweiterbar
Überblick über die Pipeline-Syntax
17
• Skript-Pipeline-Syntax
• Folgt einem zwingenden Programmiermodell (Groovy)
• Deklarative Pipeline-Syntax
• vereinfachte syntaktische Funktionen
• erleichtert lesen und schreiben
Jenkins Pipeline
18
Deklarativen Pipeline-Syntax Skript-Pipeline-Syntax
Ablauf einer Pipeline
19
AB HIER GEHT’S WEITER…
20
ZURÜCK AUS DER WERBE PAUSE
WEITER GEHT’S MIT…
21
Alternativen
22
• TeamCity
(JetBrains, die IntelliJ guys)
• Bamboo
(Atlassian, die Jira guys. Und Trello.Und BitBucket. Und HipChat.)
…und viele Andere!
*: from $888
23
TeamCity
24
• Pros:• Simples Setup
• Schönes, intuitives Interface
• Pre-Commit Tests
• Viele out-of-box features, integriert ohne Plugins in Drittanbietersoftware
• Cons:• Wenig Plugins, kleinere Community
• Man kann/muss zahlen
Bamboo
25
• Pros:• Harmoniert perfekt mit Jira, Trello und BitBucket
• Dedizierte Agents
• Deployment-Report: Zusammenfassung aller Änderungen und (Jira-) Vorgänge seit dem letzten Deployment
• Deployet direkt in Mobile Stores
• Cons:• Kostet immer*
• Wenig Plugins, kleinere Community
• Cloud Support kostet
*: 10$ für das kleinste Paket werden an Room to Read gespendet
Jenkins
26
• Pros:• Größte Community mit Unmengen an Plugins
• Open Source: kostenlos, voller Einblick
• Cons:• „kompliziertes“ Setup
• Kaum out-of-the-box features, man braucht Plugins
• Scaled nicht so gut
• Gute Dokumentation, aber kein Support
Quellen
• https://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/Jenkins_logo.svg/2000px-Jenkins_logo.svg.png
• http://www.thegraphicmac.com/free-font-dummies
• https://jenkins.io/artwork/
• https://swampup.jfrog.com/speaker/kohsuke-kawaguchi/kohsuke-kawaguchi-2-2/
• https://jenkins.io/blog/2017/08/23/pull-requests-and-more/
• https://alphanodes.com/de/deployment-pipeline-infografik
• https://www.blazemeter.com/blog/how-to-use-the-jenkins-scripted-pipeline
• https://dev.to/iriskatastic/start-continuous-integration-with-jenkins-pipeline-4edb
27
Quellen• https://de.atlassian.com/software/bamboo
• https://www.jetbrains.com/teamcity/
• https://stackify.com/jenkins-teamcity-bamboo/
• https://www.infoworld.com/article/3070454/application-development/beyond-jenkins-7-devops-tools.html
• http://home.edvsz.fh-osnabrueck.de/skleuker/CSI/Werkzeuge/Jenkins/
• https://de.wikipedia.org/wiki/Jenkins_(Software)
• https://www.cloudbees.com/blog/continuous-delivery-jenkins-part-3
• https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff
• https://www.atlassian.com/continuous-delivery/ci-vs-ci-vs-cdhttps://www.informatik-aktuell.de/entwicklung/methoden/von-continuous-integration-zu-continuous-delivery-mit-jenkins-workflow.html
28
DANKE DASS DU DA WARST!
WINKE, WINKE!
29
Top Related