Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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