22
OSM Core Architecture and DevOps Grant Slater @firefishy1 sotm.us - 8 June 2013

OpenStreetMap Core Architecture and DevOps

Embed Size (px)

DESCRIPTION

Presentation at State of the Map US 2013. Video: http://vimeopro.com/openstreetmapus/state-of-the-map-us-2013/video/68087543

Citation preview

Page 1: OpenStreetMap Core Architecture and DevOps

OSM Core Architecture and DevOps

Grant Slater@firefishy1

sotm.us - 8 June 2013

Page 2: OpenStreetMap Core Architecture and DevOps

About Me

● South African living in London● Member of OSM sysadmin

team since 2007● Hardware Monkey● Operation Working Group

(planning, scaling)

● Day Job: Web Developer / Sysadmin

Page 3: OpenStreetMap Core Architecture and DevOps

OSM: Technical challenge

● >1,200,000 signed up users● 3000 mappers a day● 3.5 million unique visitors per month

(osm.org)● 3.0 TB Postgresql Database● High IOPs: Concurrent Read + Write

● tile.openstreetmap.org (rendered map)– Live Map updates (Minute rendering)

– Average of 2700 tiles per second. (5400 tiles per second peak)

– Average: 175Mbits/s

(340Mbit/s peak)

Page 4: OpenStreetMap Core Architecture and DevOps

Small Volunteer Team

● OSM Sysadmins– Tom Hughes

– Grant Slater– Matt Amos

● Local sysadmin– Jon Burgess (Tile)– Sarah Hoffmann (Nominatim)

● Operation Work Group (Planning):– Andy Allan– Emilie Laffray– OSM sysadmins

Page 5: OpenStreetMap Core Architecture and DevOps

Core ServicesPrimary

– OSM.org Website

– api.osm.orgEditing API

– planet.osm.orgRaw osm data exports: weekly, daily, minutely, streaming

Page 6: OpenStreetMap Core Architecture and DevOps

Core ServicesSecondary

Core– tile.osm.org

– nominatim.osm.org (osm map search)

– wiki.osm.org

Page 7: OpenStreetMap Core Architecture and DevOps

ServicesTertiary

● Run by us– help.osm.org (Q&A "stackoverflow")

– blog.osm.org

– wiki.osmfoundation.org

– otrs.osm.org (support tickets)

– piwik.osm.org (site visitor analytics)

– munin.osm.org (monitoring)

– lists.osm.org

– svn.osm.org

– git.osm.org

– trac.osm.org

– irc.osm.org

– dev.osm.org (aka toolserver)

– switch2osm.org

– imagery

● Run by others

– taginfo.osm.org

– forum.osm.org

– ci.osm.org (Continuous Integration)

Page 8: OpenStreetMap Core Architecture and DevOps

Servers! FTW

● Here be Dragons

bunyip draco errol eustace faffy fume gorynych grisu horntail idris jakelong katla konqi lurien nepomuk norbert orm ouroboros poldi ramoth ridgeback ridley sarel shenron smaug spike-01 spike-02 spike-03 tabaluga thorn-01 thorn-02 thorn-03 trogdor urmel yevaud zark

Total: 36

● Standardizing hardware (in progress)–HP Proliant–Supermicro Superserver

Page 9: OpenStreetMap Core Architecture and DevOps

OSM.org (www)

DatabaseServer

Web/RailsServer

Web/RailsServer

Web/RailsServer

FileServer

● Ruby on Railshttp://github.com/openstreetmap/openstreetmap-website

Page 10: OpenStreetMap Core Architecture and DevOps

OSM.org (www + api)

DatabaseServer

Web/RailsServer

Web/RailsServer

Web/RailsServer

RailsServer

+ cgimap

RailsServer

+cgimap

RailsServer

+cgimap

FileServer

● cgimap (api map call) http://github.com/zerebubuth/openstreetmap-cgimap

Page 11: OpenStreetMap Core Architecture and DevOps

OSM.org Database

● PostgreSQL 9.1● Streaming Replication to 2 read servers● 3.0TB of data

Primary DB Server

Slave DB Server Slave DB Server

Page 12: OpenStreetMap Core Architecture and DevOps

Data Export

● Raw OSM XML Data

http://planet.osm.org/– Streaming

– Minutely

– Daily

– Weekly – 370GB uncompressed

Page 13: OpenStreetMap Core Architecture and DevOps

Tile Rendering

● 1 (+1) live rendering servers

● PostGIS (osm2pgsql)● mod_tile (rendering)

http://github.com/openstreetmap/mod_tile

● Map StylesheetRe-implement of the standard OpenStreetMap mapnik style in CartoCSS

Andy Allan is presenting on Carto @ 12:15pmAndy Allan is presenting on Carto @ 12:15pm

http://github.com/gravitystorm/openstreetmap-carto

Preview: http://orm.osm.org/

Page 14: OpenStreetMap Core Architecture and DevOps

Tile CDN

Source: http://dns.openstreetmap.org/tile.openstreetmap.org.html

+ http://git.osm.org/dns.git/blob/HEAD:/src/tile.openstreetmap

Page 15: OpenStreetMap Core Architecture and DevOps

Nominatim (Search)

http://wiki.osm.org/Nominatim

Page 16: OpenStreetMap Core Architecture and DevOps

DevOps"Infrastructure as Code"

● Small team● Many services, often

repeated

Page 17: OpenStreetMap Core Architecture and DevOps

Chef + Git = Win

Page 18: OpenStreetMap Core Architecture and DevOps

Chef + Git

● OpenStreetMap Chef Cookbook Public Repo

http://git.osm.org/chef.git

● All updates reported in #osm-dev (OFTC)

http://irc.osm.org/

● DNS in git (with commit updating)

http://git.osm.org/dns.git

Page 19: OpenStreetMap Core Architecture and DevOps

Monitoring

● Proactive– http://munin.osm.org with alerts to sysadmin team

● Long term planning. Growth.

● Reactive– Pingdom (sms + email alerts)

Page 20: OpenStreetMap Core Architecture and DevOps

Future plans

● API in JSON● Routing (osm.org + debugging)● Additional Read + Write Partitioning of

Database● Additional Tile caching in Americas + Asia● Scaling with growth curve

– > 3% month on month

– > 40% year on year

Page 21: OpenStreetMap Core Architecture and DevOps

Hardware Funding Donation Drive

http://donate.osm.org

74% funding reached

Page 22: OpenStreetMap Core Architecture and DevOps

Questions?