I needed to setup few servers for QA and provision development environments for my team so I started a small make-based repo where to put all the nasty configuration and provisioning stuff. After few days of work I decided to look for solutions in the world wide web. Then discovered DevOps discipline.
DevOps enlightened me. Is exactly what I was looking for!
I work in an industrial environment with real time and embedded software using tools such as Yocto and scripting. Not related to web development at all and even less with cloud computing… So DevOps was quite far away from my environment, but as a curious guy I started diving into it: Ansible, Docker, Puppet, Salt… And finally I looked into Chef.
Exactly what I was looking for.
Remember my objective: setting up some servers for QA and CI for my team and provisioning our developer environments with the proper tools. Well, Chef is designed exactly for that!
If you don’t know about Ruby, it is a small and nifty language. I recommend to start with the koans.
As a developer, having a language instead of some custom file syntax or an obscure engine is allays a plus. Of course you will have some drawbacks enforcing yourself to deal with infrastructure and setup, but depending on the size of your team, is something you may need to deal with it anyway.
If your team is not enlightened yet by DevOps something you will get from Chef among other similar tools are the DevOps mantras:
- Environment replication.
- Infrastructure as code. (Version controlled)
- Quality and reliability.
Where to start?
Is not in the scope of this blog entry to show Chef, but there are lots of information in their learning portal and some nice books to start with. Is a matter of a couple of days to start doing Chef recipes and organizing your infrastructure just learning Ruby and having a nice introductory reading, I personally read Learning Chef.
Please, let me know if this information was helpful for you!