Continuous Integration mit Jenkins

Das Handbuch für Entwickler und DevOps-Teams

(Autor)

Buch | Hardcover
400 Seiten
2021 | 1. Auflage
Rheinwerk (Verlag)
978-3-8362-7834-8 (ISBN)

Lese- und Medienproben

Continuous Integration mit Jenkins - Marco Schulz
39,90 inkl. MwSt
Mit vielen Best Practices und Tipps für gutes Software Engineering
  • Schritt für Schritt durch die CI-Pipeline: fetch, build, deploy
  • Source Control und Release Management mit Git und Nexus
  • Integrations- und Unit-Tests, richtiges Merging, saubere Codeanalyse

Software-Projekte sinnvoll verwalten

Moderne Softwareentwicklung besteht aus viel mehr als nur Code und Kaffee. Ohne passende Deployment-Strategien und eine saubere Release-Verwaltung laufen selbst kleine Projekte schnell aus dem Ruder und werden unbeherrschbar.

Wie Sie mit Jenkins, Git und Nexus eine CI-Pipeline aufbauen, zeigt Ihnen dieses Praxisbuch anhand der wichtigsten Aspekte erfolgreicher Software-Projekte: Source Control Management, flächendeckende Softwaretests mit einer sinnvollen Qualitätskontrolle und ein gut organisiertes Deployment.

Marco Schulz gibt Ihnen dabei nicht nur seine Erfahrung aus zahlreichen internationalen IT-Projekten weiter, sondern hält auch eine Menge Tipps und Überlegungen zum guten Software Engineering für Sie parat.

The Big Picture
DevOps, Continuous Deployment, Build Jobs, Pipelines ... ist all das wirklich nötig, wenn es nur um ein paar Zeilen Java-Code geht? Marco Schulz zeigt Ihnen, welche Vorteile moderne Entwicklungsparadigmen bieten, wie Sie Open-Source-Werkzeuge zu einer effektiven Toolchain zusammenfügen und damit Ihre Software professionell und zeitgemäß verwalten.

Professionelle Code-Verwaltung
Programmieren wäre viel einfacher, wenn Sie sich um den bestehenden Code keine Gedanken machen müssten. Da die Integration neuer Funktionen aber eine Standardaufgabe in der Software-Entwicklung ist, dreht sich hier alles um Merging-Konflikte, die Vergabe von sinnvollen Release-Nummern und das Schreiben von Unit- und Integrationstests. So behalten Sie den Überblick und arbeiten effektiv und agil im Team.

Toolchains für moderne Software-Projekte
Jenkins ist das wichtigste Werkzeug, wenn es um komfortable CI-Pipelines und automatisierte Builds geht. In diesem Praxisbuch finden Sie aber noch viel mehr: Git, Maven, Nexus, SonarQube und viele andere Tools helfen Ihnen bei der Verwaltung Ihrer Codebasis.

Aus dem Inhalt:
The Big Picture: DevOps und die Softwareentwicklung
Software testen: Test Driven Development, Unit- und Integrationstests
Agiles Release Mangement: Sprints vs Release
Continuous Delivery
Source Control Management
Jenkins einrichten und betreiben
Build Management
Build Jobs schreiben und optimieren
Jenkins Pipelines mit Blue Ocean
Qualitätskontrolle mit SonarQube
Repository Management mit Nexus

Marco Schulz ist Diplom-Informatiker und Programmierer. Seine Schwerpunkte liegen in den Bereichen Software-Architekturen, der Automatisierung der Softwareentwicklung und dem Softwarekonfigurationsmanagement. Er ist seit über fünfzehn Jahren weltweit als freiberuflicher Entwickler tätig und hat für zahlreiche Kunden Projekte organisiert und Anwendungen programmiert. Sein Wissen gibt er als Consultant, Trainer und Autor weiter.



Materialien zum Buch ... 11


1. Einführung ... 13


1.1 ... Was Sie schon wissen sollten und was Sie lernen werden ... 13

1.2 ... Worüber wir reden: Eine CI-Pipeline für Ihre Softwareprojekte ... 15



The Big Picture ... 19


2. Jenkins für Eilige ... 21


2.1 ... Jenkins in 10 Minuten ... 21

2.2 ... Jenkins- und DevOps-Fachbegriffe ... 28

2.3 ... Fazit ... 34



3. Das große B(u)ild der Automatisierung ... 37


3.1 ... Die Rollen von DevOps im Softwareentwicklungsprozess ... 43

3.2 ... Infrastruktur für Softwareentwicklungsprojekte ... 48

3.3 ... Sonderfall: Microsoft und .NET in der CI-Pipeline ... 56

3.4 ... Fazit ... 58



4. Software testen -- aber wie? ... 61


4.1 ... Komponententests und das Test-Driven Development ... 65

4.2 ... Akzeptanztests und Behavior-Driven Development ... 78

4.3 ... Integrationstests ... 84

4.4 ... Fazit ... 93



5. Release-Management in einer agilen Welt ... 97


5.1 ... Sprints vs. Release ... 101

5.2 ... Semantische Versionsnummern ... 102

5.3 ... Die Gefahren von Continuous Delivery ... 108

5.4 ... Fazit ... 123



6. Source-Control-Management ... 125


6.1 ... Die Rolle von SCM in der CI-Serverumgebung ... 125

6.2 ... Git und Subversion ... 127

6.3 ... Die Merging-Hölle ... 131

6.4 ... Branch-Modelle und Pull-Requests ... 137

6.5 ... Rebase vs. Merge: Code integrieren ... 146

6.6 ... Feature-Branches nutzen ... 149

6.7 ... Fazit ... 154



Continuous-Integration-Server ... 157


7. Einen CI-Server mit Jenkins einrichten und betreiben ... 159


7.1 ... Voraussetzungen ... 159

7.2 ... Drei Wege zu einer Jenkins-Server-Installation ... 161

7.3 ... Grundkonfiguration und Plug-ins ... 173

7.4 ... Jenkins als verteiltes System aufsetzen ... 186

7.5 ... Benutzerverwaltung ... 210

7.6 ... Fazit ... 217



8. Build-Management ... 219


8.1 ... Historisches: Build-Server, IDEs und das Chaos beim Programmieren ... 220

8.2 ... Die Build-Logik ... 222

8.3 ... Anwendungsarten: Mobile, Desktop, Web-App ... 222

8.4 ... Anwendungskonfiguration und Datenhaltung ... 224

8.5 ... Datenbanken ... 229

8.6 ... Backend: Java und Java-Enterprise ... 237

8.7 ... Frontend: JavaScript, Node.js und Bower ... 250

8.8 ... Mobile Devices ... 255

8.9 ... Exotische Welten: PHP, Ruby und Co. in Docker-Containern ... 258

8.10 ... Fazit ... 270



9. Jenkins-Build-Jobs ... 273


9.1 ... Build-Jobs schreiben ... 274

9.2 ... Bestehende Jenkins-Jobs optimieren ... 299

9.3 ... Jenkins-Pipelines mit Blue Ocean ... 303

9.4 ... Jenkins mit der JobDSL automatisieren ... 320

9.5 ... Build-Nummern vergeben -- oder nicht? ... 325

9.6 ... Jenkins RESTful API ... 327

9.7 ... Deployments automatisieren: Scripting mit Bash, PowerShell und Batch ... 330

9.8 ... Fazit ... 334



10. Qualitätskontrolle ... 337


10.1 ... Was ist überhaupt »Qualität«? ... 338

10.2 ... Metriken, und was sie verschweigen ... 340

10.3 ... Jenkins-Plug-ins für mehr Qualität: JaCoCo, OWASP und Maven Site ... 347

10.4 ... SonarQube ... 352

10.5 ... Fazit ... 360



11. Sonatype Nexus: Der Repository-Manager ... 363


11.1 ... Versionen und Zusatzprodukte ... 364

11.2 ... Nexus selbst betreiben ... 365

11.3 ... Konfiguration der Repositories ... 372

11.4 ... Artefakte auf Maven Central veröffentlichen ... 379

11.5 ... Fazit ... 390



A. Abkürzungsverzeichnis ... 391


B. Literaturliste ... 393


Index ... 395

»Sie erfahren, was für erfolgreiche Softwareprojekte essenziell ist [...]. Schulz gibt einen Überblick über moderne Entwicklungsparadigmen, er zeigt, wie und mit welchen Werkzeugen die professionelle Code-Verwaltung gelingt.« t3n 202111

»Sie erfahren, was für erfolgreiche Softwareprojekte essenziell ist [...]. Schulz gibt einen Überblick über moderne Entwicklungsparadigmen, er zeigt, wie und mit welchen Werkzeugen die professionelle Code-Verwaltung gelingt.«

»Das Praxisbuch liefert einen Überblick über eine zeitgemäße CIPipeline aus Git, Jenkins und Nexus.«

»Ein Einstieg ist bei jedem Kapitel möglich und wird sehr erleichtert durch ein kurzes Fazit, das jedes einzelne Kapitel abschließt.«

Erscheinungsdatum
Verlagsort Bonn
Sprache deutsch
Maße 168 x 240 mm
Einbandart gebunden
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Software Entwicklung Objektorientierung
Schlagworte Administration • Build-Jobs • Build-Logik • CI-Pipeline • Container Virtualisierung • Deployment Java • Development • DevOps-Teams • Enterprise Software • Hand-Buch Bücher Wissen Lernen Kurse Seminare Beruf Ausbildung Studium Tutorials Workshops • Hand-Buch Wissen Lernen Kurse Seminare Beruf Ausbildung Studium Tutorials Workshops • Maven Ant • Maven Ant Gradle • SonarQube • Unit-Tests
ISBN-10 3-8362-7834-0 / 3836278340
ISBN-13 978-3-8362-7834-8 / 9783836278348
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich