Experiences from implementing chef in the Enterprise | Charles Richards | LTG-25
Experiences from implementing chef in
Softhouse Lean Tribe – 19th February 2015
Scott Russell Charles Richards
Devops Evangelist EMEA partner program
Journey to the coded business and background
Choose tools wisely, keep faith in the journey
Tools, dictate tools, be careful of the momentum
Expand team, train, educate and “Build” enthusiasm, not just artifacts!
Demo regularly and often. Invite “all corners” of the company
D-T-P – the Dev/Test/Prod Issue
Put workflow in the pipeline – Q: there’s a pipeline?
Lessons learned on the Journey
Journey to the Coded business and background
• No clear plan initially
• Attended a pragprog ruby course and covered Capistrano for deployment (?)
• Never encountered developers bothering with deployment ( 2010?)(?)
• Played around with Capistrano and Websitrano, Got deployment working, but
• Looked at Chef, and alternatives, Choose Chef.
• Spent a month, thinking that Chef was feature rich, and doubting the choice.
• Enlightenment. It started to make sense, but still reservations about journey
Choose Tools Wisely
• Choose Chef
• Choose Subversion for Source control – Corporate Standard
• One month later – tiring of converting Git cookbooks to Subversion
• Switch to Git – enormous resistance within Org, but Workflow becomes easier
• Fast paced development of Chef means upgrades/bugfixes and functionality
• Two week lag on chef release to in-house upgrades ( yes it was worth it! )
• Choose Jenkins – more later
• Realisation that Chef implementation is actually bigger than one person
• Expand team to take on dedicated “Chef”, not a cook
• Try to do the “big” complex application cookbook(s)
• Resulted in a 6 month delay before any results
• Re-evaluate. Do the small applications - Break the elephant into chunks
• Discover, Chef focused person does not make a good sysadmin.
• Pair chef expert and domain expert, now cookbooks rock!
Train and Educate – build Enthusiasm
• Chef Fundamentals training for all the team
• This happened late in the cycle and left some team members in the cold
• No point training if not using immediately after, or before
• Choose the team/participants carefully, people who are onboard are the goal
• Attend conferences – this is so new, that is best place to learn, from peers
• Contaminate other teams. Encourage movement to/from other teams
Dev/Test/Prod Issue D-T-P
• Variation in build, different sysadmin/developer for each build?
• Problems already solved in Dev appear in Test.
• Problems already solved in Dev and Test appear in Production
• Problems already solved …..in Production occur months after go live
• Traffic or load dependant issues surface months later.
• Looks like a “new’ problem, but actually it is months/years old and known!
Put workflow in the pipeline Q: there’s a pipeline?
• Put Jenkins into the cookbook workflow to allow faster builds
• Realise, actually, Jenkins is so useful you can use it to orchestrate builds
• Realise that you can combine git, chef, jenkins and use this for deployment
• Realise that you can allow your business users access to Jenkins jobs
• Who presses the deployment button now? Dev/Test/Production
is a chef,
End Game Automation Business Process
Lessons Learned on the journey
• Questions may only appear along the Journey.
• Not everyone is a Chef, we need cooks too.
• In a rapidly changing technology space, Upgrade early, upgrade often
• Domain expert combined with Chef expert is the preferred model
• Stop repeated learning, in Dev, Test and Production ( D-T-P )
• Institutional Knowledge retained within scripts