26.03.2025 –, HS4 (S2)
Der Vortrag zeigt auf wie eine Geodateninfrastruktur(GDI) automatisiert über Code eingerichtet werden kann und geht dabei auf die von uns genutzten Software-Bausteine und deren Alternativen ein.
Es gibt viele Ansätze, eine Geodateninfrastruktur bereitzustellen. Durch die starke DevOps-Kultur bei siticom ist unsere hauseigene Geodateninfrastruktur komplett über Code definiert und stark automatisiert. Dieser Vortrag beschreibt die Vorzüge und die Herausforderungen dieser Herangehensweise.
Unsere Dienste laufen auf virtuellen Linux-Servern bei einem Cloud-Provider. Diese werden allerdings nicht manuell über eine Benutzeroberfläche „zusammengeklickt“, sondern mit dem Tool Terraform über Code definiert. Das ermöglicht Reproduzierbarkeit und einfache Anpassbarkeit.
Das Einrichten der Server funktioniert über Ansible. Diese auf Python basierende Konfigurationssprache ist verhältnismäßig lesbar und stellt sicher, dass alle benötigten Programme auf den Servern installiert und alle notwendigen Dateien vorhanden sind.
Sowohl die Terraform- als auch die Ansible-Konfiguration sind in Git-Repositories versioniert und können über die GitLab CI ausgeführt werden. Dies ermöglicht eine hohe Transparenz der Infrastruktur bei allen Teammitgliedern. Außerdem stellt es die Reproduzierbarkeit der Geodateninfrastruktur sicher, da alle alten Stände wiederhergestellt werden können.
Die benötigten Passwörter und Zugänge werden in einem eigenen Secret-Speicher vorgehalten und bei jedem Deployment per API abgefragt. Dieser Ansatz erleichtert das Ändern von Zugängen wesentlich, was zu erhöhter Sicherheit beiträgt.
Wir deployen unsere Software ausschließlich über Docker-Images, die wir sowohl aus öffentlichen als auch internen Docker-Registries beziehen. Die Konfiguration und Zusammenstellung wird über Docker-Compose-Dateien definiert, die selbstverständlich per Git versioniert sind.
Um unsere Software aktuell zu halten, nutzen wir den Renovate Bot. Dieser prüft regelmäßig, ob alle Docker-Images bzw. Software-Bibliotheken auf dem neuesten Stand sind. Etwaige Updates können dann nach menschlicher Prüfung per Knopfdruck in die Konfiguration gemergt und direkt deployt werden.
Ein Anwendungsfall dieser Automatisierung ist das Veröffentlichen von QGIS-Plugins im Intranet. Sobald eine neue Version eines QGIS-Plugins bereitsteht, wird dieses per GitLab-Release als Download bereitgestellt und in das QGIS-Plugin-Repository eingepflegt, von wo aus es für QGIS-Nutzer komfortabel genutzt werden kann.
GIS Software Entwickler bei siticom. OpenSource-Beitragender im Bereich Geoinformatik und OpenStreetMap.