Top Banner
shomi's journey to chef: lessons learned on implementing chef Augusto Rosa Head of Video & Network Infrastructure Pierre Durrete devops Engineer (aka chef master)

Shomi's Journey to Chef: Lessons Learned on Implementing Chef

Apr 15, 2017



Kate Carcelen
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.

Save the thunder

shomi's journey to chef: lessons learned on implementing chefAugusto Rosa Head of Video & Network InfrastructurePierre Durretedevops Engineer (aka chef master)


who is shomi_?shomi by numberswhere we startedevolutionlessons learnedagenda


who is shomi_shomi is a new kind of instant streaming video subscription service created for entertainment lovers by entertainment lovers that makes discovering entertainment nearly as enjoyable as watching it.


who is shomi_


Node.js, C# back end application, Angular front end.SOA archicture to microservice. 25 M.S. and counting in 9 months.29 billions requests in Q1 2016400+ serversGB/s like traffic at peaksPetabytes of storage requiredshomi behind the scene


Manual layout infrastructure at AWS and Physical (no automation)Servers are treated like pets, not cattleImplemented chef hosted on windows and linuxNo local testingNo version lockingCookbooks not environment agnosticAttributes reside in multiple places (cookbooks, environments, roles)No naming conventionsForking of community cookbooks blocking us from upstream fixeswhere we started



Environments dev, stage and production layout the same way. Same automation.Moved to berkshef cookbooksRun testkitchen locally


evolutionEnvironments dev, stage and production layout the same way. Same automation.Use the Berkshelf Way, Environment Cookbook Pattern:Environment cookbookApplication cookbookWrapper cookbookCommunity cookbookshomi-baseEnvironments per application (Environment Cookbook Pattern), including one application cookbook per software repoImplement testkitchen. Run test locally first.


Follow best practicesEnvironment Cookbook Pattern Chef in a Continuous integration systemVersion control and version locking

Limit powers of who can create environments, build, deployChef hosted can be a challenge as compared to locally. Feature comparison not the sameNot highly available

lessons learned


Do you have questions?

We are hiring at the moment Developers (node.js, front end, C++, .net)Devops Enginners(chef, terraform,)Site Reliability Enginners (sumologic, Newrelic, Datadog, trend analysis)Video Processing Engineers (workflow developers)open for questions