Eine Grails-Migration ist kein einzelner Versionswechsel. JDK, Groovy, Gradle, Spring Boot, GORM, Security-Plugins, Konfiguration und eigene Erweiterungen bilden eine Abhängigkeitskette, die in kontrollierten Stufen bearbeitet werden muss.
Das Seminar arbeitet mit einer älteren Beispielanwendung und trennt technische Basis, Framework-Anpassung, fachliche Regression und Produktionsübergang. Nach jeder Stufe muss ein definierter, testbarer Zustand erreicht sein.
Inhaltsverzeichnis
- Zielgruppe
- Voraussetzungen
- Lernziele
- Modul 1: Bestandsaufnahme und Migrationsplanung
- Modul 2: Build, JDK und Abhängigkeiten modernisieren
- Modul 3: Abhängigkeiten, BOMs und Versionskonflikte
- Modul 4: Anwendungscode und Konfiguration anpassen
- Modul 5: Konfigurationsmodell und Umgebungen
- Modul 6: Transaktionen, Sessions und Nebenläufigkeit
- Modul 7: Härtung, Auditierung und Sicherheitsbetrieb
- Modul 8: Regressionstests und fachlicher Vergleich
- Modul 9: Datenbankschema und kontrollierte Migrationen
- Modul 10: Messmethodik und reproduzierbare Lastszenarien
- Modul 11: Einführung, Parallelbetrieb und Rückfall
- Modul 12: Release-, Datenbank- und Rückrollstrategie
- Praxisprojekt und Übungen
- Arbeitsweise
Zielgruppe
Erfahrene Grails-Entwickler, Softwarearchitekten, technische Projektleiter und Teams mit Verantwortung für Bestandsanwendungen.
Voraussetzungen
Praktische Erfahrung mit einer bestehenden Grails-Anwendung, Gradle, GORM und automatisierten Tests. Kenntnisse der aktuellen Zielplattform sind hilfreich.
Lernziele
- Abhängigkeiten und Migrationsrisiken vollständig inventarisieren.
- JDK, Gradle und Bibliotheken in kontrollierten Stufen aktualisieren.
- Anwendungscode, Konfiguration, GORM und Security anpassen.
- Fachliche Gleichwertigkeit mit Regressionstests nachweisen.
- Datenbank-, Rollout- und Rückfallstrategie realistisch planen.
- Eine priorisierte Modernisierungsroadmap für das eigene System erstellen.
Modul 1: Bestandsaufnahme und Migrationsplanung
Eine bestehende Anwendung wird nach Versionen, Plugins, Eigenentwicklungen und Betriebsabhängigkeiten inventarisiert.
- Schritt 1: Framework-, JDK-, Groovy-, Gradle- und GORM-Versionen erfassen.
- Schritt 2: Plugins, Bibliotheken und nicht dokumentierte Laufzeitannahmen auflisten.
- Schritt 3: Kritische Funktionen, Datenzugriffe und Integrationen priorisieren.
- Schritt 4: Migrationsstufen, Risiken, Testbedarf und Rückfalloptionen festlegen.
Modul 2: Build, JDK und Abhängigkeiten modernisieren
Die technische Basis wird schrittweise aktualisiert, bevor fachliche Änderungen zugelassen werden.
- Schritt 1: Ziel-JDK und Toolchain in Entwicklung und CI vereinheitlichen.
- Schritt 2: Gradle Wrapper, Plugins und Repository-Konfiguration aktualisieren.
- Schritt 3: Abhängigkeiten über kompatible Plattformen und feste Versionen ausrichten.
- Schritt 4: Nach jedem Schritt einen sauberen Build und Start nachweisen.
Modul 3: Abhängigkeiten, BOMs und Versionskonflikte
Bibliotheksversionen werden über nachvollziehbare Regeln und kompatible Plattformen gesteuert.
- Schritt 1: Direkte und transitive Abhängigkeiten untersuchen.
- Schritt 2: BOMs und Dependency Constraints zur Versionssteuerung einsetzen.
- Schritt 3: Konflikte und unerwartete Varianten mit Gradle-Berichten analysieren.
- Schritt 4: Repositories und Abhängigkeitsquellen auf notwendige Einträge begrenzen.
Modul 4: Anwendungscode und Konfiguration anpassen
Veraltete APIs und implizite Annahmen werden durch aktuelle, explizite Implementierungen ersetzt.
- Schritt 1: Compilerfehler und Warnungen systematisch nach Bereichen bearbeiten.
- Schritt 2: Konfiguration, Package-Namen und Jakarta-bezogene Änderungen prüfen.
- Schritt 3: Controller, Datenbindung, GORM und Security auf Verhaltensänderungen testen.
- Schritt 4: Eigene Plugins und Erweiterungen an neue Lebenszyklen anpassen.
Modul 5: Konfigurationsmodell und Umgebungen
Konfiguration wird nach Umgebung, Verantwortlichkeit und Sensitivität strukturiert.
- Schritt 1: application.yml und programmatische Konfiguration sinnvoll aufteilen.
- Schritt 2: Umgebungsabhängige Werte ohne Codeverzweigungen bereitstellen.
- Schritt 3: Typen, Standardwerte und Validierung für Konfigurationswerte festlegen.
- Schritt 4: Fehlende oder widersprüchliche Werte beim Start früh erkennen.
Modul 6: Transaktionen, Sessions und Nebenläufigkeit
Transaktionsgrenzen werden aus fachlichen Operationen abgeleitet und nicht dem Zufall einzelner Datenzugriffe überlassen.
- Schritt 1: Transaktionale Service-Methoden und Read-only-Operationen unterscheiden.
- Schritt 2: Flush-Verhalten, Dirty Checking und Session-Lebenszyklus nachvollziehen.
- Schritt 3: Optimistische und pessimistische Sperren für Konfliktsituationen bewerten.
- Schritt 4: Rollback, Wiederholung und Fehlerbehandlung mit Tests überprüfen.
Modul 7: Härtung, Auditierung und Sicherheitsbetrieb
Sicherheitskonfiguration wird in Build, Betrieb und Reaktion auf Vorfälle verankert.
- Schritt 1: Abhängigkeiten und Plugin-Versionen regelmäßig bewerten.
- Schritt 2: Secrets aus Quellcode und Build-Artefakten fernhalten.
- Schritt 3: Audit-Ereignisse und datenschutzgerechte Protokollierung definieren.
- Schritt 4: Sicherheitsprüfungen, Wiederherstellung und Aktualisierungsprozess dokumentieren.
Modul 8: Regressionstests und fachlicher Vergleich
Die neue Version wird nicht nur kompilierbar, sondern fachlich gleichwertig und betrieblich belastbar gemacht.
- Schritt 1: Kritische Benutzerwege vor der Migration als Tests festhalten.
- Schritt 2: Datenbankmigration und Datenqualität mit Kopien realistischer Daten prüfen.
- Schritt 3: Antworten, Berechtigungen und Integrationen alt gegen neu vergleichen.
- Schritt 4: Performance- und Betriebswerte vor Freigabe gegenüberstellen.
Modul 9: Datenbankschema und kontrollierte Migrationen
Schemaänderungen werden versioniert, geprüft und getrennt von spontanen Laufzeitänderungen ausgeführt.
- Schritt 1: Änderungen am Domänenmodell in explizite Migrationsschritte überführen.
- Schritt 2: Vorwärts- und Rückwärtsstrategie für kritische Änderungen festlegen.
- Schritt 3: Migrationen gegen realistische Datenbestände testen.
- Schritt 4: Deployment-Reihenfolge von Anwendung und Datenbank dokumentieren.
Modul 10: Messmethodik und reproduzierbare Lastszenarien
Optimierungen beginnen mit einer belastbaren Ausgangsmessung und einem klaren Engpassnachweis.
- Schritt 1: Antwortzeit-, Durchsatz- und Ressourcenziele festlegen.
- Schritt 2: Realistische Datenmengen und Benutzerabläufe modellieren.
- Schritt 3: Warm-up, Messfenster und Vergleichsbedingungen vereinheitlichen.
- Schritt 4: Messdaten so dokumentieren, dass Verbesserungen objektiv nachweisbar sind.
Modul 11: Einführung, Parallelbetrieb und Rückfall
Die technische Migration wird in einen kontrollierten Produktionsübergang mit klaren Entscheidungspunkten überführt.
- Schritt 1: Kompatibilitätsfenster zwischen Anwendung, Datenbank und Clients definieren.
- Schritt 2: Pilot, gestufte Einführung oder Parallelbetrieb auswählen.
- Schritt 3: Beobachtungswerte und Abbruchkriterien festlegen.
- Schritt 4: Rückfall technisch proben und organisatorisch freigeben.
Modul 12: Release-, Datenbank- und Rückrollstrategie
Anwendungs-, Konfigurations- und Datenbankänderungen werden als zusammenhängender Release-Prozess geplant.
- Schritt 1: Vorwärts- und Rückwärtskompatibilität zwischen Versionen prüfen.
- Schritt 2: Schemaänderungen und Anwendungsauslieferung zeitlich koordinieren.
- Schritt 3: Blue-Green-, Rolling- oder gestufte Einführung bewerten.
- Schritt 4: Rückrollentscheidung, Datensicherung und Verantwortlichkeiten dokumentieren.
Praxisprojekt und Übungen
Eine ältere Anwendung wird schrittweise auf eine aktuelle Grails-7-Linie vorbereitet. Build, Konfiguration und zentrale Codepfade werden angepasst; Regression, Datenmigration und Rückfall werden mit einem schriftlichen Migrationsplan abgesichert.
Arbeitsweise
Kurze fachliche Einführungen wechseln mit Demonstrationen, angeleiteten Implementierungsschritten, selbstständigen Übungen und gemeinsamer Auswertung. Entscheidungen werden im Code, in Tests und in einer knappen technischen Dokumentation nachvollziehbar festgehalten.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 4 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 2.396 zzgl. MwSt. Inhaus: € 6.800 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Erfahrene Grails-Entwickler, Softwarearchitekten, technische Projektleiter und Teams mit Verantwortung für Bestandsanwendungen. |
| Voraussetzungen: | Praktische Erfahrung mit einer bestehenden Grails-Anwendung, Gradle, GORM und automatisierten Tests. Kenntnisse der aktuellen Zielplattform sind hilfreich. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Demonstrationen, praktische Übungen am System |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
