Lernen Sie, wie cloudnative Microservices mit Spring Boot und Spring Cloud konzipiert, entwickelt und betrieben werden. Dieser viertägige Kurs behandelt Servicearchitektur, REST-API-Entwicklung, Datenverwaltung, Servicekommunikation, zentrale Konfiguration, Service Discovery, API-Gateways, Resilienz und den produktionsnahen Betrieb. Die Teilnehmenden entwickeln im Verlauf des Kurses schrittweise eine verteilte Anwendung. Sie lernen, fachliche Funktionen in unabhängige Services aufzuteilen, eine zuverlässige Kommunikation zwischen ihnen einzurichten und Muster anzuwenden, die Skalierbarkeit, Wartbarkeit und betriebliche Stabilität verbessern. Ein optionaler fünfter Tag erweitert den Kurs um OAuth 2.0 und OpenID Connect, asynchrone Nachrichtenverarbeitung, fortgeschrittene Testverfahren, Container-Orchestrierung, Distributed Tracing und ein umfangreiches End-to-End-Projekt.
Sie lernen, wie Sie unabhängig bereitstellbare Microservices mit Spring Boot entwickeln und diese mit Spring Cloud zu einem zuverlässigen verteilten System verbinden. Sie erstellen REST-APIs, verwalten servicespezifische Daten, konfigurieren die Kommunikation zwischen Services und setzen zentrale cloudnative Architekturmuster um.
• Servicegrenzen und Anwendungsarchitekturen für Microservices entwerfen
• Produktionsorientierte REST-APIs mit Spring Boot entwickeln
• Persistenz und Transaktionsgrenzen mit Spring Data verwalten
• Die Kommunikation zwischen Services implementieren
• Konfigurationen zentral verwalten und umgebungsspezifische Einstellungen steuern
• Service Discovery, Lastverteilung und API-Gateway-Routing einsetzen
• Timeouts, Wiederholungsversuche und Circuit Breaker zur Verbesserung der Resilienz anwenden
• Verteilte Anwendungen überwachen, testen, paketieren und Fehler beheben
• Praktische Java-Kenntnisse
• Grundlegende Erfahrungen mit Spring oder Spring Boot
• Vertrautheit mit HTTP, REST-APIs und JSON
• Grundverständnis relationaler Datenbanken und SQL
• Vertrautheit mit Maven oder Gradle ist empfehlenswert
• Grundkenntnisse zu Containern und verteilten Systemen sind von Vorteil, aber nicht erforderlich
*Wir passen den Kursaufbau und die Inhalte an Ihre spezifischen Anforderungen und relevanten Anwendungsfälle an.
Tag 1: Grundlagen von Spring Boot und Microservices
Modul 1: Cloudnative Anwendungen und Microservices
• Merkmale cloudnativer und verteilter Anwendungen
• Vergleich monolithischer, modularer und microservicebasierter Architekturen
• Vorteile, betriebliche Aufwände und typische Herausforderungen von Microservices
• Geeignete Servicegrenzen und fachliche Funktionen identifizieren
Modul 2: Services mit Spring Boot entwickeln
• Ein Spring-Boot-Microservice-Projekt strukturieren
• Starter, Dependency Injection und automatische Konfiguration verwenden
• Anwendungseigenschaften, Profile und Umgebungsvariablen verwalten
• Anwendungs-, Domänen- und Infrastrukturkomponenten organisieren
Modul 3: REST-APIs entwickeln
• Ressourcen, Endpunkte und HTTP-Operationen entwerfen
• Controller sowie Request- und Response-Modelle erstellen
• Eingehende Daten validieren und Validierungsfehler ausgeben
• Einheitliche Ausnahmebehandlung und API-Antworten implementieren
Modul 4: Persistenz und servicespezifische Daten
• Mit Spring Data JPA auf relationale Daten zugreifen
• Entitäten, Repositories und Abfragemethoden entwickeln
• Transaktionen innerhalb eines einzelnen Services verwalten
• Persistenzmodelle von externen API-Modellen trennen
Tag 2: Servicedesign und verteilte Kommunikation
Modul 5: Anwendungen in Services aufteilen
• Domänen, Verantwortlichkeiten und Servicezuständigkeiten identifizieren
• Enge Kopplung und eine zu starke Fragmentierung vermeiden
• Serviceschnittstellen anhand fachlicher Funktionen entwerfen
• Gemeinsame Konzepte ohne gemeinsam verwendete Datenbanken verwalten
Modul 6: Kommunikation zwischen Services
• Synchrone und asynchrone Kommunikation vergleichen
• HTTP-Services mit Spring-Client-Technologien aufrufen
• Stabile Serviceverträge und Datenübertragungsobjekte gestalten
• Netzwerkfehler, nicht verfügbare Services und unvollständige Antworten behandeln
Modul 7: Zentrale Konfiguration
• Konfigurationen vom Anwendungscode trennen
• Spring Cloud Config Server und Config Client kennenlernen
• Einstellungen für unterschiedliche Umgebungen und Services verwalten
• Geheimnisse schützen und Konfigurationsänderungen kontrollieren
Modul 8: Service Discovery und Lastverteilung
• Dynamische Serviceadressen in verteilten Umgebungen verstehen
• Serviceinstanzen registrieren und auffinden
• Clientseitige und plattformbasierte Lastverteilung anwenden
• Instanzzustand, Skalierung und vorübergehende Nichtverfügbarkeit verwalten
Tag 3: Gateway-Architektur, Resilienz und verteilte Daten
Modul 9: API-Gateways mit Spring Cloud Gateway
• Einen zentralen Zugangspunkt für Clientanwendungen einrichten
• Routen, Prädikate und Gateway-Filter definieren
• Anfragen umschreiben und übergreifende Funktionen verwalten
• Routingfehler und Fallbacks auf Gateway-Ebene behandeln
Modul 10: Resiliente Servicekommunikation
• Timeouts und kontrollierte Wiederholungsversuche einsetzen
• Circuit Breaker mit Spring Cloud CircuitBreaker implementieren
• Bulkheads und Konzepte zur Begrenzung von Anfragen verstehen
• Fallbacks entwickeln, ohne kritische Fehler zu verbergen
Modul 11: Datenkonsistenz zwischen Services
• Die Datenbank-pro-Service-Architektur verstehen
• Vorgänge verwalten, die mehrere Services betreffen
• Unmittelbare und eventuale Konsistenz vergleichen
• Saga-, Kompensations- und Idempotenzmuster kennenlernen
Modul 12: Sicherheitsgrundlagen für Microservices
• Spring Security auf Serviceendpunkte anwenden
• Authentifizierung, Autorisierung und Geschäftslogik voneinander trennen
• Zugangsdaten, Geheimnisse und sichere Konfigurationen verwalten
• CORS, CSRF und interne Servicezugriffe berücksichtigen
Tag 4: Produktionsreife und integrierte Anwendungsentwicklung
Modul 13: Anwendungszustand und Observability
• Zustands- und Anwendungsinformationen mit Spring Boot Actuator bereitstellen
• Anwendungsmetriken und betriebliche Kennzahlen erfassen
• Strukturierte und korrelierbare Anwendungsprotokolle entwickeln
• Readiness-, Liveness- und Abhängigkeitsprüfungen definieren
Modul 14: Spring-Boot-Microservices testen
• Verhalten der Domänen- und Serviceschicht testen
• Controller und Persistenzkomponenten testen
• Tests einzelner Anwendungsschichten und des Anwendungskontexts gezielt einsetzen
• Externe Abhängigkeiten in automatisierten Tests isolieren
Modul 15: Paketierung und cloudnative Konfiguration
• Services als ausführbare Anwendungen paketieren
• Container-Images mit Dockerfiles oder Buildpacks erstellen
• Konfigurationen und Geheimnisse bei der Bereitstellung übergeben
• Zustandslose Services für Skalierung und Austauschbarkeit entwerfen
Modul 16: Integrierte Microservices-Lösung
• Services, Konfiguration, Service Discovery und Gateway-Routing verbinden
• Resiliente Kommunikation zwischen Anwendungskomponenten implementieren
• Servicegrenzen, Abhängigkeiten und Fehlerverhalten überprüfen
• Die Lösung auf erweiterte Sicherheit, Messaging und Bereitstellung vorbereiten
Optionaler Tag 5: Erweiterte Sicherheit, Messaging, Tests und Bereitstellung
*Der optionale fünfte Tag erweitert die während des Kernkurses entwickelte Anwendung. Die fortgeschrittenen Themen werden schrittweise auf ein umfangreiches End-to-End-Microservices-Projekt angewendet.
Modul 17: OAuth 2.0 und OpenID Connect
• Authentifizierung, Autorisierung und delegierten Zugriff unterscheiden
• OAuth-2.0-Rollen, Autorisierungsverfahren, Zugriffstoken und Aktualisierungstoken verstehen
• Microservice-APIs als Resource Server schützen
• Benutzeranmeldung und Identitätsinformationen mit OpenID Connect implementieren
Modul 18: Asynchrone Nachrichtenverarbeitung
• Ereignisgesteuerte Kommunikation zwischen Services entwickeln
• Nachrichten über einen Message Broker veröffentlichen und verarbeiten
• Nachrichtenfehler, Wiederholungsversuche und Dead-Letter-Ziele behandeln
• Idempotenz und Muster für eine zuverlässige Ereignisverarbeitung anwenden
Modul 19: Vertrags- und Integrationstests
• Interaktionen zwischen Serviceanbietern und Servicekonsumenten testen
• Consumer-Driven Contract Testing kennenlernen
• Datenbanken, Message Broker und externe Abhängigkeiten in kontrollierten Umgebungen testen
• Unit-, Integrations-, Vertrags- und End-to-End-Tests sinnvoll kombinieren
Modul 20: Bereitstellung, Tracing und End-to-End-Betrieb
• Die vollständige Anwendung mit Docker Compose ausführen
• Services und unterstützende Komponenten für Kubernetes vorbereiten
• Anfragen mit Distributed Tracing über mehrere Services hinweg verfolgen
• Das End-to-End-Projekt bereitstellen, diagnostizieren und durch betriebliche Fehlerbehebung verbessern
Praxisnahes Lernen mit erfahrenen Trainern an Ihrem Standort für Organisationen.
Neue Fähigkeiten erlernen, angeleitet von erfahrenen Trainern von überall.