State of GeoServer Cloud

Nils Bรผhner, terrestris GmbH & Co. KG

FOSS4G-E 2025, Mostar
https://terrestris.github.io/foss4g-e-2025/talks/gs-cloud.html

Nils Bรผhner

  • Software Engineer
    terrestris, Bonn, Germany
  • GeoServer Docker project maintainer
  • GeoServer Cloud contributor

State of GeoServer Cloud, FOSS4G-E 2025, Mostar

GeoServer Cloud CodeSprint (October 2024)

GeoServer Cloud CodeSprint at Camptocamp in Chambรฉry, France
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Content

  • Why GeoServer cloud?
  • GeoServer Cloud Architecture
  • Features of GS Cloud
  • GeoServer extensions in GS Cloud
  • Case studies (by Alexandre)
Slides:
https://terrestris.github.io/foss4g-e-2025/talks/gs-cloud.html
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Traditional GeoServer

  • The GeoServer project has grown for 20+ years
  • github.com/geoserver/geoserver
  • Implements OGC standards:
    WMS, WFS, WCS, WMTS, SLD, etc.
  • Many extensions
  • Active development
  • Proven and robust in production
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Why GeoServer Cloud?

  • Cloud technologies become increasingly
    important in modern GIS architectures
  • Traditional GeoServer is not cloud-native
  • Traditional GeoServer is a monolithic application
  • Lack of native support for horizontal scaling
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Scaling Traditional GeoServer...

%%{ init: { "theme": "default" } }%% flowchart TD Clients(["๐ŸŒ HTTP Requests"]) Clients-. "https://.../geoserver" .-> Gateway subgraph Cloud [" "] Gateway[/"โš–๏ธ LoadBalancer / Gateway"/] style Gateway fill:#cc99ff %% Pods Layer subgraph Pods [" "] GeoServer1["๐ŸŒ GeoServer n"] GeoServer2["๐ŸŒŽ GeoServer 2"] GeoServer3["๐ŸŒ GeoServer 1"] end %% Storage Layer subgraph Data storage [" "] GSDataDir[("๐Ÿ“ (Shared) GS Catalog/Datadir (XML)")] PostGIS[(๐Ÿ—„๏ธ PostGIS Geodata)] style GSDataDir fill:#ffcc99 style PostGIS fill:#c2d6d6 end end Gateway --> GeoServer1 Gateway --> GeoServer2 Gateway --> GeoServer3 GeoServer1 -->|use| GSDataDir GeoServer2 -->|use| GSDataDir GeoServer3 -->|use| GSDataDir Pods --> PostGIS
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

...is a pain

  • Replication of full stack GeoServers with all baggage
  • GeoServer loads the Catalog/Datadir into memory
  • Updates on one instance won't propagate to others
  • Other instances remain unaware of changes and
    continue working on their (now outdated) memory state
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

What could help?

  • Time-consuming and error-prone approaches:
    • Use a "prepared", static read-only
      shared data directory (GS Catalog)
    • Create a script/tool that (periodically) checks
      for updates to trigger necessary reloads via REST
    • Other workarounds...

  • Solution: GeoServer Cloud!
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

GeoServer Cloud

A scalable GeoServer for the Cloud
Repository: github.com/geoserver/geoserver-cloud
Modern Microservice Architecture
Service Discovery & Message Broadcasting with Spring Boot
Cloud-Optimized Features
High-performance catalog access and extended security features
Cloud Native & DevOps Friendly
Intuitive usage with Docker, Kubernetes and more
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

GeoServer Cloud Architecture

  • GS Cloud builds on the highly modular structure of the GS codebase
  • Split core functionality into independently scalable, loosely coupled microservices
  • Service discovery to support elastic scaling and load balancing
  • Event bus to broadcast messages
    (distributed events)
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

GeoServer Cloud Architecture

  • Intense usage of the Spring Framework (Spring Boot, Spring Cloud, ...)
  • Tailor-cut activation of functionality (based on Configuration/Profiles)
  • Health checks, metrics, monitoring, Logging, Caching, ...
  • Smooth integration with cloud environments
  • Flexible deployments
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

GeoServer Cloud Service Registry

State of GeoServer Cloud, FOSS4G-E 2025, Mostar

GeoServer Cloud features

  • PostgreSQL back-end for the GeoServer Catalog
    โ†’ Shared data directory also possible, but not suggested
    โ†’ Wanna migrate from data directory to PostgreSQL?
            โ†’ Talk of Alexandre on Friday: Migrate and Synchronize GeoServer configuration with Terraform
            โ†’ Or try https://github.com/terrestris/geoserver_sync
  • GeoServer ACL (Access Control List)
    โ†’ Advanced authorization for GeoServer
    โ†’ Born as fork of the GeoFence project
    โ†’ Fine-granular access control for services, geographical areas, attributes and more
  • Cloud-optimized GeoWebCache (GWC) integration
    โ†’ distributed event notifications
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Integration of GeoServer extensions

More:
  • WPS
    (native integration as microservice)
  • OGC API Features
  • INSPIRE
  • app-schema
  • Graticule
  • ...
State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Missing extension?

State of GeoServer Cloud, FOSS4G-E 2025, Mostar

Case studies



Now:
Case studies and practical experiences with GS Cloud by Alexandre