Multiple internal clients web apps: Ruby on Rails services: Ruby on Sinatra, Go, C++ data stores: MySQL, Redis, MongoDB data ingestion: events from web, feeds and UGC Friday, 28 June 13
by our own mobile apps Data from services cached in JSON and XML Message queue to synchronize services and cache API can be scaled independently from services Cache isolates unpredictable external traffic Friday, 28 June 13
experimental codebase Service launched in Jakarta, then Singapore Moved to London in November 2012: Code updated to use services Decide where production lives Friday, 28 June 13
as we scale; admin and logging infrastructure; extensive toolset; no hardware maintenance; fewer in-house skills; global data centers Cons: AWS costs high; already have TechOps skills in- house; large time cost to switch; developers and TechOps have to learn new infrastructure; harder to support continuous deployment; unpredictable latency between servers Friday, 28 June 13
(for now) Direct control of our environment Avoids vendor lock-in Already made investments in: hardware deployment and monitoring infrastructure Friday, 28 June 13
in the future Want to standardize our infrastructure Some components have spiky traffic - e.g. ticket onsale Strong internal DevOps philosophy Friday, 28 June 13
cloud, but by default deploy to data center Move components with unpredictable usage to cloud Cloud-based proxies for high volume services Software is infrastructure agnostic Beware: Latency between cloud and DC Friday, 28 June 13
API isolates external traffic Carefully evaluate the cloud - it is not always the right answer Hybrid solutions put you in control Dan Crow, Songkick, @crowquine Friday, 28 June 13