Moving to Java 17 in production
summary
Revolut moves its services from Java 11 toward Java 17 in production, compiling and running on the new JDK everywhere after validating tens of thousands of unit and functional tests and rolling changes via infrastructure-as-code. Migration uses jdeps and deprecated-API scanners, Maven Versions and Gradle upgrade steps, and Java Flight Recorder for light production diagnostics. G1 is the default GC and reduces manual GC tuning, but RSS rises on JDK11+ so heaps and Xmx/Xms need adjustment; some Groovy/Spock tests required rewrites.
AI-written summary · about
chapters (19)
- 0:00Introduction and context
- 1:14Java release cadence
- 2:33Survey of Java versions
- 4:44Choosing a Java vendor
- 5:46Revolut upgrade story (8 to 11)
- 8:53Java 17 migration challenges
- 10:43Upgrade strategy
- 12:25Tooling and support status
- 14:02Microservices migration approach
- 16:11Maven and Gradle tips
- 18:15Dependency compatibility
- 20:18Language ecosystem support
- 22:37JVM options and flags
- 24:20Testing changes and bugs
- 26:00G1 Garbage Collector
- 27:34Performance and memory
- 28:43Language features and tools
- 30:34Upgrading to Java 17
- 34:02Q&A and final thoughts
related talks
46mGoing Java::Current in Production
53mA year with jdk11 in production.
50mJava. Migrating to 11 in real app
01h 05mJava 11 to 17 - Exciting New Features
50mHow We Migrated New Relic to Java 11
47mJava. Migrating to 11 in real app
46mBeam Me Up, Java! A Journey through Java LTS Versions 11 to 21
41mSystematically migrate to newer Java version
