Wir bieten eine Vielzahl praxisorientierter Trainings an, die vor der Durchführung in einem gemeinsamen Scoping-Gespräch individuell auf die spezifischen Anforderungen Ihres Teams abgestimmt werden, um die geeignete Vorgehensweise sowie die relevanten Schwerpunkte festzulegen.

Kubernetes für Full-Stack-Entwickler

Dauer
2 - 3 Tage
Art
Kurs
Wo
Vor Ort oder Remote
Sprache
Deutsch oder Englisch

Kursinhalte

Die meisten Kubernetes-Schulungen richten sich primär an DevOps-Engineers, Plattform-Teams oder Systemadministratoren. Entsprechend stehen häufig Themen wie Cluster-Administration, Netzwerkarchitekturen, Security-Hardening oder der Betrieb produktiver Kubernetes-Umgebungen im Mittelpunkt. Für Full-Stack-Entwicklerinnen und -Entwickler (insbesondere im Java-/Web-Portal-Umfeld) ist ein derart tiefgehendes Spezialwissen jedoch oftmals weder erforderlich noch zielführend.

In der täglichen Entwicklungsarbeit geht es vielmehr darum, Anwendungen zu containerisieren, lokale Entwicklungsumgebungen zu verstehen, Deployments nachzuvollziehen und die Zusammenarbeit mit Plattform- und Betriebsteams zu erleichtern. Dafür ist ein fundiertes Verständnis der relevanten Querschnittsthemen entscheidend: Docker, Kubernetes, Linux-Grundlagen und Shell-Skripting greifen eng ineinander und bilden gemeinsam das notwendige Werkzeugset moderner Softwareentwicklung.

Diese Schulung verfolgt daher einen entwicklerzentrierten Ansatz. Sie vermittelt genau das Wissen, das Full-Stack-Entwickler benötigen, um Anwendungen sicher und effizient in containerisierten und Kubernetes-basierten Umgebungen zu entwickeln und zu betreiben. Ohne den Anspruch, aus den Teilnehmenden Kubernetes-Administratoren zu machen. Gleichzeitig werden Inhalte bewusst auf ihre praktische Relevanz für die Zielgruppe geprüft. So sind beispielsweise Themen wie Docker Compose, die in vielen Docker-Schulungen einen großen Raum einnehmen, für Java-Softwareingenieure im Unternehmensumfeld häufig von untergeordneter Bedeutung und werden entsprechend nur dann behandelt, wenn sie für den konkreten Einsatzkontext einen Mehrwert bieten.

Grundlagen moderner Container-Plattformen
  • Motivation für den Einsatz von Containern in der Softwareentwicklung
  • Zentrale Begriffe und Konzepte rund um Container-Technologien
Docker für Softwareentwickler
  • Arbeiten mit Docker-Images und Containern
  • Container starten, verwalten und analysieren
  • Port-Mappings und Zugriff auf Anwendungen
  • Logs auswerten und Kommandos innerhalb von Containern ausführen
  • Persistente Daten mit Volumes bereitstellen
Eigene Container-Images erstellen
  • Aufbau und Erstellung von Dockerfiles
  • Spring-Boot-Anwendungen containerisieren
  • Verschiedene Basisimages
  • Multi-Stage-Builds zur Optimierung von Image-Größe und Build-Prozessen
  • Nutzung von Container-Registries
Einführung in Kubernetes
  • Motivation und Einsatzszenarien für Kubernetes
  • Architektur und grundlegender Aufbau einer Kubernetes-Plattform
  • Grundbegriffe in Kubernetes für den Alltag von Software-Entwicklern
  • Der deklarative Ansatz und Arbeiten mit YAML-Definitionen
Anwendungen auf Kubernetes bereitstellen
  • Pods als kleinste Ausführungseinheit verstehen und einsetzen
  • Deployments (und Replica Sets) zur Verwaltung von Anwendungen nutzen
  • Services zur internen Kommunikation konfigurieren
  • Anwendungen über NodePorts, LoadBalancer und Ingress verfügbar machen
  • Namespaces zur Strukturierung von Umgebungen
Konfiguration und Persistenz
  • Konfigurationsdaten mit Config Maps verwalten
  • Sensible Informationen mit Secrets bereitstellen
  • Persistente Speicherung mit Volumes und Persistent Volume Claims
  • Stateful Sets für zustandsbehaftete Anwendungen einsetzen
Betrieb und Stabilität von Anwendungen
  • Initialisierungsschritte mit Init Containern umsetzen
  • Readiness- und Liveness-Probes zur Überwachung nutzen
  • Jobs für einmalige oder periodische Aufgaben einsetzen
Praxisübungen
  • Containerisierung und Deployment realitätsnaher Java-/Spring-Boot-Anwendungen
  • Integration und Betrieb datenbankgestützter Anwendungen
  • Durchgängige Übungen zur Vertiefung aller behandelten Themen

Sie haben individuelle Wünsche oder Fragen? Lassen Sie uns sprechen

Was die Teilnehmer erhalten

Alle Teilnehmenden erhalten:

  • die Schulungsunterlagen als PDF,
  • praxisnahe Code-Beispiele sowie
  • E-Mail-Support für die Dauer von drei Monaten nach Abschluss des Trainings

Individuelle Spring-Schulungen

Dauer
1 - 3 Tage
Art
Kurs
Wo
Vor Ort oder Remote
Sprache
Deutsch oder Englisch

Kursinhalte

Die Inhalte dieser Schulung werden individuell aus den aufgeführten Themenbereichen zusammengestellt und auf die konkreten Anforderungen, Vorkenntnisse und Zielsetzungen Ihres Teams abgestimmt. Der Fokus liegt auf den Technologien und Fragestellungen, die für Ihren Projektalltag relevant sind. Dies umfasst sowohl die Grundlagen moderner Spring- und Spring-Boot-Anwendungen als auch weiterführende Themen aus den Bereichen Sicherheit, Persistenz, Testing und Monitoring. Ziel ist es, eine passgenaue Schulung zu gestalten, die die Teilnehmenden dabei unterstützt, wartbare, testbare und produktionsreife Anwendungen effizient zu entwickeln und bestehende Lösungen fundiert weiterzuentwickeln.

Einführung in Spring und Spring Boot
  • Motivation und Einsatzmöglichkeiten des Spring-Ökosystems
  • Aufbau und Architektur moderner Spring-Anwendungen verstehen
  • Die Rolle von Spring Boot in der Anwendungsentwicklung
  • Projekte mit Maven oder Gradle effizient strukturieren und verwalten
Dependency Injection und Konfiguration
  • Dependency Injection und Inversion of Control in der Praxis anwenden
  • Den Spring ApplicationContext verstehen und nutzen
  • Anwendungen mit JavaConfig konfigurieren
  • Beans mit Auto-Wiring effizient verknüpfen
  • Externe Konfigurationen und Profile einsetzen
Datenzugriff mit Spring
  • Datenbankzugriffe mit Spring Data JPA realisieren
  • Repositories entwickeln und anwendungsspezifisch erweitern
  • Transaktionen gezielt einsetzen und verstehen
  • Ausnahmebehandlung im Datenzugriff umsetzen
  • Validierung von Eingabedaten und Domänenobjekten integrieren
Persistenz mit JPA und Hibernate
  • Objektorientierte Domänenmodelle auf relationale Datenbanken abbilden
  • Entitäten und Beziehungen modellieren
  • Lebenszyklus von Entitäten verstehen und gezielt nutzen
  • Lazy Loading und Kaskadierung korrekt einsetzen
  • Datenbankschemata generieren und verwalten
  • Hibernate-spezifische Erweiterungen einordnen
Effiziente Abfragen entwickeln
  • Abfragen mit Spring Data JPA erstellen
  • JPQL für komplexere Anwendungsfälle einsetzen
  • Dynamische Abfragen mit Specifications umsetzen
  • Native SQL-Abfragen gezielt verwenden
  • Entity Graphen zur Optimierung von Ladeverhalten einsetzen
  • QueryDSL als typsicheren Ansatz kennenlernen
Entwicklung von REST-Schnittstellen
  • RESTful APIs mit Spring MVC entwickeln
  • Request-Mapping und Annotationen effizient einsetzen
  • Eingaben validieren und Fehler strukturiert behandeln
  • OpenAPI zur Dokumentation von Schnittstellen nutzen
  • Unterschiedliche API-Designansätze bewerten
Sicherheit mit Spring Security
  • Anwendungen authentifizieren und autorisieren
  • Rollen- und berechtigungsbasierte Zugriffssteuerung umsetzen
  • Methodenbasierte Sicherheit einsetzen
  • JWT-basierte Sicherheitskonzepte verstehen
  • Sicherheitsaspekte automatisiert testen
Testen von Spring-Anwendungen
  • Unit- und Integrationstests mit JUnit 5 entwickeln
  • Das Spring TestContext Framework einsetzen
  • Controller mit MockMvc testen
  • Datenzugriffsschichten isoliert überprüfen
  • Test Slices zur Beschleunigung von Testausführungen nutzen
Querschnittsfunktionen in Spring
  • Caching zur Optimierung von Anwendungen nutzen
  • Scheduling für zeitgesteuerte Aufgaben einsetzen
  • Wiederholungsstrategien mit Spring Retry implementieren
Betrieb und Observability
  • Anwendungen mit Spring Boot Actuator überwachen
  • Health-Checks und Anwendungsinformationen bereitstellen
  • Eigene Actuator-Endpunkte entwickeln
  • Metriken erfassen und auswerten
  • Anwendungen für Monitoring-Lösungen vorbereiten
Messaging und Integration
  • Grundlagen asynchroner Kommunikation verstehen
  • Messaging mit JMS und AMQP einsetzen
  • Spring-Anwendungen mit externen Systemen integrieren
Fortgeschrittene Spring-Boot-Themen
  • Die Mechanismen der Auto-Konfiguration verstehen
  • Eigene Auto-Konfigurationen entwickeln
  • Anwendungen über unterschiedliche Umgebungen hinweg konfigurieren
  • Initialisierungslogik mit CommandLineRunner umsetzen
Praxisübungen und Fallstudien
  • Entwicklung einer vollständigen Spring-Boot-Anwendung
  • Umsetzung einer REST-Schnittstelle mit Datenbankanbindung
  • Absicherung und Testen zentraler Anwendungsfunktionen

Sie haben individuelle Wünsche oder Fragen? Lassen Sie uns sprechen

Spring-Batch in Depth

Dauer
1 - 2 Tage
Art
Kurs
Wo
Vor Ort oder Remote
Sprache
Deutsch oder Englisch

Kursinhalte

Spring Batch ist die etablierte Lösung zur Umsetzung robuster Batch- und ETL-Prozesse im Spring-Ökosystem. Während viele Schulungen das Thema nur oberflächlich behandeln oder sich auf einfache Anwendungsfälle konzentrieren, richtet sich diese Schulung gezielt an erfahrene Java- und Spring-Entwickler, die Spring Batch produktiv einsetzen oder bestehende Anwendungen mit Spring Batch weiterentwickeln möchten.

Neben einer fundierten Einführung in die zentralen Konzepte von Spring Batch wie Jobs, Steps, Reader, Processor und Writer liegt ein besonderer Schwerpunkt auf den Herausforderungen, die in realen Projekten auftreten. Die Teilnehmenden lernen typische Probleme und Fallstricke kennen, die beispielsweise bei Transaktionen, der Fehlerbehandlung, der Parallelisierung oder der Verarbeitung großer Datenmengen entstehen können.

Die Schulung geht deutlich über die Inhalte klassischer Spring-Grundlagenkurse hinaus. Aufbauend auf praxisnahen Beispielen werden fortgeschrittene Themen wie Multi-Threaded Steps, Partitioning, Remote Partitioning sowie Strategien zur Skalierung und zum Betrieb verteilter Batch-Prozesse behandelt. Ziel der Schulung ist es, die Teilnehmenden in die Lage zu versetzen, performante, wartbare und fehlertolerante Batch-Anwendungen mit Spring Batch zu entwickeln und fundierte Architekturentscheidungen für kleine wie auch anspruchsvolle Verarbeitungsszenarien zu treffen.

Grundlagen von Spring Batch
  • Motivation und typische Einsatzszenarien für Batch-Verarbeitung
  • Architektur und zentrale Konzepte von Spring Batch verstehen
  • Aufbau von Jobs und Steps nachvollziehen
  • Die Rollen von Readern, Prozessoren und Writern kennenlernen
Entwicklung von Batch-Anwendungen
  • Batch-Jobs mit Spring Batch entwickeln und konfigurieren
  • Tasklets und Chunk-Oriented Processing kennenlernen
  • Parameterisierte Jobs erstellen und steuern
Daten lesen, verarbeiten und schreiben
  • Dateien, Datenbanken und andere Datenquellen anbinden
  • Eigene Reader, Prozessoren und Writer implementieren
  • Daten transformieren, validieren und anreichern
  • Große Datenmengen effizient verarbeiten
Transaktionen und Fehlermanagement
  • Transaktionsverhalten in Batch-Anwendungen verstehen
  • Skip- und Retry-Strategien implementieren
  • Fehlerbehandlung für unterschiedliche Verarbeitungsszenarien umsetzen
Überwachung und Betrieb
  • Metadaten und den Job Repository sinnvoll nutzen
  • Batch-Anwendungen testen und debuggen
  • Logging- und Monitoring-Strategien anwenden
Performance und Skalierung
  • Leistungsengpässe identifizieren und vermeiden
  • Multi-Threaded Steps zur Parallelisierung einsetzen
  • Partitioning zur Aufteilung großer Verarbeitungslasten nutzen
  • Strategien zur Verarbeitung großer Datenmengen entwickeln
Verteilte Batch-Verarbeitung
  • Konzepte für skalierbare Batch-Architekturen kennenlernen
  • Remote Chunking einordnen und einsetzen
  • Remote Partitioning zur verteilten Verarbeitung nutzen
  • Kommunikations- und Integrationsszenarien bewerten
Best Practices und typische Fallstricke
  • Bewährte Vorgehensweisen für die Entwicklung von Batch-Anwendungen anwenden
  • Häufige Fehlerquellen bei Transaktionen und Restart-Szenarien vermeiden
  • Wartbare und erweiterbare Batch-Architekturen gestalten
  • Architekturentscheidungen anhand realer Anforderungen treffen

Sie haben individuelle Wünsche oder Fragen? Lassen Sie uns sprechen

Was die Teilnehmer erhalten

Alle Teilnehmenden erhalten:

  • die Schulungsunterlagen als PDF,
  • praxisnahe Code-Beispiele sowie
  • E-Mail-Support für die Dauer von drei Monaten nach Abschluss des Trainings