<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>FOSS4GE 2025 | Honey, I shrunk the GIS – Developing scalable and lightweight geospatial ...</title>
        <link>https://video.osgeo.org/videos/watch/2d70cf52-8d7b-4593-8468-8781756b26fc</link>
        <description>Traditional Geographic Information Systems (GIS) are often developed as monolithic software. This project presents a case study that explores the development of geospatial software using microservices and containerization, focusing on core modular elements such as images, containers, and service orchestration. The use case involves serving geospatial data related to radiological measurement data for routine monitoring and emergency response scenarios. The implementation is fully open-source and includes the following technologies: Docker, PostgreSQL/PostGIS, GeoServer, Node.js, and OpenLayers. The primary aim is to share practical insights into modular software development and provide a streamlined guide for rapidly building lean, portable and maintainable geospatial applications. Background and Motivation Monolithic software development poses numerous limitations compared to component-based approaches. In the proposed architecture, all key GIS components - data storage, management, and visualization - are modularized and isolated into independent services. Each service is encapsulated within its own Docker container, simplifying deployment and ongoing maintenance. This isolation enables independent development of each component, provided that the interfaces (e.g., APIs) remain consistent. For example, by fully integrating a relational database management system (RDBMS) such as PostgreSQL/PostGIS, GIS applications can delegate core functions—including user and role management, query optimization, data storage and retrieval, and backup and recovery—to the database layer. This eliminates the need to build such functionality from scratch, promoting a concept known as decoupling. Decoupling is central to tiered software architectures as it minimizes interdependencies, improves flexibility and enables autonomous development across components. Microservices and Containerization in GIS The architecture presented in this study organizes components like data storage and visualization into a multi-service environment using Docker. Docker provides an ecosystem that encapsulates the operating system and all required dependencies, enabling OS-level and software-level virtualization (Acharya et al., 2021). Key benefits of this approach include: • Portability - containers encapsulate all required libraries, dependencies, software and configurations. • Efficiency - containers use fewer resources than VMs or server infrastructures. They also have a positive effect on human resources because they lessen dependencies between developers. • Scalability - supports both horizontal and vertical scaling. • Isolation - containers are self-contained and reduce the risk of conflicts. • Continuous integration - testing and production environments can be identical, accelerating development cycles. • Clear ownership - containers have well-defined boundaries, which prevents individuals from interfering with each other’s work and thereby improving efficiency. • Interoperability - containers and services can easily be consumed with no special needs in terms of operating system or software. The project implements a 4-tier container orchestration to visualize the geodata, PostgreSQL/Postgis for data storage, pgAdmin as Postgres’ graphical user interface (GUI), Geoserver as a web map server and Node.js for client dependencies such as OpenLayers. Components can be individually configured and tailored. In a containerized environment, services are defined as images and deployed as containers. These can be distributed and executed independently of the host system's configuration. For example, deploying a traditional web-based GIS requires manually installing and configuring a database (e.g., PostgreSQL), a web map server (e.g., GeoServer), and a frontend visualization library (e.g., OpenLayers or Leaflet). This process must be repeated for each redundant server to achieve fault tolerance or switchover capabilities - an inefficient and error-prone approach. By contrast, containerization allows each component to be defined in configuration files (e.g., docker-compose.yml) alongside accompanying text files for credentials and settings. The result is a streamlined and reproducible environment where services interact through well-defined interfaces. Containerization enables full-stack development of service-oriented architectures (SOA), simplifying workflows needed for redundancy, fault tolerance and system maintenance. Modularization also facilitates all key tasks across the GIS stack - from data ingestion and analysis to visualization. By isolating each functional component - data ingestion, storage, service and visualization into independent Docker containers, the system achieves modularity, scalability, and ease of maintenance. The use of open-source ... Arne Schumacher https://talks.osgeo.org/foss4g-europe-2025/talk/7H7P38/ Room: PA01 (Quarticle) @ 16.07.2025 17:00:00 #foss4ge2025 #AcademicTrack</description>
        <lastBuildDate>Wed, 29 Jul 2026 07:22:26 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>PeerTube - https://video.osgeo.org</generator>
        <image>
            <title>FOSS4GE 2025 | Honey, I shrunk the GIS – Developing scalable and lightweight geospatial ...</title>
            <url>https://video.osgeo.org/lazy-static/avatars/de841c88-3a57-45ac-9eff-a00237356bfc.png</url>
            <link>https://video.osgeo.org/videos/watch/2d70cf52-8d7b-4593-8468-8781756b26fc</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://video.osgeo.org/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://video.osgeo.org/feeds/video-comments.xml?videoId=2d70cf52-8d7b-4593-8468-8781756b26fc" rel="self" type="application/rss+xml"/>
    </channel>
</rss>