Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What has SoundCloud learnt about Microservices?


Published on

Presentation: "What has SoundCloud learnt about Microservices?"
Track: Monoliths & Microservices / Time: Friday 11:30 - 12:20 / Location: Hall 10
SoundCloud is the largest repository of audio on the web, used by more than 200 million people every month who upload more than 11 hours of audio every minute.

Over the past few years we migrated from a typical monolithic architecture to microservices, and during this journey we found out what is real and what is hype about this buzzword.

When does "the best tool for the job" break? What is available as open-source software and what will you have to build yourself? How to move from several deploys a day from dozens of deploys of dozens of different apps and keep sanity? How to deal with shared code bases? How does one even test all these moving parts? How big should a microservice be, anyway?

In this talk, let's discuss the results of our discovery phase and what technologies, architecture patterns and processes we have adopted as our default toolbox.


Phil Calcado
Biography: Phil Calcado
Phil Calçado is a Director of Engineering at SoundCloud, where he writes code and helps teams build a scalable and maintainable service. Before moving to Berlin, he spent four years as a Lead Consultant for ThoughtWorks, where he helped clients build systems in whatever crazy stack they had decided to use.

Twitter: @pcalcado

Published in: Software
  • Hello! Get Your Professional Job-Winning Resume Here - Check our website!
    Are you sure you want to  Yes  No
    Your message goes here

What has SoundCloud learnt about Microservices?

  1. 1. What has SoundCloud learnt about microservices? Phil Calçado SoundCloud
  2. 2. >11 hours of audio uploaded every minute
  3. 3. ~300 million people every month
  4. 4. What we 2012-13 did in
  5. 5.
  6. 6. Sounds ˝ & Sets Social Graph Activity Stream Premium ˝ Features Search API
  7. 7. Sounds ˝ & Sets Social Graph Activity Stream API Premium ˝ Features Search
  8. 8. iOS Android Desktop Widget 3rd Party
  9. 9. api-mobile api web api-partn iOS Android Desktop Widget 3rd Party
  10. 10. More details
  11. 11. minimise fixed cost your per app #1
  12. 12. every new app answers What language? What I/O lib? What build system? How do we deploy? What do we monitor?
  13. 13. typical agile project iteration 0 iteration 1 iteration 2 iteration 3 iteration technical tasks user stories
  14. 14. typical microservices project iteration 0 iteration 1 iteration 2 iteration 3 iteration
  15. 15. You will have lots of microservices
  16. 16. Consider having a “standard”, well-supported and documented stack
  17. 17. outsource as possible as much #2
  18. 18. micro service x-ray app infrastructure
  19. 19. Avoid building as much ˝ infrastructure as possible
  20. 20. some good options
  21. 21. Only infrastructure we need to build is the glue between the lib and our quirks
  22. 22. Avoid having quirks
  23. 23. acknowledge complexity the new #3
  24. 24. user likes track
  25. 25. typical app user likes track unit test single process run inside an IDE
  26. 26. microservice user likes track integration test multiple processes stubs and fakes
  27. 27. must be easy to provision + +
  28. 28. make visible everything #4
  29. 29. make interactions visible
  30. 30. standardised dashboards
  31. 31. wrap your legacy with stranglers #5
  32. 32. api-mobile api web api-partn iOS Android Desktop Widget 3rd Party not exactly true
  33. 33. mothership still alive api web api-partn iOS Android Desktop Widget 3rd Party
  34. 34. Client
  35. 35. strangler Client
  36. 36. strangler Client
  37. 37. strangler Client
  38. 38. what changed changed since 2013?
  39. 39. Stop babysitting Rails ☑
  40. 40. Enable & empower☑ app devs
  41. 41. “Experience based” ☒ api?
  42. 42. What comes next?
  43. 43. more devices
  44. 44. IDL based RPC?
  45. 45. ephemeral test environments
  46. 46. phil calçado˝ @pcalcado˝˝