Certified Chef Developer
A little while ago I started tackling the Chef certification exams that have been made available. After completing all five of the AWS Certs (not including betas!) - see below - I wanted a new challenge to work towards. In this post I am going to try and break down my experience of the process my thoughts on it all.
Yesterday, I found out I had passed my most recent exam which meant that I had earned the title of Certified Chef Developer. It feels great to have finally completed the journey as it was a little bumpy throughout (as discussed in my previous post)
AWS Hall of fame Elite list
The current certification track for Certified Chef Developer is broken down into multiple "badges". Each badge has 1 or more exams and you have to have obtained 3 badges in order to get the title/cert. Also, the badges are transferable and required for yet to be released tracks.The track consists of the following:
- Basic Chef fluency badge exam (Completed, 87%)
- Local Cookbook Development part 1 (Completed, 80%)
- Local Cookbook Development part 2 (Completed, 100%)
- Extending Chef Part 1 (TBC)
- Extending Chef Part 2 (TBC)
- Deploying Cookbooks (Completed, 80%)
I have been working with Chef since day 1 of my time at Cloudreach, from updating existing recipes in simple cookbooks to writing custom resources to build AWS Infrastructure or spending 3 months living in New York City to up-skill a team on how to use Chef within their organisation. I would like to think my experience with Chef is both broad and deep in complexity levels, thinking this, it felt like it was time to put my money where my mouth is and solidify my knowledge by completing the first lot of Chef certifications.
With this in mind, I set off on the path and got my first exam booked.
Basic Chef Fluency
Basic Chef Fluency Badge
This badge, as it is named, aims to test you on your basic chef knowledge - take a look at the exam scope here and you will see there is a large number of areas that this first badge covers. My advice here is that the scope is fairly accurate. Whilst I won't (and probably can't) go into detail on the content of the exam, I would suggest making sure you are comfortable with every aspect of the scope. I found there was a question or two that covered more or less everything listed.
The pass mark for the exam is 70% and I was able to achieve 87% with some re-reading and a bit of knife command remembering. The exam is made up of 40 multiple choice questions so you are going to need to 28 correct answers to pass.
I would recommend digging through knife commands, especially those you are less sure about and make sure you know what they do and when to use them, on top of this, understand the components that make up the Chef platform - such as organisations, roles, data bags and of course cookbooks.
Overall, I found this exam to be the right level of challenging and it does make you think about some of the more obscure areas that you might not use day to day.
Take a look at the details for this exam here
Local Cookbook Development Part 1
Next on the list, Local Cookbook Development, part 1. This exam was set up in the exact same way as the first. Multiple choices, 40 questions, 1 hour. The difference here is that the pass mark jumps up to 80% and you must pass part 1 to even be able to book part 2. Ouch.
The focus on this exam is on cookbook development (derr) so this time you are thinking more about Berkshelf, versioning, cookbook components and dependencies rather than general knife/chef usage. The format of the questions are the same and are along the lines of "given X recipe, what is the outcome" etc. Basically, know how to write a good cookbook that you'd be happy releasing to the community Supermarket and also how to debug it if it broke.
It took me two attempts to pass this, eventually getting exactly 80% - phew! Practice makes perfect I guess :)
It took me three attempts to complete the exam (notice complete, not pass - I had a bunch of issues that I’ve covered on my personal blog) and on the third attempt when I got to do the exam properly, I must say I found the exam..
END OF NERD ALERT
Yup, that's right. The exam basically gave you skeleton cookbook and your job is to make the cookbook do what it's supposed to, following some instructions given to you. I felt more than comfortable with what was being asked of me and so was able to get on with it without worry - which is a great feeling to have during a professional exam!
The efforts clearly paid off here as I was able to pass the exam with a cheeky 100% - Whoop!
Tips for this exam would be the same as Part 1, except this time you are putting it into practice.
With part 2 completed, I got an average of 90% for the badge in total and was able to check it off my list.
- In-depth look at libraries, Handlers, Ohai and Custom Resources
- 2 parts, 1 theory 1 practical.
Overall I found the Extending Chef exam pretty difficult as it was a deeper look at an area of Chef I was less familiar with. I was less surprised when I found out I had failed the first part due to this fact. The exam had a lot of focus (as per the scope) on Libraries, Custom Resources, Ohai plugins and Handlers and questions generally provide you with options that mostly sounded correct but it is that extra bit of experience that I was lacking that helps to whittle it down to the expected and actual right answer.
I think this exam and my result for it are a good example of where the Chef Certification is aimed at people who actually know and use Chef often, rather than simply studying to pass. I'm sure people can and will study just to pass but I like the fact that this isn't aimed at everyone.
- Focus on cookbook deployment
- Dependency management
- Environments, roles and data bags
- Node attribute searching
- 1 exam, made up of multiple choice theory questions with practical tasks to answer said questions.
I found out about this newly released exam a little while ago, after Chef reached out to me to offer me early beta access to the exam. Stated as an alternative path to the Certified Chef Developer certification, Deploying Cookbooks focuses much more on elements such as Cookbook dependencies, Using Environments, PolicyFile vs Roles etc. This was my favourite exam so far as it had a great mix of practical and theory in a single exam. Throughout, you have access to docs.chef.io which I used to verify some of my answers. You also have access to a VM throughout that has a chef dev environment setup - meaning you can run knife commands to get answers and verify your thought path.
I feel this exam was much more realistic. In reality, I would have access to all these tools (and our friend Google) to troubleshoot issues or validate solutions - You still need to know and have knowledge in the topics to know what to look for if you are validating an answer so I would certainly say don't rely on this resource throughout.
Where to next?
Now that I am certified, the pressure has been lifted for now. I would like to have another crack at the Extending Chef exam as it would be good to have all 4 badges. Soon, Chef will be releasing at least 1 more Certification path which will be made up of additional badges, plus the ones they already have - So having all 4 under my belt will surely speed that process up.
My main takeaway and advice for the Chef certifications are to be confident in almost all areas in the Badge Scopes. I found more often than not that the exam scope was extensive and accurate in comparison to the exam content. If you are planning to go down this route yourself and you are not sure about any of the major topics mentioned, definitely give yourself enough time to practice and perfect your cooking skills.
I hope people will get benefit from my breakdown. The aim of the post was to educate others on the process for the exams. If anyone finds themselves with issues during the exam process, get in touch with Chef Support and speak to someone who deals with certifications.
Some cool ways to do this is to be as practical as possible. Set up your own Chef org at manage.chef.io and go about creating a well-made cookbook that implements multiple dependencies, tests, Libraries/Custom Resources etc. Then practice managing and deploying these changes to multiple nodes - preferably differing OS platform and families to give you that extra bit of insight.
Good luck and let me know what you all think about the process. Have you already completed? How did your experience compare to mine? It'd be great to see.