SlideShare a Scribd company logo
1 of 56
Download to read offline
Take control of your
maps with Docker
OpenMapTiles Project

Klokan Technologies GmbH
Petr Pridal

Martin Mikita
Docker - real life use-cases
Four use-cases for Docker containers:
- Self-hosting world maps
- Scaling of a global map service
- Generating vector tiles (data processing)
- Big data on a cluster (pull job queue)
Maps APIs are not for free!
Pay for integration behind login, commercial apps,
use on the intranet, asset tracking (fleet of
vehicles, ships, IoT), more than 25k visitors a day, …
10k+ USD / year + grows with visitors
Limits for offline use, customisation,
no derivative data, redistribution, …
Self-hosted world maps
Now possible and easy with
OpenSource + OpenData + Docker
This talk:
Best practice, practical demos,
lessons learned, deployment tips, …
World map in containers
Scaling with Docker Swarm
Using the maps (APIs)
Styling the maps
Maps with Docker: Agenda
Generating map tiles
Cluster using Docker
Satellite map & raster tiles
Data packages & hosting
Serving world maps from containers
Global map services using Docker
Community project, data collected by
volunteers (4 million users), GPS tracks,
government open data, tracing, …
“Wikipedia for maps”
Open Database License (ODbL)
OpenStreetMap
4 billion nodes
450 million ways
5 million relations
SQL database, Postgres + PostGIS, …
Global geographic data
Map tiles
Vector map tiles
Replacing raster tiles. Allow rendering on the client.
Klokan Technologies GmbH www.klokantech.com
OpenMapTiles
www.openmaptiles.org
OpenMapTiles Open-Source Project
Containerised open-source tools for working with maps
• Processing OSM and other geodata
• Map server software
• Ready to use open map styles
• Schema - structure of vector tiles
• Visual design editor for maps
• Open Mapbox vector tile format
OpenMapTiles Project
www.openmaptiles.org
50 GBytes
126 million
OpenStreetMap
vector tiles: every
single street,
house, city,
highway, forest,
coast, POI, etc.
Klokan Technologies GmbH www.klokantech.com
OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
Klokan Technologies GmbH www.klokantech.com
Easy-to-use software
Two basic steps:
1. Install docker or docker toolbox
2. Start “openmaptiles-server” container
Available now on Docker Hub and Docker Store
Demo
$ curl -sSL https://get.docker.com/ | sh
$ docker run --rm -it -v $(pwd):/data -p 8080:80 klokantech/
openmaptiles-server
https://openmaptiles.com/server/
OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
Map server in a container
Component structure (monolith / microservices):
• Nginx
• Memcached
• OMT Map Server (or TileServer GL)
The data volume (~60 GBytes for whole world):
• Replicated data (from a snapshot, network FS, copy)
Map server in a container
Low hardware requirements:
- VPS with 8 GB RAM and 60 GB disk
- Raster tiles on demand: require higher spec
- Easy to scale (horizontally and vertically)
HTTP traffic
Volume
Map Server
Memcache
Volume
Map Server Map Server
Load-balancer
HTTP traffic
Memcache Memcache
Volume
Swarm / Kubernetes
HTTP traffic
Volume
Map ServerMemcache
Volume
Map Server
Volume
Map Server
$ docker swarm init --advertise-addr eth0
$ docker service create --replicas 1 --name openmaptiles-
server --mount type=bind,source=$(pwd),destination=/data -
p 8080:80 klokantech/openmaptiles-server
$ docker service scale openmaptiles-server=4
https://openmaptiles.com/server/
Session Name
Title & Company
Speaker Name
Map services - from your server
Vector tiles



MVT clients
Mapbox SDKs
.pbf
Raster tiles



Legacy APIs
Leaflet, OpenLayers, XYZ
.png, ,jpg, .webp
Map services



WMTS, WMS
QGIS, ArcGIS
Static maps



Thumbnails
Print output
Compatibility
JavaScript API:
- Mapbox GL JS, ArcGIS API for JavaScript, …
- OpenLayers (raster+vector tiles)
- Leaflet (XYZ raster tiles), and many more
Mobile SDKs
- Android and iOS: Mapbox, Mapzen, Carto, …
Desktop software:
- ESRI ArcGIS, QGIS, …
Map styles
• Ready to use styles available: just adjust for
your application or business brand
• One style - different outputs (raster, print)
• JSON format - Mapbox open standard:
adopted by ESRI, OpenLayers, etc.
• Visual web editor - for designers
Klokan Technologies GmbH www.klokantech.com
Klokan Technologies GmbH www.klokantech.com
Klokan Technologies GmbH www.klokantech.com
Klokan Technologies GmbH www.klokantech.com
Klokan Technologies GmbH www.klokantech.com
Klokan Technologies GmbH www.klokantech.com
Klokan Technologies GmbH www.klokantech.com
Extensible
• Bring in your own business data:
• Style with multiple sources (GeoJSON, VT)
• Pregenerated combined with dynamic servers
(PostServe, GeoServer, MapServer, etc)
• Any coordinate system and map projection
• Amazing visualisations, data driven styling, etc.
• Large number features, heat maps, live interaction.
Generating map tiles
Vector tiles made with Docker
Hack the source code
- OpenMapTiles GitHub repo:

OSM to Postgres to Vector Tiles
- Same principle for custom geodata
- VT Schema: selection of data for zoom levels
- Community driven, support available
- One VT “layer” per folder in the repo
github.com/openmaptiles
OpenStreetMap to Vector Tiles
Using containers:
Imposm3
SQL
TileLive

Mapnik-VT
$ git clone git@github.com:openmaptiles/openmaptiles.git
$ cd openmaptiles
# launch database container
$ docker-compose up -d postgres
# Import data from external sources like Natural Earth
$ docker-compose run import-water
$ docker-compose run import-natural-earth
$ docker-compose run import-lakelines
$ docker-compose run import-osmborder
# Download raw OpenStreetMap (planet or extract)
$ wget http://download.geofabrik.de/europe/denmark-latest.osm.pbf -O data/
denmark.osm.pbf
$ docker-compose run import-osm
$ docker-compose run import-sql
# Generating vector tiles
$ docker-compose run generate-vectortiles
Big Data Processing
With Docker on a Cluster
OpenMapTiles generating on cluster
Entire planet = 126M tiles
(theoretical 360M)
Divide into 64k jobs
Copy PostGIS database
Merge results back together
Stats:
~128 days of CPU time
1 day scaled across
32 machines, 4 cores
Latest data from rendering OMT
Worker
Input
Storage
(bucket on S3,
GCS, Swift)
• Lease a job
• Download data
• Process data
(while reporting
progress + log)
• Upload results
• Mark as finished
Job Queue
Output
Storage
(bucket on S3,
GCS, Swift)
Mark finished
LogsMetrics
github.com/klokantech/cloudwrapper
Pull a task
Swarm
Kubernetes
Terraform
Worker
Input
Storage
(bucket on S3,
GCS, Swift)
• Lease a job
• Download data
• Process data
(while reporting
progress + log)
• Upload results
• Mark as finished
Job Queue
Output
Storage
(bucket on S3,
GCS, Swift)
Pull a task Mark finished
LogsMetrics
github.com/klokantech/cloudwrapper
Processed geodata…
Vector features
- OpenMapTiles: 4 billion features (OSM)
- Regular releases and weekly updates
OpenMapTiles.com
Raster data

- Petabytes of satellite data (for clients)
- USA aerial imagery (NAIP + HRO) 170 TB
MapTiler.com
MapTiler
OpenMapTiles
Klokan Technologies GmbH www.klokantech.com
OpenMapTiles Satellite
Global cloudless satellite map - ready for self-
hosting.
200 GB download
Released today!
https://openmaptiles.com/satellite/
OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
Klokan Technologies GmbH www.klokantech.com
OpenMapTiles.org
Revolution in self-hosted maps
Powered by Docker

More Related Content

More from Docker, Inc.

Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with BuildxVirtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Docker, Inc.
 

More from Docker, Inc. (20)

Monitoring in a Microservices World
Monitoring in a Microservices WorldMonitoring in a Microservices World
Monitoring in a Microservices World
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
 
Predicting Space Weather with Docker
Predicting Space Weather with DockerPredicting Space Weather with Docker
Predicting Space Weather with Docker
 
Become a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio CodeBecome a Docker Power User With Microsoft Visual Studio Code
Become a Docker Power User With Microsoft Visual Studio Code
 
How to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container RegistryHow to Use Mirroring and Caching to Optimize your Container Registry
How to Use Mirroring and Caching to Optimize your Container Registry
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!Monolithic to Microservices + Docker = SDLC on Steroids!
Monolithic to Microservices + Docker = SDLC on Steroids!
 
Kubernetes at Datadog Scale
Kubernetes at Datadog ScaleKubernetes at Datadog Scale
Kubernetes at Datadog Scale
 
Labels, Labels, Labels
Labels, Labels, Labels Labels, Labels, Labels
Labels, Labels, Labels
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment ModelUsing Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
 
Build & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWSBuild & Deploy Multi-Container Applications to AWS
Build & Deploy Multi-Container Applications to AWS
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
 
Developing with Docker for the Arm Architecture
Developing with Docker for the Arm ArchitectureDeveloping with Docker for the Arm Architecture
Developing with Docker for the Arm Architecture
 
Sharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at ConferencesSharing is Caring: How to Begin Speaking at Conferences
Sharing is Caring: How to Begin Speaking at Conferences
 
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with BuildxVirtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
Virtual Meetup Docker + Arm: Building Multi-arch Apps with Buildx
 
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
DCSF 19 How Entergy is Mitigating Legacy Windows Operating System Vulnerabili...
 
DCSF 19 Developing Apps with Containers, Functions and Cloud Services
DCSF 19 Developing Apps with Containers, Functions and Cloud ServicesDCSF 19 Developing Apps with Containers, Functions and Cloud Services
DCSF 19 Developing Apps with Containers, Functions and Cloud Services
 
DCSF 19 eBPF Superpowers
DCSF 19 eBPF SuperpowersDCSF 19 eBPF Superpowers
DCSF 19 eBPF Superpowers
 
DCSF 19 Zero Trust Networks Come to Enterprise Kubernetes
DCSF 19 Zero Trust Networks Come to Enterprise KubernetesDCSF 19 Zero Trust Networks Come to Enterprise Kubernetes
DCSF 19 Zero Trust Networks Come to Enterprise Kubernetes
 
DCSF 19 Node.js Rocks in Docker for Dev and Ops
DCSF 19 Node.js Rocks in Docker for Dev and OpsDCSF 19 Node.js Rocks in Docker for Dev and Ops
DCSF 19 Node.js Rocks in Docker for Dev and Ops
 
DCSF19 Containers for Beginners
DCSF19 Containers for BeginnersDCSF19 Containers for Beginners
DCSF19 Containers for Beginners
 

Recently uploaded

Recently uploaded (20)

Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
Connecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAKConnecting the Dots in Product Design at KAYAK
Connecting the Dots in Product Design at KAYAK
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
THE BEST IPTV in GERMANY for 2024: IPTVreel
THE BEST IPTV in  GERMANY for 2024: IPTVreelTHE BEST IPTV in  GERMANY for 2024: IPTVreel
THE BEST IPTV in GERMANY for 2024: IPTVreel
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 

Take Control of Your Maps with Docker

  • 1. Take control of your maps with Docker OpenMapTiles Project
 Klokan Technologies GmbH Petr Pridal
 Martin Mikita
  • 2. Docker - real life use-cases Four use-cases for Docker containers: - Self-hosting world maps - Scaling of a global map service - Generating vector tiles (data processing) - Big data on a cluster (pull job queue)
  • 3. Maps APIs are not for free! Pay for integration behind login, commercial apps, use on the intranet, asset tracking (fleet of vehicles, ships, IoT), more than 25k visitors a day, … 10k+ USD / year + grows with visitors Limits for offline use, customisation, no derivative data, redistribution, …
  • 4. Self-hosted world maps Now possible and easy with OpenSource + OpenData + Docker This talk: Best practice, practical demos, lessons learned, deployment tips, …
  • 5. World map in containers Scaling with Docker Swarm Using the maps (APIs) Styling the maps Maps with Docker: Agenda Generating map tiles Cluster using Docker Satellite map & raster tiles Data packages & hosting
  • 6. Serving world maps from containers Global map services using Docker
  • 7. Community project, data collected by volunteers (4 million users), GPS tracks, government open data, tracing, … “Wikipedia for maps” Open Database License (ODbL) OpenStreetMap
  • 8. 4 billion nodes 450 million ways 5 million relations SQL database, Postgres + PostGIS, … Global geographic data
  • 10. Vector map tiles Replacing raster tiles. Allow rendering on the client.
  • 11. Klokan Technologies GmbH www.klokantech.com OpenMapTiles www.openmaptiles.org
  • 12. OpenMapTiles Open-Source Project Containerised open-source tools for working with maps • Processing OSM and other geodata • Map server software • Ready to use open map styles • Schema - structure of vector tiles • Visual design editor for maps • Open Mapbox vector tile format
  • 14. 50 GBytes 126 million OpenStreetMap vector tiles: every single street, house, city, highway, forest, coast, POI, etc.
  • 15. Klokan Technologies GmbH www.klokantech.com
  • 16. OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
  • 17. Klokan Technologies GmbH www.klokantech.com
  • 18. Easy-to-use software Two basic steps: 1. Install docker or docker toolbox 2. Start “openmaptiles-server” container Available now on Docker Hub and Docker Store
  • 19. Demo
  • 20. $ curl -sSL https://get.docker.com/ | sh $ docker run --rm -it -v $(pwd):/data -p 8080:80 klokantech/ openmaptiles-server https://openmaptiles.com/server/
  • 21. OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
  • 22. Map server in a container Component structure (monolith / microservices): • Nginx • Memcached • OMT Map Server (or TileServer GL) The data volume (~60 GBytes for whole world): • Replicated data (from a snapshot, network FS, copy)
  • 23. Map server in a container Low hardware requirements: - VPS with 8 GB RAM and 60 GB disk - Raster tiles on demand: require higher spec - Easy to scale (horizontally and vertically)
  • 25. Volume Map Server Map Server Load-balancer HTTP traffic Memcache Memcache Volume
  • 26. Swarm / Kubernetes HTTP traffic Volume Map ServerMemcache Volume Map Server Volume Map Server
  • 27. $ docker swarm init --advertise-addr eth0 $ docker service create --replicas 1 --name openmaptiles- server --mount type=bind,source=$(pwd),destination=/data - p 8080:80 klokantech/openmaptiles-server $ docker service scale openmaptiles-server=4 https://openmaptiles.com/server/
  • 28. Session Name Title & Company Speaker Name
  • 29. Map services - from your server Vector tiles
 
 MVT clients Mapbox SDKs .pbf Raster tiles
 
 Legacy APIs Leaflet, OpenLayers, XYZ .png, ,jpg, .webp Map services
 
 WMTS, WMS QGIS, ArcGIS Static maps
 
 Thumbnails Print output
  • 30. Compatibility JavaScript API: - Mapbox GL JS, ArcGIS API for JavaScript, … - OpenLayers (raster+vector tiles) - Leaflet (XYZ raster tiles), and many more Mobile SDKs - Android and iOS: Mapbox, Mapzen, Carto, … Desktop software: - ESRI ArcGIS, QGIS, …
  • 31. Map styles • Ready to use styles available: just adjust for your application or business brand • One style - different outputs (raster, print) • JSON format - Mapbox open standard: adopted by ESRI, OpenLayers, etc. • Visual web editor - for designers
  • 32. Klokan Technologies GmbH www.klokantech.com
  • 33. Klokan Technologies GmbH www.klokantech.com
  • 34. Klokan Technologies GmbH www.klokantech.com
  • 35. Klokan Technologies GmbH www.klokantech.com
  • 36. Klokan Technologies GmbH www.klokantech.com
  • 37. Klokan Technologies GmbH www.klokantech.com
  • 38. Klokan Technologies GmbH www.klokantech.com
  • 39. Extensible • Bring in your own business data: • Style with multiple sources (GeoJSON, VT) • Pregenerated combined with dynamic servers (PostServe, GeoServer, MapServer, etc) • Any coordinate system and map projection • Amazing visualisations, data driven styling, etc. • Large number features, heat maps, live interaction.
  • 40. Generating map tiles Vector tiles made with Docker
  • 41. Hack the source code - OpenMapTiles GitHub repo:
 OSM to Postgres to Vector Tiles - Same principle for custom geodata - VT Schema: selection of data for zoom levels - Community driven, support available - One VT “layer” per folder in the repo github.com/openmaptiles
  • 42. OpenStreetMap to Vector Tiles Using containers: Imposm3 SQL TileLive
 Mapnik-VT
  • 43. $ git clone git@github.com:openmaptiles/openmaptiles.git $ cd openmaptiles # launch database container $ docker-compose up -d postgres # Import data from external sources like Natural Earth $ docker-compose run import-water $ docker-compose run import-natural-earth $ docker-compose run import-lakelines $ docker-compose run import-osmborder
  • 44. # Download raw OpenStreetMap (planet or extract) $ wget http://download.geofabrik.de/europe/denmark-latest.osm.pbf -O data/ denmark.osm.pbf $ docker-compose run import-osm $ docker-compose run import-sql # Generating vector tiles $ docker-compose run generate-vectortiles
  • 45. Big Data Processing With Docker on a Cluster
  • 46. OpenMapTiles generating on cluster Entire planet = 126M tiles (theoretical 360M) Divide into 64k jobs Copy PostGIS database Merge results back together Stats: ~128 days of CPU time 1 day scaled across 32 machines, 4 cores Latest data from rendering OMT
  • 47. Worker Input Storage (bucket on S3, GCS, Swift) • Lease a job • Download data • Process data (while reporting progress + log) • Upload results • Mark as finished Job Queue Output Storage (bucket on S3, GCS, Swift) Mark finished LogsMetrics github.com/klokantech/cloudwrapper Pull a task
  • 48. Swarm Kubernetes Terraform Worker Input Storage (bucket on S3, GCS, Swift) • Lease a job • Download data • Process data (while reporting progress + log) • Upload results • Mark as finished Job Queue Output Storage (bucket on S3, GCS, Swift) Pull a task Mark finished LogsMetrics github.com/klokantech/cloudwrapper
  • 49. Processed geodata… Vector features - OpenMapTiles: 4 billion features (OSM) - Regular releases and weekly updates OpenMapTiles.com Raster data
 - Petabytes of satellite data (for clients) - USA aerial imagery (NAIP + HRO) 170 TB MapTiler.com MapTiler OpenMapTiles
  • 50. Klokan Technologies GmbH www.klokantech.com
  • 51. OpenMapTiles Satellite Global cloudless satellite map - ready for self- hosting. 200 GB download Released today! https://openmaptiles.com/satellite/
  • 52. OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
  • 53. OpenMapTiles Satellite / Copernicus Masters OctoGEO s.r.o. - octogeo.com + openmaptiles.com/satellite
  • 54. Klokan Technologies GmbH www.klokantech.com
  • 55.