Top Banner
Towards Continuous Delivery at SoundCloud Vitor Pellegrino SoundCloud
62
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Towards Continuous Delivery at SoundCloud

Towards Continuous Delivery at SoundCloud

Vitor PellegrinoSoundCloud

Page 2: Towards Continuous Delivery at SoundCloud
Page 3: Towards Continuous Delivery at SoundCloud
Page 4: Towards Continuous Delivery at SoundCloud

> 11 hours of audio uploaded every minute

~ 300 million people every month

Page 5: Towards Continuous Delivery at SoundCloud

how it all started

Page 6: Towards Continuous Delivery at SoundCloud

➜ ~ rails soundcloud

sometime in 2007

Page 7: Towards Continuous Delivery at SoundCloud

SoundCloud, circa 2011

Page 8: Towards Continuous Delivery at SoundCloud
Page 9: Towards Continuous Delivery at SoundCloud

“Organizations produce systems whose design is a copy of the structure of the

organization”

Melvin Conway (1968)

Page 10: Towards Continuous Delivery at SoundCloud
Page 11: Towards Continuous Delivery at SoundCloud
Page 12: Towards Continuous Delivery at SoundCloud

(really) not a free lunch

Page 13: Towards Continuous Delivery at SoundCloud
Page 14: Towards Continuous Delivery at SoundCloud
Page 15: Towards Continuous Delivery at SoundCloud

tl;dr

• Rapid provisioning• Basic Monitoring• Rapid application deployment

Page 16: Towards Continuous Delivery at SoundCloud

http://bit.ly/sc-microservices

Page 17: Towards Continuous Delivery at SoundCloud

dev ops

Page 18: Towards Continuous Delivery at SoundCloud

how long it would take to deliver a one line

change line in a project?

Page 19: Towards Continuous Delivery at SoundCloud

Idea-> Development -> Review -> Deployment

Page 20: Towards Continuous Delivery at SoundCloud

Value added time

Elapsed time

idea dev review deploy

1 day

2 weeks

10 minutes

1 week

5 minutes

one line change

Page 21: Towards Continuous Delivery at SoundCloud
Page 22: Towards Continuous Delivery at SoundCloud

Continuous Delivery

Page 23: Towards Continuous Delivery at SoundCloud

why is this so important?

Page 24: Towards Continuous Delivery at SoundCloud
Page 25: Towards Continuous Delivery at SoundCloud

Speed vs Quality

Page 26: Towards Continuous Delivery at SoundCloud

compile package Testing Deploy

Page 27: Towards Continuous Delivery at SoundCloud

10x

Page 28: Towards Continuous Delivery at SoundCloud
Page 29: Towards Continuous Delivery at SoundCloud

Quick feedback through automated tests

Late feedback and manual tests

instead of

Page 30: Towards Continuous Delivery at SoundCloud

Test automation using isolated environments

Testing in production

instead of

Page 31: Towards Continuous Delivery at SoundCloud

Deployment automation

Manual deployments

instead of

Page 32: Towards Continuous Delivery at SoundCloud

Build pipelines to orchestrate test and

deployment

Tribal knowledge and manual builds

instead of

Page 33: Towards Continuous Delivery at SoundCloud

Isolated and reliable production environments

Unstable production environments

instead of

Page 34: Towards Continuous Delivery at SoundCloud

DevOps team?

Page 35: Towards Continuous Delivery at SoundCloud

Continuous Delivery collective

Page 36: Towards Continuous Delivery at SoundCloud

Continuous Delivery collective team

Page 37: Towards Continuous Delivery at SoundCloud

> git

SquashFS

> make

unit tests integration tests

acceptance tests perf tests

> make

/dev/null

Page 38: Towards Continuous Delivery at SoundCloud

> make > gitunit tests integration tests

unit tests integration tests

acceptance tests perf tests

Page 39: Towards Continuous Delivery at SoundCloud

what about infrastructure?

Page 40: Towards Continuous Delivery at SoundCloud

infrastructure should be excersized as part of

the pipeline

Page 41: Towards Continuous Delivery at SoundCloud

and it should be driven by a pipeline too

Page 42: Towards Continuous Delivery at SoundCloud
Page 43: Towards Continuous Delivery at SoundCloud
Page 44: Towards Continuous Delivery at SoundCloud

Compromise on implementation, never

on the vision

Page 45: Towards Continuous Delivery at SoundCloud

We iterated. A lot.

Page 46: Towards Continuous Delivery at SoundCloud
Page 47: Towards Continuous Delivery at SoundCloud

do the simplest thing that may work

Page 48: Towards Continuous Delivery at SoundCloud

driving SoundCloud towards this change

Page 49: Towards Continuous Delivery at SoundCloud

Techniques

Page 50: Towards Continuous Delivery at SoundCloud

Continuous Integration

Page 51: Towards Continuous Delivery at SoundCloud

Trunk based development

Page 52: Towards Continuous Delivery at SoundCloud

Integration testing

Page 53: Towards Continuous Delivery at SoundCloud

Tools

Page 54: Towards Continuous Delivery at SoundCloud

e9t (aka environment)

Page 55: Towards Continuous Delivery at SoundCloud

crun

Page 56: Towards Continuous Delivery at SoundCloud

artifact-manager

Page 57: Towards Continuous Delivery at SoundCloud

Closing notes

Page 58: Towards Continuous Delivery at SoundCloud

Understand your workflow

Page 59: Towards Continuous Delivery at SoundCloud

be ready to show people the way

Page 60: Towards Continuous Delivery at SoundCloud

it is a long and exciting journey

Page 61: Towards Continuous Delivery at SoundCloud

Obrigado!

Page 62: Towards Continuous Delivery at SoundCloud

?