In the ecosystem of Open Source geospatial software, so-called map servers offer a set of essential functionalities and services that are needed by web-based and desktop applications. GeoServer, one of the most widely-used map servers, is written in Java and built on top of the GeoTools library.
At its core, GeoServer enables the user to publish geospatial data as web services following Open Geospatial Consortium (OGC) standards, such as Web Map Service (WMS) for raster data and Web Feature Service (WFS) for vector data. This process is supported by a comprehensive user-friendly UI, allowing for extensive configuration, including the styling of layers and the definition of various parameters (map size, scale etc.). Alternatively a REST-API can be used for configuration. The currently implemented OGC Standards, mainly used for map services and styling, are as follows:
- Web Feature Service (WFS)
- Web Map Service (WMS)
- OpenGIS Web Map Tile Service (WMTS)
- Web Coverage Service (WCS)
- Geography Markup Language (GML)
- Keyhole Markup Language (KML)
- Filter Encoding (FE)
- Styled Layer Descriptor (SLD)
Further, GeoServer offers on-the-fly coordinate transformations. This is especially useful for client applications that don’t support reprojecting map layers. In such cases GeoServer can handle the reprojection based on the extensive repository for geodetic parameters and reference systems EPSG.
In order to provide state of the art rendering of geodata, GeoServer supports caching of tiled map services via GeoWebCache. This integrated Java component serves as a cache for rendered map layers that are subdivided into evenly-sized tiles for predefined zoom levels, thus dramatically improving the performance of the rendering process in the client application.
A powerful property of GeoServer is the ability to work with extensions that are added as add-ons to the respective instance of GeoServer. Of the constantly growing list of extensions, which can be found here, the following should be named in particular:
- GeoFence for extensive data and service restrictions (i.e. geographical data access rules)
- INSPIRE for an extended capability section covering additional metadata
- Vector Tiles for support of tiled vector data (opposed to the already implemented raster tiles)
Making GeoServer cloud-ready
Born out of our work on the NexSIS project to have the central components of GeoServer run as microservices in an orchestrated cloud environment (i.e. Kubernetes Cluster), Camptocamp developed the close “relative” of GeoServer, GeoServer Cloud. GeoServer Cloud instances are now operational or about to become operational in 7 of our customer projects with a strong positive trend and we are confident that GeoServer Cloud will create the path for vanilla GeoServer to the cloud. The main benefits of GeoServer Cloud are:
Cost-effectiveness
Computing and storage resources can be scaled up as needed, based on each service’s performance characteristics and resource needs. This eliminates the overprovisioning of hardware that usually comes with the monolithic GeoServer.Independent scalability
Each microservice is logically isolated. If one microservice is changed to scale, the others will not be affected. Moreover, scaling down to zero instances of unused microservices is as important as the ability to scale out to satisfy demand or high availability requirements.Reliability
If a failure occurs in one microservice, there's no effect on adjacent services.Ease of management
Use of automation to deploy application features is encouraged and facilitated by the centralized and externalized application configuration.
Our involvement
Camptocamp has been an active contributor to the GeoServer project for over 10 years, the repository for the GeoServer Cloud project can be accessed here.
Apart from ongoing contributions to the project, we offer a range of additional solutions such as a Docker image for vanilla GeoServer and another image that comes with a standard installation of GeoServer extended with some of the most frequently used plugins (i.e. control-flow, CSS, Vector Tiles, Image Pyramids, INSPIRE, libjpeg-turbo and MBStyle).
We also offer infrastructure-as-code tools to manage the deployment of GeoServer, like Helm charts for GeoServer Cloud and a Terraform provider for GeoServer configuration.
Our popular GeoServer training sessions for both deployment and configuration can be requested here.
Get in touch
Career
Interested in working in an inspiring environment and joining our motivated and multicultural teams?