Slide 1

Slide 1 text

Running Your Own Rendering Infrastructure Seth Fitzsimmons Stamen Design http://flic.kr/p/8sJotc

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Golden Gate National Parks Conservatory

Slide 4

Slide 4 text

Toner

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

services vs. a Service

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

Your Map is an App

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Your Data is an API

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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