Jan Christian

Backend Engineer at UP42


Session

06-30
15:30
30min
Scaling GeoServer: From Vanilla Architecture to Cloud Performance Optimization
Jan Christian, Matheus Pinheiro dos Santos

For any geospatial platform, the ability to serve imagery at scale is the ultimate "stress test." When our team at UP42 began building a production-grade WMTS service, we quickly realized that moving from a functional setup to a high-performance one requires more than just adding more hardware. This talk shares our iterative journey of migrating from a "Vanilla" GeoServer architecture to a microservices-based GeoServer Cloud environment, and the systematic load testing that guided every decision along the way.

We will walk through our "detective-style" approach to performance tuning. Using Apache JMeter to simulate heavy production loads, we treated our infrastructure as a series of integration points where bottlenecks could hide. Rather than a smooth transition, the move to a cloud-native architecture revealed a new landscape of challenges that required us to look deeper into the system than we had ever anticipated.

Throughout our testing phases, we uncovered a variety of hidden performance killers, including:
- Storage Hurdles: How standard cloud-mount solutions struggled with tile-writing workloads and why native cloud storage plugins became essential.
- Concurrency Caps: The realization that default configurations for thread limits and traffic control are often too conservative for modern cloud environments.
- The Proxy Trap: How internal communication between services can become a bottleneck even when individual components are performing well.
- Resource Optimization: The relationship between CPU/Memory allocation and the ability to handle parallel tasks like simultaneous seeding and streaming.

This presentation is a practical guide for anyone looking to push GeoServer beyond its default limits. We will share our "battle map" for isolating bottlenecks, bypassing load balancers for diagnostic testing, and the critical importance of keeping load testing continuous as your architecture evolves.

Key Takeaways
- The Migration Reality: GeoServer Cloud offers the foundation for horizontal scaling, but it requires a specialized tuning strategy compared to standalone instances.
- Systematic Isolation: Learn how to test individual microservices (GWC, Gateway, etc.) in isolation to pinpoint exactly where latency is introduced.
- Visibility Matters: The importance of combining log analysis, thread dumps, and performance metrics to solve "silent" performance issues.
- End-to-End Testing: Why you must test the full integration path early to find bottlenecks that only appear under high concurrency.

A12