Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Running Your Own Rendering Infrastructure (FOSS4G 2014 Edition)

Running Your Own Rendering Infrastructure (FOSS4G 2014 Edition)

Seth Fitzsimmons

September 10, 2014
Tweet

More Decks by Seth Fitzsimmons

Other Decks in Technology

Transcript

  1. Running Your Own
    Rendering
    Infrastructure
    Seth Fitzsimmons

    Stamen Design
    http://flic.kr/p/8sJotc

    View full-size slide

  2. Biases Up Front
    • Hosting maps is only part of what we do
    • Needs to scale with limited attention
    • We use OSM, Natural Earth, + domain-specific
    data
    • This is how we do it, given our unique constraints
    • Conditions change, constantly

    View full-size slide

  3. Golden Gate National
    Parks Conservatory

    View full-size slide

  4. Lessons Learned
    • Your map is an app: version it and include deps
    • Your data is an API
    • Shield what’s fragile
    • Repeat

    View full-size slide

  5. services vs. a Service

    View full-size slide

  6. Goals
    • minimal administrative overhead
    • straightforward to update data and styles
    • cost-effective
    • performant
    • flexible
    • can be handed over to clients with minimal technical capacity
    • horizontally scalable

    View full-size slide

  7. Rules of Thumb
    • If X can be accomplished without shared state,
    don’t use shared state.
    • Use other products’ ops teams to sleep better.
    • Lean on others (people, software) to focus effort.

    View full-size slide

  8. Your Map is an App

    View full-size slide

  9. Your Map is an App
    !
    e.g. https://github.com/stamen/toner-carto

    View full-size slide

  10. Your Data is an API

    View full-size slide

  11. Concerns, Separated
    Ephemeral Caching
    Cache Seeding
    Persistent Caching
    Rendering + Post-Processing
    Data

    View full-size slide

  12. The Cloud?
    http://flic.kr/p/yqcg

    View full-size slide

  13. Concerns, Separated
    Ephemeral Caching
    Cache Seeding
    Persistent Caching
    Rendering + Post-Processing
    Data

    View full-size slide

  14. Ephemeral Caching
    http://flic.kr/p/5RjK9i

    View full-size slide

  15. Cache Seeding
    http://flic.kr/p/PV6hG

    View full-size slide

  16. Persistent Caching
    http://flic.kr/p/joAi8B

    View full-size slide

  17. Rendering + Post-Processing
    http://flic.kr/p/6yqYZv

    View full-size slide

  18. Data
    http://flic.kr/p/4CL7a7

    View full-size slide

  19. tl;dpa
    • Your map is an app
    • Your data is an API
    • Shield what’s fragile
    • Always be iterating
    • Fastly
    • AWS / Heroku
    • github.com/mojodna/tessera

    View full-size slide

  20. Thank you!
    !
    github.com/mojodna
    github.com/stamen
    !
    [email protected]

    View full-size slide