This document summarizes the experience of a software engineer transitioning from a Microsoft development background to working with Chef automation tools. It addresses some common questions and challenges faced, including whether learning Ruby is necessary, tips for learning the new language and environment, and strategies for getting Chef configurations and recipes to work successfully on Windows systems. The key takeaways are that the Chef ecosystem provides more flexibility than packaged solutions but requires a DIY approach and learning new techniques, and testing is critical to success.
2. About Me (matt wrock)
Predominately Microsoft dev background
Java developer on windows and solaris/linux before the .net era
10 years in online ad serving platforms
Worked for Microsoft 4 ½ years
Focus on deployment automation and environment setup over past 4 years
Commiter on Chocolatey and Pester
Author of Boxstarter
Software Engineer in Automation and Tools at CenturyLink Cloud
Contributed to WinRM, Vagrant and Test-Kitchen, and more
Blog: HurryUpAndWait.io
Twitter: @mwrockx
6. I have to learn Ruby?
But I’ve never run linux. Am I just starting over?
ArtiWHATory???
Why doesn’t anything work?
I’m gonna send a Pull Request to your HEAD!!
8. Open Source – a DIY approach
Specialized
Small
Composable
Programmable!!
9. Do I have to learn Ruby?
For basic chef usage, you just need to know the recipe
DSL
Want to create provisioning drivers, kitchen or vagrant
plugins, custom knife plugins or wrap central domain
model in a gem? …YES. You need to learn ruby.
10. Careful not to shoehorn Ruby constructs
into familiar .net fundamentals
Example:
Ruby gems is like nuget. Ruby gems
is NOT the same as nuget
12. Language learning tips
Full immersion
◦ No IDEs
◦ Live in the console
Read source code
Contribute to open source even just a
few lines at a time
Embrace failure and experiment
Everything takes longer than you think
It doesn’t take long to discover that chef and many of the apps that surround it were not designed from windows heritage. For the uninitiated, how do we make our way through this tooling and a culture that may feel very unfamiliar? That’s what we are going to be talking about.
Java: Needed concurrency and performance not available in VB6 and ASP
Others may react differently
Get the feeling like we are a third wheel or this is a dialog not intended for our ears. It’s a private party and we’re not invited. And now they are laghing at us.
Initial reaction might be overwhelmed
Demands more skill
Powershell and other modern .net innovations are inspired by Ruby