IF THIS THEN DEPLOYA LOOK INTO IFTTT'S INFRASTRUCTURE@nettofarah1 / 33
View Slide
nettofarahgithub.com/nettofarah@nettofarah2 / 33
DisclaimerI'm not a DevOps guy!3 / 33
Senior Product Engineer @ IFTTT4 / 33
BackgroundMillions of Background Jobs every dayOver a Billion Events every day215 (and growing) partner integrations5 / 33
a Rails Monolith6 / 33
How did it all start?7 / 33
Rails Monolith AppGreat for validating ideasSolid tools for dev and ops8 / 33
Cron Jobs9 / 33
Deploys in Rails10 / 33
Capistrano11 / 33
Capistrano is AWESOME!works for web appsworks really well for background jobs too12 / 33
It works amazinguntil you have to deploy it to a couple ofhundred machines13 / 33
ConsequencesTime outsLong Deploy CycleComplex deploy codeSimultaneous Restarts can kill you!14 / 33
Provisioning with ChefReally good toolBut can get complex over time15 / 33
Personal opinion on ChefI have a really hard time figuring out wherefiles should live.16 / 33
Maybe there's a design problemhere17 / 33
That's probably trueBut we're a startup. We have limitedresources and need to move fast.18 / 33
A Solution for Deploying tohundreds of serversWith Capistrano19 / 33
DeploynamoAsync Deploys20 / 33
A Case for Micro ServicesTeams are growing fastThe product and userbase are growingeven fasterOld code lurking around from years ago21 / 33
We can take out some importantparts of the system22 / 33
And turn them into Micro ServicesMany different languages and datastores.Most of them deployed to Heroku.23 / 33
We love Heroku!24 / 33
Docker comes into the picture25 / 33
What if we could...26 / 33
deploy our services + appto a more homogenous infrastructure?27 / 33
Docker + Mesos + Marathon +Chronos(Not live in production yet)28 / 33
Multiple containers with differentroles working togetherIn the same infrastructure29 / 33
We can now tweak our services andhave more control over ourdeployment process30 / 33
Of course it comes at a costparadigm shiftcomplexity31 / 33
The FutureEverything is a ContainerImages are built automaticallyNew Services are just a new Docker imagedropped onto Mesos32 / 33
Questions33 / 33