GDI mit Docker & Co.

Einführung, Überblick
und Diskussion

Marc Jansen, terrestris GmbH & Co. KG


FOSSGIS 2019, Dresden, 15.03.2019

Gliederung

  • Über…
  • Motivation
  • GDI & Docker?
  • Überblick
  • Diskussion

Über…

Marc Jansen

  • Geschäftsführer @terrestris
  • Kernentwickler OpenLayers
  • Kernentwickler GeoExt
  • Buchautor "OpenLayers"
  • Sprecher & Trainer
    national & international
  • OSGeo Foundation Charter Member

terrestris

  • terrestris.de
  • OpenSource GIS aus Bonn
  • Entwicklung, Projekte & Support/Schulung
  • Beratung, Planung, Implementierung & Wartung

Motivation

Motivation

  • GDI sind mein Tagesgeschäft
  • Docker ist nach wie vor heiß
  • Ich wollte über Pro und Kontra ins Gespräch kommen
  • …dazu braucht man jedoch eine Einführung

Ziele

  • Einführung und Basics
  • Beispiele
  • Nutzungskontexte
  • Diskussionsgrundlage

GDI & Docker?

Geodateninfra­strukturen (GDI)

  • zentral & nutzbar
  • verschiedene Komponenten
  • Datenhaltung & Metadaten
  • Dienstebasiert
  • Anzeigende Komponenten
  • häufig Client / Server

Docker

  • Containerisierung / Virtualisierung auf Betriebssystemebene
  • Isoliert / standalone / portabel
  • Applikationen und deren Dependenzen in Container
  • Container aus Images
  • Images aus Dockerfile
  • zentrale Registries, etwa hub.docker.com
  • Basis für eigene Images

Nutzungskontexte

  • Entwicklung einer GDI
  • Schulung
  • Produktivstellung et al.
  • Wartung / Support der GDI

Überblick

docker run hello-world


$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:2557e3c07ed1e38f26e389462d03ed943586f744621577a99efb77324b0fe535
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
[…]

Komponenten einer GDI

  • Datenbank ⇒ PostgreSQL + PostGIS
  • (OGC-) Dienste: ⇒ GeoServer
  • Metadaten: ⇒ GeoNetwork OS
  • Applikation: ⇒ OpenLayers Applikation

Optionen

OpenLayers Applikation

Dockerfile


  FROM node:10

  WORKDIR app
  COPY node-example /app
  RUN npm install
  RUN npm run build
  CMD npm run serve
  EXPOSE 8080

Wie lässt man alles laufen?

docker-compose.yml


  version: '2'
  services:
    fossgis-ol:
      build: .
      ports:
        - 12345:8080
    fossgis-geoserver:
      image: terrestris/geoserver:2.15.0
      ports:
        - 8888:8080
      volumes:
        - ./fossgis-geoserver/geoserver_data:/opt/geoserver_data/:Z
        - ./fossgis-geoserver/additional_libs:/opt/additional_libs/:Z
      environment:
        - EXTRA_JAVA_OPTS=-Xms1g -Xmx2g
      depends_on:
        - fossgis-postgis
    fossgis-geonetwork:
      image: geonetwork
      ports:
        - 8081:8080
      depends_on:
        - fossgis-postgis
    fossgis-postgis:
      image: mdillon/postgis:10-alpine
      ports:
        - 7777:5432
      environment:
        POSTGRES_USER: geoserver
        POSTGRES_PASSWORD: geoserver
      volumes:
        - ./fossgis-postgis/postgresql_data:/var/lib/postgresql/data:Z

…eine GDI mit einer Datei und einem Befehl…

implizit dev-setup gezeigt

  • so übertragbar auch auf andere Umgebungen
  • aber…

Diskussion

Unterschiede je Environment

  • Cloud Datenbank-Services
  • Hardening der Umgebungen
  • Security-Advices vs. 08/15-Images

Existierende GDIs migrieren

  • Nur TODO oder auch SHOULDWE?
  • Nicht automatisch profitieren von e.g. Cloud
Quelle
Quelle

Security

  • Weitere Angriffsoberfläche
  • Vertrauen
  • Empfehlungen zu Docker Security
  • Erhöhte Komplexität?
  • Lösung Base Image / Alternative
  • OSS-(Security-)Updates?
  • Widerspruch zu inhärenten Philosophie?

Schulung & Win & Corporate Setup

  • Proxy (2-fach)
  • Ordnerfreigaben
  • Verschiedene Windows Betriebssysteme

summa summarum

  • Es ist erstaunlich einfach eine solche GDI zu kompositionieren…
  • …aber es braucht anschließend noch Aufwand & Liebe, um stabile und sichere GDI zu haben

Vielen Dank


Fragen & Anmerkungen?


Impressum

Impressum

Autor

Marc Jansen
terrestris GmbH & Co. KG
Kölnstr. 99, 53111 Bonn
Germany
jansen@terrestris.de

Lizenz

Diese Folien sind unter CC BY-SA veröffentlicht.

Vortragsfolien, PDF-Version, git repository