SlideShare ist ein Scribd-Unternehmen logo
1 von 57
GeoServer in production
We do it, here it is how!
Ing. Andrea Aime
Ing. Simone Giannecchini
GeoSolutions
GeoSolutions
 Founded in Italy in late 2006
 Expertise
• Image Processing, GeoSpatial Data Fusion
• Java, Java Enterprise, C++, Python
• JPEG2000, JPIP, Advanced 2D visualization
 Supporting/Developing FOSS4G projects
 GeoServer, MapStore
 GeoNetwork, GeoNode, Ckan
 Clients
 Public Agencies
 Private Companies
 http://www.geo-solutions.it
FOSS4G 2017, Boston
August 14th-19th 2017
Contents
 Intro
 Preparing raster data
 Preparing vector data
 Optimizing styling
 Output tuning
 Tiling and caching
 Resource control
 Deploy considerations
 In Production care
FOSS4G 2017, Boston
August 14th-19th 2017
Intro
FOSS4G 2017, Boston
August 14th-19th 2017
Basic Info
 GeoServer release model
 Time boxed
 Development
 Stable
 Maintenance
 Don’t be scared by nightly releases
 Basic Optimizations
 Study your data
 Study your users
 Study the deployment environment
 Using your brain is the first optimization
FOSS4G 2017, Boston
August 14th-19th 2017
Objectives
https://www.youtube.com/watch?v=GDpmVUEjagg
FOSS4G 2017, Boston
August 14th-19th 2017
Data preparation objectives
 Objectives
 Fast extraction of a subset of the data
 Fast extraction at the desired scale
denominator/zoom level
 Check-list
 Avoid having to open a large number of files per
request
 Avoid parsing of complex structures and slow
compressions
 Get to know your bottlenecks
 CPU vs Disk Access Time vs Memory
FOSS4G 2017, Boston
August 14th-19th 2017
Preparing raster inputs
FOSS4G 2017, Boston
August 14th-19th 2017
Problematic input formats
 PNG/JPEG direct serving
 Bad formats (especially in Java)
 No tiling (or rarely supported)
 Chew a lot of memory and CPU for
decompression
 Mitigate with external overviews
 Any input ASCII format (GML grid, ASCII grid)
 ECW, fast, compresses well, but…
 Did you know you have to buy a license to use it on server
side software?
FOSS4G 2017, Boston
August 14th-19th 2017
JPEG 2000 on the rise (but…)
 Becoming more and more popular with satellite
imagery
 Extensible and rich, not (always) fast, can be difficult
to tune for performance (might require specific
encoding options)
 For now, fast serving at scale requires a proprietary
library (Kakadu)
 But keep an eye on OpenJPEG, effort underway to
make it faster/use less memory:
http://www.openjpeg.org/

FOSS4G 2017, Boston
August 14th-19th 2017
GeoTIFF for the win
 To remember: GeoTiff is a swiss knife
 But you don’t want to cut a tree with it!
 Tremendously flexible, good for for most (not all)
use cases
 BigTiff pushes the GeoTiff limits farther
 Use GeoTiff when
 Overviews and Tiling stay within 4GB
 No additional dimensions
 Consider BigTiff for very large file (> 4 GB)
 Support for tiling
 Support for Overviews
 Can be inefficient with very large files + small
tiling
FOSS4G 2017, Boston
August 14th-19th 2017
Possible structures
Single GeoTiff
with internal tiling
and overviews
(GeoTiff < 2GB,
BigTiff < 20-50GB)
Mosaic of GeoTiff, each one
with internal tiling and overviews
(< 500GB, not too many files)
Pyramid
1
2
3
FOSS4G 2017, Boston
August 14th-19th 2017
Choosing formats and layouts
 For single granules (< 20Gb) GeoTiff is generally a
good fit
 Use ImageMosaic when:
 A single file gets too big (inefficient seeks, too much
metadata to read, etc..)
 Multiple Dimensions (time, elevation, others..)
 Avoid mosaics made of many very small files
 Single granules can be large
 Use Tiling + Overviews + Compression on granules
 Use ImagePyramid when:
 Tremendously large dataset
 Too many files / too large files
 Need to serve at all scales
 Especially low resolution
FOSS4G 2017, Boston
August 14th-19th 2017
Raster data preparation
 Re-organize (merge files, create pyramid, reproject)
 Compress (eventually)
 Retile, add overviews
 Get all the details in our training material:
FOSS4G 2017, Boston
August 14th-19th 2017
http://geoserver.geo-solutions.it/edu/en/raster_data/index.html
Preparing vector inputs
FOSS4G 2017, Boston
August 14th-19th 2017
Choosing a format
 Slow formats, text
based, not indexed
 WFS
 GML
 DXF
 CSV
 GeoJSON
 Good formats, local
and indexable
 Shapefile
 GeoPackage
 Spatial databases:
PostGIS, Oracle
Spatial, DB2, SQL
server, MySQL
 NoSQL: SOLR,
MongoDB, …
FOSS4G 2017, Boston
August 14th-19th 2017
DBMS checklist
 Choose PostGIS if you can, it has the best query
planner for spatial and plans every query based on
the query parameter (GIS makes for wildly different
optimal plans depending on the bbox you queried)
 Rich support for complex native filters
 Use connection pooling
 Validate connections (with proper pooling)
 Table Clustering
 Spatial and Alphanumeric Indexing
 Spatial and Alphanumeric Indexing
 Spatial and Alphanumeric Indexing
 …
 Did we mention indexes?
FOSS4G 2017, Boston
August 14th-19th 2017
Connection pooling tricks
 Connection pool size should be proportional to the
number of concurrent requests you want to serve (obvious
no?)
 Activate connection validation
 Mind networking tools that might cut connections sitting
idle (yes, your server is not always busy), they might cut
the connection in “bad” ways (10 minutes timeout before
the pool realizes the TCP connection attempt gives up)
 Read more
 Advanced Database Connection Pooling
Configuration
 DBMS Connections Params Explained
FOSS4G 2017, Boston
August 14th-19th 2017
Shapefile preparation
 Remove .qix file if present (GeoServer will recreate it,
sometimes better optimized)
 If there are large DBF attributes that are not in use, get
rid of them using ogr2ogr, e.g.:
ogr2ogr -select FULLNAME,MTFCC arealm.shp
tl_2010_08013_arealm.shp
 If on Linux, enable memory mapping, faster, more
scalable (but will kill Windows):
FOSS4G 2017, Boston
August 14th-19th 2017
Shapefile filtering
 Stuck with shapefiles and have scale dependent
rules like the following?
 Show highways first
 Show all streets when zoomed in
 Use ogr2ogr to build two shapefiles, one with just
the highways, one with everything, and build two
layers, e.g.:
ogr2ogr -sql "SELECT * FROM
tl_2010_08013_roads WHERE MTFCC in
('S1100', 'S1200')" primaryRoads.shp
tl_2010_08013_roads.shp
 Or hire us to develop non-spatial indexing for
shapefile!
FOSS4G 2017, Boston
August 14th-19th 2017
Optimize styling
FOSS4G 2017, Boston
August 14th-19th 2017
Use scale dependencies
 Never show too much data
 the map should be readable, not a graphic blob. Rule of
thumb: 1000 features max in the display
 Show details as you zoom in
 Eagerly add MinScaleDenominator to your rules
 Add more expensive rendering when there are less
features
 Key to get both a good looking and fast map
FOSS4G 2017, Boston
August 14th-19th 2017
Labeling
 Labeling conflict resolution is expensive, limit to the
most inner zooms
 Careful with maxDisplacement, makes for various
label location attempts
 GeoServer 2.9 onwards has per char space allocation,
much better looking labelling, but more expensive
too, disable if in dire need via sysvar
–Dorg.geotools.disableLetterLevelCache=true
FOSS4G 2017, Boston
August 14th-19th 2017
FeatureTypeStyle
 GeoServer uses SLD FeatureTypeStyle objects as Z
layers for painting
 Each one allocates its own rendering surface (which
can use a lot of memory), use as few as possible
FOSS4G 2017, Boston
August 14th-19th 2017
z-ordering
 Use DBMS as the data source
 Add indexes on the fields used for z-ordering
 If at all possible, use cross-feature type and cross-layer
z-ordering on small amounts of data (we need to go
back and forth painting it)
FOSS4G 2017, Boston
August 14th-19th 2017
Tiling and caching
FOSS4G 2017, Boston
August 14th-19th 2017
Tile caching with GWC
 Tile oriented maps, fixed zoom levels and fixed grid
 Useful for stable layers, backgrounds
 Protocols: WMTS, TMS, WMS-C, Google Maps/Earth,
VE
 Speedup compared to dynamic WMS: 10 to 100 times,
assuming tiles are already cached (whole layer pre-
seeded)
 Suitable for:
 Mostly static layer
 No/few dynamic parameters (CQL filters, SLD
params, SQL query params, time/elevation,
format options)
FOSS4G 2017, Boston
August 14th-19th 2017
Embedded GWC advantage
 No double encoding when using meta-tiling, faster
seeding
FOSS4G 2017, Boston
August 14th-19th 2017
Space considerations
 Seeding Colorado, assuming 8 cores, one layer, 0.1 sec
756x756 metatile, 15KB for each tile
 Do yours: http://tinyurl.com/3apkpss
 Not enough disk space? Set a disk quota
Zoom
level
Tile count Size (MB)
Time to seed
(hours)
Time to
seed (days)
13 58,377 1 0 0
14 232,870 4 0 0
15 929,475 14 0 0
16 3,713,893 57 1 0
17 14,855,572 227 6 0
18 59,396,070 906 23 1
19 237,584,280 3,625 92 4
20 950,273,037 14,500 367 15
FOSS4G 2017, Boston
August 14th-19th 2017
Client side cache
 Make client not request tiles, use their local cache
instead
 HTTP headers, time to live, eTag
 Does not work with browsers in private mode
<expireClientsList>
<expirationRule minZoom="0" expiration="7200" />
<expirationRule minZoom="10" expiration="600" />
</expireClientsList>
FOSS4G 2017, Boston
August 14th-19th 2017
Choose the right format
 Use the right formats:
 JPEG for background data (e.g. ortos)
 PNG8 + precomputed palette for
background vector data (e.g. basemaps)
 PNG8 full for vector overlays with
transparency
 image/vnd.jpeg-png for raster overlays
with transparency
 The format impacts also the disk space
needed! (as well as the generation time)
 Check this blog post
FOSS4G 2017, Boston
August 14th-19th 2017
Vector tiles
 Extension to support vector tiles
 Still new, but:
 PNG encoding is often 50% of the request
time when there is little data in the tile
 Gone with Vector tiles
 Vector tiles allow over-zooming, meaning
you can build less zoom levels (reducing
the total size by a factor of 4 or 16)
 Vector tiles are more compact
 However, not an OGC/ISO standard
FOSS4G 2017, Boston
August 14th-19th 2017
MBTiles Cache Store Support
 New community module
 Available from 2.9.2
 Doc here
 File Path Templates
 {layer}/{grid}{format}{params}/{z}-{x}-{y}.sqlite
 {layer}/{grid}{format}{params}/standardMbTiles.sqlite
 Replace Operation
 Seed offline then replace online!
 Coupled with in memory caching delivers high
performance!
FOSS4G 2017, Boston
August 14th-19th 2017
Independent Caches Option
 Each node in the cluster is
given its own cache on local
disk
 Trading disk occupation for
speed
 Good fit for clustered
environments
 Network file systems may
suffer under write load
 Shared Configuration
 Independent operations
 Especially valuable for dynamic,
non fully seeded caches
FOSS4G 2017, Boston
August 14th-19th 2017
GWC Cache
GWC Cache
GWC Cache
GWC Cache
Configuration
Resource control
FOSS4G 2017, Boston
August 14th-19th 2017
What happens on your server
FOSS4G 2017, Boston
August 14th-19th 2017
Set the Resource Limits
 Limit the amount of resources dedicated to an
individual request
 Improve fairness between requests, by preventing
individual requests from hijacking the server and/or
running for a very long time
 EXTREMELY IMPORTANT in production environment
 WHEN TO TWEAK THEM?
 Frequent OOM Errors despite plenty of RAM
 Requests that keep running for a long time (e.g.
CPU usage peaks even if no requests are being
sent)
 DB Connection being killed by the DBMS while in
usage (ok, you might also need to talk to the DBA..)
FOSS4G 2017, Boston
August 14th-19th 2017
Resource limits per service
WMS
WFS WCS
FOSS4G 2017, Boston
August 14th-19th 2017
Control-flow
 Control how many requests are executed in parallel,
queue others:
 Increase throughput
 Control memory usage
 Enforce fairness
 More info here
FOSS4G 2017, Boston
August 14th-19th 2017
Control-flow
$GEOSERVER_DATA_DIR/controlflow.properties
# don't allow more than 16 GetMap requests in parallel
ows.wms.getmap=16
FOSS4G 2017, Boston
August 14th-19th 2017
Throughput(req/s)
Concurrent users
Allow all incoming
requests to run
Limit to concurrency to
optimal value with control flow
JVM and deploy configuration
FOSS4G 2017, Boston
August 14th-19th 2017
Go back and optimize the rest first
 There is no “GO FAST!” option in the Java
Virtual Machine
 The options discussed here are not going to
help if you did not prepare the data and the
styles
 They are finishing touches that can get
performance up once the major data
bottlenecks have been dealt with
 Check “Running in production” instructions
here
FOSS4G 2017, Boston
August 14th-19th 2017
JVM settings
 --server: enables the server JIT compiler
 --Xms2048m -Xmx2048m: sets the JVM use two
gigabytes of memory
 --XX:+UseParallelOldGC -XX:+UseParallelGC:
enables multi-threaded garbage collections, useful if
you have more than two cores (G1 provides
inconsistent results, needs more testing)
 --XX:NewRatio=2: informs the JVM there will be a
high number of short lived objects
 --XX:+AggressiveOpt: enable experimental
optimizations that will be defaults in future versions
of the JVM
FOSS4G 2017, Boston
August 14th-19th 2017
Marlin renderer
 The OpenJDK Java2D renderer scales up, but it’s not
super-fast when the load is small (1 request at a time)
 The Oracle JDK Java2D renderer is fast for the single
request, but does not scale up
 Marlin-renderer to the rescue:
https://github.com/bourgesl/marlin-renderer
 It is already the
official renderer for
OpenJDK 9 (beta)
 But for now
GeoServer won’t
run on JDK 9!
FOSS4G 2017, Boston
August 14th-19th 2017
Upgrade!
 Performance tends to go up version by version
 Please do use a recent GeoServer version
 FOSS4G 2010 vector benchmark with different
versions of GeoServer, throughput keeps on
improving
FOSS4G 2017, Boston
August 14th-19th 2017
Raster subsystem configuration
 Install the TurboJPEG extension
 Enable JAI Mosaicking native
acceleration
 Give JAI enough memory
 Don’t raise JAI memory
Threshold too high
 Rule of thumb: use 2 X #Core
Tile Threads (check next slide)
 Play with tile Recycling against
your workflows (might help,
might not)
FOSS4G 2017, Boston
August 14th-19th 2017
We are in prod, now what?
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 When the going gets tough, the tough get
going!
 Performance suboptimal
 OOM
 Occasional Deadlocks and Stalls
 Hang tight before reading next line…
 That is normal!
 Don’t have any of these problems that means
nobody uses your services
 Reaching PROD does not mean the work has
ended!*
* hello beloved client, did you read that?
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Ok, we are in the same boat
 Thanks, but what can I do?
 Here some key concepts
 Logging
 Monitoring
 Metering
 You want to be able to know what
happens before it actually happens*!
 or better before someone call you on the phone screaming
and shouting!
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Logging
 When you are sick, a good doctor should
ask you how you feel, right?
 We should do the same with GeoServer
 Logs are hard to read
 Logging levels are your friend
 Look for known errors first
 Logs of a network exposed service are
usually full of errors and exceptions
 Unless nobody uses that service 
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Monitoring
 When you are in PROD you have to
understand and monitor every bit
involved
 DBMS, Disks
 CPU, Memory , Network
 Other Software
 Proactivity
 Alerting  low RAM, high cpu, low disk
space
 Actions  service dead/stuck then restart
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Monitoring
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Monitoring
 Troubleshooting GeoServer
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Metering
 Measuring KPI is crucial
 Response Time
 Throughput
 Interesting questions can be asked
 What is the slowest layer?
 Which kind of requests are slow?
 Who is sending the slowest requests?
 Who is actually using my service?
 Auditing Extension + Analytics Stack is what
you need!
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Metering
FOSS4G 2017, Boston
August 14th-19th 2017
When in production
 Document the entire infrastructure
 Monitor every bit
 Use alerts and actions to be proactive
 Keep calm and take snapshots before
taking actions
 Is there any magic?
 Well knowing your components
inside out helps a lot 
FOSS4G 2017, Boston
August 14th-19th 2017
That’s all folks!
Questions?
info@geo-solutions.it
FOSS4G 2017, Boston
August 14th-19th 2017

Weitere ähnliche Inhalte

Was ist angesagt?

Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...GeoSolutions
 
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...GeoSolutions
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesCreating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesGeoSolutions
 
Getting Started with PostGIS
Getting Started with PostGISGetting Started with PostGIS
Getting Started with PostGISEDB
 
Enterprise GIS
Enterprise GIS Enterprise GIS
Enterprise GIS Esri
 
Metadata Matters! What it is and How to Manage it
Metadata Matters! What it is and How to Manage itMetadata Matters! What it is and How to Manage it
Metadata Matters! What it is and How to Manage itSafe Software
 
Advanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFenceAdvanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFenceGeoSolutions
 
GeoServer an introduction for beginners
GeoServer an introduction for beginnersGeoServer an introduction for beginners
GeoServer an introduction for beginnersGeoSolutions
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS MinPa Lee
 
PostGIS and Spatial SQL
PostGIS and Spatial SQLPostGIS and Spatial SQL
PostGIS and Spatial SQLTodd Barr
 
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기Byeong-Hyeok Yu
 
Introduction To PostGIS
Introduction To PostGISIntroduction To PostGIS
Introduction To PostGISmleslie
 
DATABASE & WEBGIS - GIS BOOTCAMP
DATABASE & WEBGIS - GIS BOOTCAMPDATABASE & WEBGIS - GIS BOOTCAMP
DATABASE & WEBGIS - GIS BOOTCAMPKevin Ng'eno
 
WMS Performance Shootout 2010
WMS Performance Shootout 2010WMS Performance Shootout 2010
WMS Performance Shootout 2010Jeff McKenna
 
오픈소스 GIS 실습 (1)
오픈소스 GIS 실습 (1)오픈소스 GIS 실습 (1)
오픈소스 GIS 실습 (1)Byeong-Hyeok Yu
 
Geopaparazzi Survey Server workshop
Geopaparazzi Survey Server workshopGeopaparazzi Survey Server workshop
Geopaparazzi Survey Server workshopAndrea Antonello
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google mapsVisionGÉOMATIQUE2012
 
QGIS 실습 (총 7차시)
QGIS 실습 (총 7차시)QGIS 실습 (총 7차시)
QGIS 실습 (총 7차시)Byeong-Hyeok Yu
 
Intro To PostGIS
Intro To PostGISIntro To PostGIS
Intro To PostGISmleslie
 
Mapserver vs. geoserver
Mapserver vs. geoserverMapserver vs. geoserver
Mapserver vs. geoserver鸣 饶
 

Was ist angesagt? (20)

Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...Enterprise class deployment  for GeoServer and GeoWebcache Optimizing perform...
Enterprise class deployment for GeoServer and GeoWebcache Optimizing perform...
 
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...Raster data in GeoServer and GeoTools:  Achievements, issues and future devel...
Raster data in GeoServer and GeoTools: Achievements, issues and future devel...
 
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS stylesCreating Stunning Maps in GeoServer: mastering SLD and CSS styles
Creating Stunning Maps in GeoServer: mastering SLD and CSS styles
 
Getting Started with PostGIS
Getting Started with PostGISGetting Started with PostGIS
Getting Started with PostGIS
 
Enterprise GIS
Enterprise GIS Enterprise GIS
Enterprise GIS
 
Metadata Matters! What it is and How to Manage it
Metadata Matters! What it is and How to Manage itMetadata Matters! What it is and How to Manage it
Metadata Matters! What it is and How to Manage it
 
Advanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFenceAdvanced GeoServer Security with GeoFence
Advanced GeoServer Security with GeoFence
 
GeoServer an introduction for beginners
GeoServer an introduction for beginnersGeoServer an introduction for beginners
GeoServer an introduction for beginners
 
PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS PostGIS - National Education Center for GIS: Open Source GIS
PostGIS - National Education Center for GIS: Open Source GIS
 
PostGIS and Spatial SQL
PostGIS and Spatial SQLPostGIS and Spatial SQL
PostGIS and Spatial SQL
 
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
지리정보체계(GIS) - [1] GIS 데이터 유형, 구조 알기
 
Introduction To PostGIS
Introduction To PostGISIntroduction To PostGIS
Introduction To PostGIS
 
DATABASE & WEBGIS - GIS BOOTCAMP
DATABASE & WEBGIS - GIS BOOTCAMPDATABASE & WEBGIS - GIS BOOTCAMP
DATABASE & WEBGIS - GIS BOOTCAMP
 
WMS Performance Shootout 2010
WMS Performance Shootout 2010WMS Performance Shootout 2010
WMS Performance Shootout 2010
 
오픈소스 GIS 실습 (1)
오픈소스 GIS 실습 (1)오픈소스 GIS 실습 (1)
오픈소스 GIS 실습 (1)
 
Geopaparazzi Survey Server workshop
Geopaparazzi Survey Server workshopGeopaparazzi Survey Server workshop
Geopaparazzi Survey Server workshop
 
Introduction au webmapping au-dela de google maps
Introduction au webmapping  au-dela de google mapsIntroduction au webmapping  au-dela de google maps
Introduction au webmapping au-dela de google maps
 
QGIS 실습 (총 7차시)
QGIS 실습 (총 7차시)QGIS 실습 (총 7차시)
QGIS 실습 (총 7차시)
 
Intro To PostGIS
Intro To PostGISIntro To PostGIS
Intro To PostGIS
 
Mapserver vs. geoserver
Mapserver vs. geoserverMapserver vs. geoserver
Mapserver vs. geoserver
 

Ähnlich wie GeoServer in Production: we do it, here is how!

[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...
[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...
[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...Hyung-Gyu Ryoo
 
Readinggroup xiang 24112016
Readinggroup xiang 24112016Readinggroup xiang 24112016
Readinggroup xiang 24112016Xiang Zhang
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...GeoSolutions
 
Devteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearchDevteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearchTaswar Bhatti
 
Fossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationFossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationGeoSolutions
 
Saving Money with Open Source GIS
Saving Money with Open Source GISSaving Money with Open Source GIS
Saving Money with Open Source GISbryanluman
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServerJody Garnett
 
uStorage - A storage architecture to provide Block-level Storage through Obje...
uStorage - A storage architecture to provide Block-level Storage through Obje...uStorage - A storage architecture to provide Block-level Storage through Obje...
uStorage - A storage architecture to provide Block-level Storage through Obje...Felipe Gutierrez
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...GeoSolutions
 
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...Kohei KaiGai
 
Open Source GIS
Open Source GISOpen Source GIS
Open Source GISJoe Larson
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016GeoSolutions
 
NoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresNoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresEDB
 
OSGeo Conferences Report
OSGeo Conferences ReportOSGeo Conferences Report
OSGeo Conferences ReportJeff McKenna
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening OverviewJody Garnett
 
WMS Performance Shootout 2011
WMS Performance Shootout 2011WMS Performance Shootout 2011
WMS Performance Shootout 2011Jeff McKenna
 
map3d_mapguide_postgis
map3d_mapguide_postgismap3d_mapguide_postgis
map3d_mapguide_postgisPrasad PANDIT
 
Foss4 g 2017-kansai-ryoo-kim
Foss4 g 2017-kansai-ryoo-kimFoss4 g 2017-kansai-ryoo-kim
Foss4 g 2017-kansai-ryoo-kimOSgeo Japan
 

Ähnlich wie GeoServer in Production: we do it, here is how! (20)

[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...
[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...
[FOSS4G 2017 Boston]Development of an extension of Geoserver for handling 3D ...
 
Readinggroup xiang 24112016
Readinggroup xiang 24112016Readinggroup xiang 24112016
Readinggroup xiang 24112016
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...
 
Devteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearchDevteach 2017 Store 2 million of audit a day into elasticsearch
Devteach 2017 Store 2 million of audit a day into elasticsearch
 
Fossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer PresentationFossgis 2013 GeoServer Presentation
Fossgis 2013 GeoServer Presentation
 
Saving Money with Open Source GIS
Saving Money with Open Source GISSaving Money with Open Source GIS
Saving Money with Open Source GIS
 
State of GeoServer
State of GeoServerState of GeoServer
State of GeoServer
 
uStorage - A storage architecture to provide Block-level Storage through Obje...
uStorage - A storage architecture to provide Block-level Storage through Obje...uStorage - A storage architecture to provide Block-level Storage through Obje...
uStorage - A storage architecture to provide Block-level Storage through Obje...
 
Things to do with OpenStreetMap
Things to do with OpenStreetMapThings to do with OpenStreetMap
Things to do with OpenStreetMap
 
Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...Using GeoServer for spatio-temporal data management with examples for MetOc a...
Using GeoServer for spatio-temporal data management with examples for MetOc a...
 
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
 
Open Source GIS
Open Source GISOpen Source GIS
Open Source GIS
 
State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016State of GeoServer - FOSS4G 2016
State of GeoServer - FOSS4G 2016
 
NoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured PostgresNoSQL on ACID - Meet Unstructured Postgres
NoSQL on ACID - Meet Unstructured Postgres
 
OSGeo Conferences Report
OSGeo Conferences ReportOSGeo Conferences Report
OSGeo Conferences Report
 
Big dataclasses 2019_nosql
Big dataclasses 2019_nosqlBig dataclasses 2019_nosql
Big dataclasses 2019_nosql
 
OSGeo Live Lightening Overview
OSGeo Live Lightening OverviewOSGeo Live Lightening Overview
OSGeo Live Lightening Overview
 
WMS Performance Shootout 2011
WMS Performance Shootout 2011WMS Performance Shootout 2011
WMS Performance Shootout 2011
 
map3d_mapguide_postgis
map3d_mapguide_postgismap3d_mapguide_postgis
map3d_mapguide_postgis
 
Foss4 g 2017-kansai-ryoo-kim
Foss4 g 2017-kansai-ryoo-kimFoss4 g 2017-kansai-ryoo-kim
Foss4 g 2017-kansai-ryoo-kim
 

Mehr von GeoSolutions

MapStore 2 - The Story
MapStore 2 - The StoryMapStore 2 - The Story
MapStore 2 - The StoryGeoSolutions
 
One GeoNode, many GeoNodes
One GeoNode, many GeoNodesOne GeoNode, many GeoNodes
One GeoNode, many GeoNodesGeoSolutions
 
Introduction to GeoNode
Introduction to GeoNodeIntroduction to GeoNode
Introduction to GeoNodeGeoSolutions
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...GeoSolutions
 
GeoServer Feature FRENZY
GeoServer Feature FRENZYGeoServer Feature FRENZY
GeoServer Feature FRENZYGeoSolutions
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12GeoSolutions
 
MapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and ReactMapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and ReactGeoSolutions
 
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017GeoSolutions
 
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...GeoSolutions
 
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...GeoSolutions
 
Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015GeoSolutions
 
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoSolutions
 
Advanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServerAdvanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServerGeoSolutions
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingSpatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingGeoSolutions
 
GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015GeoSolutions
 
GeoServer beginners gwf_2015
GeoServer beginners gwf_2015GeoServer beginners gwf_2015
GeoServer beginners gwf_2015GeoSolutions
 
Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04GeoSolutions
 
Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015GeoSolutions
 
Introduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGCIntroduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGCGeoSolutions
 
Advanced Security With GeoServer
Advanced Security With GeoServerAdvanced Security With GeoServer
Advanced Security With GeoServerGeoSolutions
 

Mehr von GeoSolutions (20)

MapStore 2 - The Story
MapStore 2 - The StoryMapStore 2 - The Story
MapStore 2 - The Story
 
One GeoNode, many GeoNodes
One GeoNode, many GeoNodesOne GeoNode, many GeoNodes
One GeoNode, many GeoNodes
 
Introduction to GeoNode
Introduction to GeoNodeIntroduction to GeoNode
Introduction to GeoNode
 
Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...Serving earth observation data with GeoServer: addressing real world requirem...
Serving earth observation data with GeoServer: addressing real world requirem...
 
GeoServer Feature FRENZY
GeoServer Feature FRENZYGeoServer Feature FRENZY
GeoServer Feature FRENZY
 
State of GeoServer 2.12
State of GeoServer 2.12State of GeoServer 2.12
State of GeoServer 2.12
 
MapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and ReactMapStore 2, modern mashups with OL3, Leaflet and React
MapStore 2, modern mashups with OL3, Leaflet and React
 
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
 
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
Crunching Data In GeoServer: Mastering Rendering Transformations, WPS Process...
 
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
Raster Data In GeoServer and GeoTools: Achievements, Issues And Future Develo...
 
Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015Mapping the world beyond web mercator - FOSS4G 2015
Mapping the world beyond web mercator - FOSS4G 2015
 
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
GeoServer for Spatio-temporal Data Handling With Examples For MetOc And Remot...
 
Advanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServerAdvanced Cartographic Map Rendering in GeoServer
Advanced Cartographic Map Rendering in GeoServer
 
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote SensingSpatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
Spatio-temporal Data Handling With GeoServer for MetOc And Remote Sensing
 
GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015GeoSolutions Keynote at WebMGS 2015
GeoSolutions Keynote at WebMGS 2015
 
GeoServer beginners gwf_2015
GeoServer beginners gwf_2015GeoServer beginners gwf_2015
GeoServer beginners gwf_2015
 
Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04Geosolutions gwf-2015-v01.04
Geosolutions gwf-2015-v01.04
 
Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015Geoserver introduction, GeoBusiness 2015
Geoserver introduction, GeoBusiness 2015
 
Introduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGCIntroduzione a GeoServer ed ai servizi OGC
Introduzione a GeoServer ed ai servizi OGC
 
Advanced Security With GeoServer
Advanced Security With GeoServerAdvanced Security With GeoServer
Advanced Security With GeoServer
 

Kürzlich hochgeladen

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 

Kürzlich hochgeladen (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 

GeoServer in Production: we do it, here is how!

  • 1. GeoServer in production We do it, here it is how! Ing. Andrea Aime Ing. Simone Giannecchini GeoSolutions
  • 2. GeoSolutions  Founded in Italy in late 2006  Expertise • Image Processing, GeoSpatial Data Fusion • Java, Java Enterprise, C++, Python • JPEG2000, JPIP, Advanced 2D visualization  Supporting/Developing FOSS4G projects  GeoServer, MapStore  GeoNetwork, GeoNode, Ckan  Clients  Public Agencies  Private Companies  http://www.geo-solutions.it FOSS4G 2017, Boston August 14th-19th 2017
  • 3. Contents  Intro  Preparing raster data  Preparing vector data  Optimizing styling  Output tuning  Tiling and caching  Resource control  Deploy considerations  In Production care FOSS4G 2017, Boston August 14th-19th 2017
  • 5. Basic Info  GeoServer release model  Time boxed  Development  Stable  Maintenance  Don’t be scared by nightly releases  Basic Optimizations  Study your data  Study your users  Study the deployment environment  Using your brain is the first optimization FOSS4G 2017, Boston August 14th-19th 2017
  • 7. Data preparation objectives  Objectives  Fast extraction of a subset of the data  Fast extraction at the desired scale denominator/zoom level  Check-list  Avoid having to open a large number of files per request  Avoid parsing of complex structures and slow compressions  Get to know your bottlenecks  CPU vs Disk Access Time vs Memory FOSS4G 2017, Boston August 14th-19th 2017
  • 8. Preparing raster inputs FOSS4G 2017, Boston August 14th-19th 2017
  • 9. Problematic input formats  PNG/JPEG direct serving  Bad formats (especially in Java)  No tiling (or rarely supported)  Chew a lot of memory and CPU for decompression  Mitigate with external overviews  Any input ASCII format (GML grid, ASCII grid)  ECW, fast, compresses well, but…  Did you know you have to buy a license to use it on server side software? FOSS4G 2017, Boston August 14th-19th 2017
  • 10. JPEG 2000 on the rise (but…)  Becoming more and more popular with satellite imagery  Extensible and rich, not (always) fast, can be difficult to tune for performance (might require specific encoding options)  For now, fast serving at scale requires a proprietary library (Kakadu)  But keep an eye on OpenJPEG, effort underway to make it faster/use less memory: http://www.openjpeg.org/  FOSS4G 2017, Boston August 14th-19th 2017
  • 11. GeoTIFF for the win  To remember: GeoTiff is a swiss knife  But you don’t want to cut a tree with it!  Tremendously flexible, good for for most (not all) use cases  BigTiff pushes the GeoTiff limits farther  Use GeoTiff when  Overviews and Tiling stay within 4GB  No additional dimensions  Consider BigTiff for very large file (> 4 GB)  Support for tiling  Support for Overviews  Can be inefficient with very large files + small tiling FOSS4G 2017, Boston August 14th-19th 2017
  • 12. Possible structures Single GeoTiff with internal tiling and overviews (GeoTiff < 2GB, BigTiff < 20-50GB) Mosaic of GeoTiff, each one with internal tiling and overviews (< 500GB, not too many files) Pyramid 1 2 3 FOSS4G 2017, Boston August 14th-19th 2017
  • 13. Choosing formats and layouts  For single granules (< 20Gb) GeoTiff is generally a good fit  Use ImageMosaic when:  A single file gets too big (inefficient seeks, too much metadata to read, etc..)  Multiple Dimensions (time, elevation, others..)  Avoid mosaics made of many very small files  Single granules can be large  Use Tiling + Overviews + Compression on granules  Use ImagePyramid when:  Tremendously large dataset  Too many files / too large files  Need to serve at all scales  Especially low resolution FOSS4G 2017, Boston August 14th-19th 2017
  • 14. Raster data preparation  Re-organize (merge files, create pyramid, reproject)  Compress (eventually)  Retile, add overviews  Get all the details in our training material: FOSS4G 2017, Boston August 14th-19th 2017 http://geoserver.geo-solutions.it/edu/en/raster_data/index.html
  • 15. Preparing vector inputs FOSS4G 2017, Boston August 14th-19th 2017
  • 16. Choosing a format  Slow formats, text based, not indexed  WFS  GML  DXF  CSV  GeoJSON  Good formats, local and indexable  Shapefile  GeoPackage  Spatial databases: PostGIS, Oracle Spatial, DB2, SQL server, MySQL  NoSQL: SOLR, MongoDB, … FOSS4G 2017, Boston August 14th-19th 2017
  • 17. DBMS checklist  Choose PostGIS if you can, it has the best query planner for spatial and plans every query based on the query parameter (GIS makes for wildly different optimal plans depending on the bbox you queried)  Rich support for complex native filters  Use connection pooling  Validate connections (with proper pooling)  Table Clustering  Spatial and Alphanumeric Indexing  Spatial and Alphanumeric Indexing  Spatial and Alphanumeric Indexing  …  Did we mention indexes? FOSS4G 2017, Boston August 14th-19th 2017
  • 18. Connection pooling tricks  Connection pool size should be proportional to the number of concurrent requests you want to serve (obvious no?)  Activate connection validation  Mind networking tools that might cut connections sitting idle (yes, your server is not always busy), they might cut the connection in “bad” ways (10 minutes timeout before the pool realizes the TCP connection attempt gives up)  Read more  Advanced Database Connection Pooling Configuration  DBMS Connections Params Explained FOSS4G 2017, Boston August 14th-19th 2017
  • 19. Shapefile preparation  Remove .qix file if present (GeoServer will recreate it, sometimes better optimized)  If there are large DBF attributes that are not in use, get rid of them using ogr2ogr, e.g.: ogr2ogr -select FULLNAME,MTFCC arealm.shp tl_2010_08013_arealm.shp  If on Linux, enable memory mapping, faster, more scalable (but will kill Windows): FOSS4G 2017, Boston August 14th-19th 2017
  • 20. Shapefile filtering  Stuck with shapefiles and have scale dependent rules like the following?  Show highways first  Show all streets when zoomed in  Use ogr2ogr to build two shapefiles, one with just the highways, one with everything, and build two layers, e.g.: ogr2ogr -sql "SELECT * FROM tl_2010_08013_roads WHERE MTFCC in ('S1100', 'S1200')" primaryRoads.shp tl_2010_08013_roads.shp  Or hire us to develop non-spatial indexing for shapefile! FOSS4G 2017, Boston August 14th-19th 2017
  • 21. Optimize styling FOSS4G 2017, Boston August 14th-19th 2017
  • 22. Use scale dependencies  Never show too much data  the map should be readable, not a graphic blob. Rule of thumb: 1000 features max in the display  Show details as you zoom in  Eagerly add MinScaleDenominator to your rules  Add more expensive rendering when there are less features  Key to get both a good looking and fast map FOSS4G 2017, Boston August 14th-19th 2017
  • 23. Labeling  Labeling conflict resolution is expensive, limit to the most inner zooms  Careful with maxDisplacement, makes for various label location attempts  GeoServer 2.9 onwards has per char space allocation, much better looking labelling, but more expensive too, disable if in dire need via sysvar –Dorg.geotools.disableLetterLevelCache=true FOSS4G 2017, Boston August 14th-19th 2017
  • 24. FeatureTypeStyle  GeoServer uses SLD FeatureTypeStyle objects as Z layers for painting  Each one allocates its own rendering surface (which can use a lot of memory), use as few as possible FOSS4G 2017, Boston August 14th-19th 2017
  • 25. z-ordering  Use DBMS as the data source  Add indexes on the fields used for z-ordering  If at all possible, use cross-feature type and cross-layer z-ordering on small amounts of data (we need to go back and forth painting it) FOSS4G 2017, Boston August 14th-19th 2017
  • 26. Tiling and caching FOSS4G 2017, Boston August 14th-19th 2017
  • 27. Tile caching with GWC  Tile oriented maps, fixed zoom levels and fixed grid  Useful for stable layers, backgrounds  Protocols: WMTS, TMS, WMS-C, Google Maps/Earth, VE  Speedup compared to dynamic WMS: 10 to 100 times, assuming tiles are already cached (whole layer pre- seeded)  Suitable for:  Mostly static layer  No/few dynamic parameters (CQL filters, SLD params, SQL query params, time/elevation, format options) FOSS4G 2017, Boston August 14th-19th 2017
  • 28. Embedded GWC advantage  No double encoding when using meta-tiling, faster seeding FOSS4G 2017, Boston August 14th-19th 2017
  • 29. Space considerations  Seeding Colorado, assuming 8 cores, one layer, 0.1 sec 756x756 metatile, 15KB for each tile  Do yours: http://tinyurl.com/3apkpss  Not enough disk space? Set a disk quota Zoom level Tile count Size (MB) Time to seed (hours) Time to seed (days) 13 58,377 1 0 0 14 232,870 4 0 0 15 929,475 14 0 0 16 3,713,893 57 1 0 17 14,855,572 227 6 0 18 59,396,070 906 23 1 19 237,584,280 3,625 92 4 20 950,273,037 14,500 367 15 FOSS4G 2017, Boston August 14th-19th 2017
  • 30. Client side cache  Make client not request tiles, use their local cache instead  HTTP headers, time to live, eTag  Does not work with browsers in private mode <expireClientsList> <expirationRule minZoom="0" expiration="7200" /> <expirationRule minZoom="10" expiration="600" /> </expireClientsList> FOSS4G 2017, Boston August 14th-19th 2017
  • 31. Choose the right format  Use the right formats:  JPEG for background data (e.g. ortos)  PNG8 + precomputed palette for background vector data (e.g. basemaps)  PNG8 full for vector overlays with transparency  image/vnd.jpeg-png for raster overlays with transparency  The format impacts also the disk space needed! (as well as the generation time)  Check this blog post FOSS4G 2017, Boston August 14th-19th 2017
  • 32. Vector tiles  Extension to support vector tiles  Still new, but:  PNG encoding is often 50% of the request time when there is little data in the tile  Gone with Vector tiles  Vector tiles allow over-zooming, meaning you can build less zoom levels (reducing the total size by a factor of 4 or 16)  Vector tiles are more compact  However, not an OGC/ISO standard FOSS4G 2017, Boston August 14th-19th 2017
  • 33. MBTiles Cache Store Support  New community module  Available from 2.9.2  Doc here  File Path Templates  {layer}/{grid}{format}{params}/{z}-{x}-{y}.sqlite  {layer}/{grid}{format}{params}/standardMbTiles.sqlite  Replace Operation  Seed offline then replace online!  Coupled with in memory caching delivers high performance! FOSS4G 2017, Boston August 14th-19th 2017
  • 34. Independent Caches Option  Each node in the cluster is given its own cache on local disk  Trading disk occupation for speed  Good fit for clustered environments  Network file systems may suffer under write load  Shared Configuration  Independent operations  Especially valuable for dynamic, non fully seeded caches FOSS4G 2017, Boston August 14th-19th 2017 GWC Cache GWC Cache GWC Cache GWC Cache Configuration
  • 35. Resource control FOSS4G 2017, Boston August 14th-19th 2017
  • 36. What happens on your server FOSS4G 2017, Boston August 14th-19th 2017
  • 37. Set the Resource Limits  Limit the amount of resources dedicated to an individual request  Improve fairness between requests, by preventing individual requests from hijacking the server and/or running for a very long time  EXTREMELY IMPORTANT in production environment  WHEN TO TWEAK THEM?  Frequent OOM Errors despite plenty of RAM  Requests that keep running for a long time (e.g. CPU usage peaks even if no requests are being sent)  DB Connection being killed by the DBMS while in usage (ok, you might also need to talk to the DBA..) FOSS4G 2017, Boston August 14th-19th 2017
  • 38. Resource limits per service WMS WFS WCS FOSS4G 2017, Boston August 14th-19th 2017
  • 39. Control-flow  Control how many requests are executed in parallel, queue others:  Increase throughput  Control memory usage  Enforce fairness  More info here FOSS4G 2017, Boston August 14th-19th 2017
  • 40. Control-flow $GEOSERVER_DATA_DIR/controlflow.properties # don't allow more than 16 GetMap requests in parallel ows.wms.getmap=16 FOSS4G 2017, Boston August 14th-19th 2017 Throughput(req/s) Concurrent users Allow all incoming requests to run Limit to concurrency to optimal value with control flow
  • 41. JVM and deploy configuration FOSS4G 2017, Boston August 14th-19th 2017
  • 42. Go back and optimize the rest first  There is no “GO FAST!” option in the Java Virtual Machine  The options discussed here are not going to help if you did not prepare the data and the styles  They are finishing touches that can get performance up once the major data bottlenecks have been dealt with  Check “Running in production” instructions here FOSS4G 2017, Boston August 14th-19th 2017
  • 43. JVM settings  --server: enables the server JIT compiler  --Xms2048m -Xmx2048m: sets the JVM use two gigabytes of memory  --XX:+UseParallelOldGC -XX:+UseParallelGC: enables multi-threaded garbage collections, useful if you have more than two cores (G1 provides inconsistent results, needs more testing)  --XX:NewRatio=2: informs the JVM there will be a high number of short lived objects  --XX:+AggressiveOpt: enable experimental optimizations that will be defaults in future versions of the JVM FOSS4G 2017, Boston August 14th-19th 2017
  • 44. Marlin renderer  The OpenJDK Java2D renderer scales up, but it’s not super-fast when the load is small (1 request at a time)  The Oracle JDK Java2D renderer is fast for the single request, but does not scale up  Marlin-renderer to the rescue: https://github.com/bourgesl/marlin-renderer  It is already the official renderer for OpenJDK 9 (beta)  But for now GeoServer won’t run on JDK 9! FOSS4G 2017, Boston August 14th-19th 2017
  • 45. Upgrade!  Performance tends to go up version by version  Please do use a recent GeoServer version  FOSS4G 2010 vector benchmark with different versions of GeoServer, throughput keeps on improving FOSS4G 2017, Boston August 14th-19th 2017
  • 46. Raster subsystem configuration  Install the TurboJPEG extension  Enable JAI Mosaicking native acceleration  Give JAI enough memory  Don’t raise JAI memory Threshold too high  Rule of thumb: use 2 X #Core Tile Threads (check next slide)  Play with tile Recycling against your workflows (might help, might not) FOSS4G 2017, Boston August 14th-19th 2017
  • 47. We are in prod, now what? FOSS4G 2017, Boston August 14th-19th 2017
  • 48. When in production  When the going gets tough, the tough get going!  Performance suboptimal  OOM  Occasional Deadlocks and Stalls  Hang tight before reading next line…  That is normal!  Don’t have any of these problems that means nobody uses your services  Reaching PROD does not mean the work has ended!* * hello beloved client, did you read that? FOSS4G 2017, Boston August 14th-19th 2017
  • 49. When in production  Ok, we are in the same boat  Thanks, but what can I do?  Here some key concepts  Logging  Monitoring  Metering  You want to be able to know what happens before it actually happens*!  or better before someone call you on the phone screaming and shouting! FOSS4G 2017, Boston August 14th-19th 2017
  • 50. When in production  Logging  When you are sick, a good doctor should ask you how you feel, right?  We should do the same with GeoServer  Logs are hard to read  Logging levels are your friend  Look for known errors first  Logs of a network exposed service are usually full of errors and exceptions  Unless nobody uses that service  FOSS4G 2017, Boston August 14th-19th 2017
  • 51. When in production  Monitoring  When you are in PROD you have to understand and monitor every bit involved  DBMS, Disks  CPU, Memory , Network  Other Software  Proactivity  Alerting  low RAM, high cpu, low disk space  Actions  service dead/stuck then restart FOSS4G 2017, Boston August 14th-19th 2017
  • 52. When in production  Monitoring FOSS4G 2017, Boston August 14th-19th 2017
  • 53. When in production  Monitoring  Troubleshooting GeoServer FOSS4G 2017, Boston August 14th-19th 2017
  • 54. When in production  Metering  Measuring KPI is crucial  Response Time  Throughput  Interesting questions can be asked  What is the slowest layer?  Which kind of requests are slow?  Who is sending the slowest requests?  Who is actually using my service?  Auditing Extension + Analytics Stack is what you need! FOSS4G 2017, Boston August 14th-19th 2017
  • 55. When in production  Metering FOSS4G 2017, Boston August 14th-19th 2017
  • 56. When in production  Document the entire infrastructure  Monitor every bit  Use alerts and actions to be proactive  Keep calm and take snapshots before taking actions  Is there any magic?  Well knowing your components inside out helps a lot  FOSS4G 2017, Boston August 14th-19th 2017