What has SoundCloud learnt about microservices? Phil Calçado SoundCloud
>11 hours of audio uploaded every minute
~300 million people every month
What we did in 2012-13
SoundCloud.com
Sounds ˝ Social Activity & Sets Graph Stream Premium ˝ Features Search API
Sounds ˝ Social & Sets Graph Activity API Stream Premium ˝ Search Features
api.soundcloud.com iOS Android Desktop Widget 3rd Party
api-mobile api web api-partn iOS 3rd Party Android Desktop Widget
More details http://bit.ly/dealing-with-the-monolith
minimise #1 your fixed cost per app
every new app answers What language? What build system? What I/O lib? How do we deploy? What do we monitor?
typical agile project iteration 0 iteration 1 iteration 2 iteration 3 iteration 4 technical tasks user stories
typical microservices project iteration 0 iteration 1 iteration 2 iteration 3 iteration 4
You will have lots of microservices
Consider having a “standard”, well- supported and documented stack
outsource #2 as much as possible
micro service x-ray app infrastructure
Avoid building as much ˝ infrastructure as possible
some good options
Only infrastructure we need to build is the glue between the lib and our quirks
Avoid having quirks
acknowledge #3 the new complexity
user track likes
typical app user track likes unit test single process run inside an IDE
microservice user track likes integration test multiple processes stubs and fakes
must be easy to provision + +
make #4 everything visible
make interactions visible
standardised dashboards
wrap your #5 legacy with stranglers
not exactly true api-mobile api web api-partn iOS 3rd Party Android Desktop Widget
mothership still alive api web api-partn api.soundcloud.com iOS Android Desktop Widget 3rd Party
api.soundcloud.com Client
api.soundcloud.com strangler Client
api.soundcloud.com strangler Client
api.soundcloud.com strangler Client
what changed changed since 2013?
Stop babysitting ☑ Rails
Enable & empower ☑ app devs
“Experience based” ☒ api?
What comes next?
more devices
IDL based RPC?
ephemeral test environments
phil calçado http://philcalcado.com˝ @pcalcado˝ www.soundcloud.com˝
Recommend
More recommend