Schulung


Continuous Integration, Delivery und Deployment mit Jenkins, SonarQube und Nexus


Wir betreuen und implementieren DevOps-Pipelines schon seit vielen Jahren bei Kunden. Wir sprechen als Anwender und Administratoren dieser Systeme und möchten unser Know-How weitergeben. Gerne In-House oder Remote

Schulungsanfrage

Sende uns eine Nachricht und wir melden uns bei dir!

Beschreibung


Continuous Integration ist ein wesentlicher Bestandteil einer modernen DevOps Infrastruktur und ist in jedem agilen Ansatz ein sehr wichtiger Baustein. Einer der wesentlichen Vorteile ist, dass durch eine regelmäßige Integration von Codeänderungen, die Qualität durch den Entwicklungsprozess sichergestellt wird und somit Probleme sehr schnell festgestellt werden (“Fail Fast”). Durch das gezielte Ermitteln von vergleichbaren Qualitätsmetriken kann nicht nur die Qualität gemessen werden, sondern die Basis für ein “Learn Fast” geschaffen werden. Continuous Integration etabliert dadurch einen Regelkreislauf, welcher nicht nur die Qualität sicherstellt, sondern das Entwicklungsteam durch kontinuierliches Feedback verbessert.


Dabei ist eine geschickte Unterstützung von Tools, wie z.B. Git, Jenkins/Bamboo, SonarQube, Nexus/Artifactory, Bitbucket/Gitlab und Docker notwendig. Denn durch diese Systeme kann nicht nur der Entwicklungsprozess sichergestellt werden, sondern automatisierte Freigabeprozesse und sogar automatisierte Veröffentlichungen abgebildet werden. Somit ist der Einsatz dieser Tools der Schlüssel für Continuous Integration, Delivery und Deployment.


Diese Schulung ist zum größten Teil technologieoffen und kann toolseitig auf deine Anforderungen angepasst werden. Daher ist die Schulung nicht nur als Standardschulung zu empfehlen, sondern bringt In-House eine besondere Note bezüglich Anpassbarkeit, Erweiterbarkeit und der Berücksichtigung unternehmensspezifischer Anforderungen. Gerne kannst du dich im Vorfeld mit dem Coach austauschen, um die Möglichkeiten einer In-House Schulung zu klären.


Die Agenda bildet den Umfang einer Standardschulung ab.

Technologien


Schulungsziel

Das Hauptziel einer CI/CDD-Infrastruktur ist es, dass sich ein Softwareprodukt schneller und in kürzeren Release-Zyklen entwickeln lässt, sowie gleichzeitig die Qualität des Produktes sicherstellt. Genau dieses Ziel verfolgt auch die Schulung. Zusammen entwickeln wir in praktischen Übungen schrittweise eine Pipeline für Codeänderungen, welche Anforderungen an Qualität automatisiert sichert. Darüberhinaus wird die Pipeline in der Lage sein eine Release automatisiert freizugeben und zu veröffentlichen. Nach der Schulung, bist du in der Lage eine prozesssichere CI/CDD Umgebung in deinem Unternehmen für dein Projekt/Produkt zu etablieren und zu betreuen.

Zielgruppe

Diese Schulung ist für jeden geeignet der ein flexible CI/CDD Toolchain nutzen, einführen oder modernisieren möchten. Dabei ist es egal ob du CI/CD als Entwickler, Release/Build Manager oder als Verantwortlicher begleiten willst. Es ist kein technisches Know-How bzgl. Programmiersprachen oder IT-Administration notwendig, jedoch sind minimale Java und Git Kenntnisse von Vorteil.

Inhalt

Einführung in Continuous Integration, Delivery und Deployment

  • Kontinuierliche Integration & Qualitätssicherung 
  • Automatisierte Test und Code Coverage
  • Statische Codeanalyse: Code-Smells, Bugs
  • Sicherstellen von Code Conventions 
  • Third-Party Vulnerability Screening
  • Vermeiden von technische Schulden
  • Unterschied zwischen Integration, Delivery & Deployment
  • Quality Gates - Sicherstellen der Qualität
  • Git - Projektzustände und passende Workflows


Maven Grundlagen

  • Projektstruktur
  • Lebenszyklus
  • Abhängigkeitsmanagement
  • Vorgehensmodel
  • Maven Plugins
  • Projekt Object Model


Maven Beziehungen

  • Multi-Module-Projekte (Aggregator-pom)
  • Parent Projekt (Super-pom)
  • Userspezifische Settings (settingss.xml)
  • Artefact Koordinaten
  • Abhängigkeitsmanagement & Semantic Versioning
  • PluginMananagement vs. Plugins
  • DependencyManagement vs. Dependencies
  • Lokales & Remote Repository


Maven Build & Test & Qualitätssicherung

  • Der Clean, Build und Site Lebenszyklus
  • Automatisiertes Testen mit JUnit
  • Bewertung der Code Coverage mit Jacoco
  • Bewertung von Code-Smells und JavaDoc mit Checkstyle
  • Suche nach Bugs mit SpotBug
  • Screening der Third-Party Vulnerabilities mit OWASP
  • Maven Profile im Einsatz


Bitbucket - Codemanagement

  • Crashkurs: Grundlegende Funktionalität 
  • Code & Review Management
  • Der Pull Request als Quality Gate
  • Möglichkeiten zum Prozess Enforcement


Jenkins - Continuous Everything

  • Crashkurs: Grundlegende Funktionalität
  • Toolmanagement
  • Credentialstore
  • Build Nodes Management
  • Freestyle & Pipeline Project
  • Multibranch-Pipline Project
  • Unterschied zwischen Pipeline & Multibranch-Pipline
  • Declarative vs. Scripted Pipeline
  • OWASP, JUnit, JavaDoc und weitere Plugins
  • Branch, Pull-Request und Tag-Build
  • Pipeline Status 


Nexus - Artefaktmanagement

  • Release & Snapshot Repositories
  • Caching / Mirroring im Intranet
  • Maven Deployment
  • Delivery und Deployment mit Jenkins


SonarQube - Grundlagen

  • Crashkurs: Grundlegende Funktionalität
  • Codeanlyse mit SonarQube - Developer Edition
  • Metriken, Code-Klassifizierungen und Quality Gates
  • OWASP, Checkstyle, SpotBug und Jacoco Bewertung in SonarQube Quality Gate
  • QualityGate Issues reviewen, bewerten und freigeben


DevOps - Das Zusammenspiel der Systeme

  • Jenkins und SonarQube als Quality Gate in Bitbucket Pull Requests
  • SonarQube Issues als Pull Request Decoration
  • Kontinuierliches Delivery & Deployment mit Jenkins und Nexus
Share by: