Page 1
Towards Continuous Delivery at SoundCloud
Vitor PellegrinoSoundCloud
Page 4
> 11 hours of audio uploaded every minute
~ 300 million people every month
Page 5
how it all started
Page 6
➜ ~ rails soundcloud
sometime in 2007
Page 7
SoundCloud, circa 2011
Page 9
“Organizations produce systems whose design is a copy of the structure of the
organization”
Melvin Conway (1968)
Page 12
(really) not a free lunch
Page 15
tl;dr
• Rapid provisioning• Basic Monitoring• Rapid application deployment
Page 16
http://bit.ly/sc-microservices
Page 18
how long it would take to deliver a one line
change line in a project?
Page 19
Idea-> Development -> Review -> Deployment
Page 20
Value added time
Elapsed time
idea dev review deploy
1 day
2 weeks
10 minutes
1 week
5 minutes
one line change
Page 22
Continuous Delivery
Page 23
why is this so important?
Page 26
compile package Testing Deploy
Page 29
Quick feedback through automated tests
Late feedback and manual tests
instead of
Page 30
Test automation using isolated environments
Testing in production
instead of
Page 31
Deployment automation
Manual deployments
instead of
Page 32
Build pipelines to orchestrate test and
deployment
Tribal knowledge and manual builds
instead of
Page 33
Isolated and reliable production environments
Unstable production environments
instead of
Page 35
Continuous Delivery collective
Page 36
Continuous Delivery collective team
Page 37
> git
SquashFS
> make
unit tests integration tests
acceptance tests perf tests
> make
/dev/null
Page 38
> make > gitunit tests integration tests
unit tests integration tests
acceptance tests perf tests
Page 39
what about infrastructure?
Page 40
infrastructure should be excersized as part of
the pipeline
Page 41
and it should be driven by a pipeline too
Page 44
Compromise on implementation, never
on the vision
Page 45
We iterated. A lot.
Page 47
do the simplest thing that may work
Page 48
driving SoundCloud towards this change
Page 50
Continuous Integration
Page 51
Trunk based development
Page 52
Integration testing
Page 54
e9t (aka environment)
Page 58
Understand your workflow
Page 59
be ready to show people the way
Page 60
it is a long and exciting journey