×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
IF THIS THEN DEPLOY A LOOK INTO IFTTT'S INFRASTRUCTURE @nettofarah 1 / 33
Slide 2
Slide 2 text
nettofarah github.com/nettofarah @nettofarah 2 / 33
Slide 3
Slide 3 text
Disclaimer I'm not a DevOps guy! 3 / 33
Slide 4
Slide 4 text
Senior Product Engineer @ IFTTT 4 / 33
Slide 5
Slide 5 text
Background Millions of Background Jobs every day Over a Billion Events every day 215 (and growing) partner integrations 5 / 33
Slide 6
Slide 6 text
a Rails Monolith 6 / 33
Slide 7
Slide 7 text
How did it all start? 7 / 33
Slide 8
Slide 8 text
Rails Monolith App Great for validating ideas Solid tools for dev and ops 8 / 33
Slide 9
Slide 9 text
Cron Jobs 9 / 33
Slide 10
Slide 10 text
Deploys in Rails 10 / 33
Slide 11
Slide 11 text
Capistrano 11 / 33
Slide 12
Slide 12 text
Capistrano is AWESOME! works for web apps works really well for background jobs too 12 / 33
Slide 13
Slide 13 text
It works amazing until you have to deploy it to a couple of hundred machines 13 / 33
Slide 14
Slide 14 text
Consequences Time outs Long Deploy Cycle Complex deploy code Simultaneous Restarts can kill you! 14 / 33
Slide 15
Slide 15 text
Provisioning with Chef Really good tool But can get complex over time 15 / 33
Slide 16
Slide 16 text
Personal opinion on Chef I have a really hard time figuring out where files should live. 16 / 33
Slide 17
Slide 17 text
Maybe there's a design problem here 17 / 33
Slide 18
Slide 18 text
That's probably true But we're a startup. We have limited resources and need to move fast. 18 / 33
Slide 19
Slide 19 text
A Solution for Deploying to hundreds of servers With Capistrano 19 / 33
Slide 20
Slide 20 text
Deploynamo Async Deploys 20 / 33
Slide 21
Slide 21 text
A Case for Micro Services Teams are growing fast The product and userbase are growing even faster Old code lurking around from years ago 21 / 33
Slide 22
Slide 22 text
We can take out some important parts of the system 22 / 33
Slide 23
Slide 23 text
And turn them into Micro Services Many different languages and datastores. Most of them deployed to Heroku. 23 / 33
Slide 24
Slide 24 text
We love Heroku! 24 / 33
Slide 25
Slide 25 text
Docker comes into the picture 25 / 33
Slide 26
Slide 26 text
What if we could... 26 / 33
Slide 27
Slide 27 text
deploy our services + app to a more homogenous infrastructure? 27 / 33
Slide 28
Slide 28 text
Docker + Mesos + Marathon + Chronos (Not live in production yet) 28 / 33
Slide 29
Slide 29 text
Multiple containers with different roles working together In the same infrastructure 29 / 33
Slide 30
Slide 30 text
We can now tweak our services and have more control over our deployment process 30 / 33
Slide 31
Slide 31 text
Of course it comes at a cost paradigm shift complexity 31 / 33
Slide 32
Slide 32 text
The Future Everything is a Container Images are built automatically New Services are just a new Docker image dropped onto Mesos 32 / 33
Slide 33
Slide 33 text
Questions 33 / 33