Showing all posts tagged chef:

In case you missed it, #ChefConf was this past week and it was amazing. I say it's amazing like a person who knew a great band was playing right down the street, had to work, and missed the performance, but still knew it was amazing. I watched the live stream when I could. I still need to go back and watch it all, but highlight for me so far are the Keynote from OpsCode CTO Chris Brown showing the improvements and capabilities of the hosted Chef Web UI, and also the Keynote by Facebook's Phil Dibowitz.

Chris Brown's Key note on Thursday talked a lot about the future of running Chef through the web UI with great reporting and removing the need to cron or Daemonize chef runs. I'm really looking forward to the roll out to Hosted Chef so I can see about leveraging jobs through the website I normally never touch except when I add a new System Engineer to our account.

Phil's Talk focused on how the were able to leverage Open Source Chef Server to handle a large portion of their environment. They were able to manage 17,000 nodes, doing convergence every 15 minutes, with a single OSS Chef Server and 80% idle CPU. Being able to manage with a single server at that scale amazes me still. In case you were wondering, yes, Chef works amazingly well at scale.

After the conclusion of #ChefConf, quite a few people decided to hold hack days. I wasn't able to make it out to any locations that were hosting so I just wrote a quick cookbook that I was kicking around my head. It's fairly simple and can either dynamically or statically generate an /etc/hosts file for all Chef nodes in your environment or whole deployment. I tried to give some guidance as to how to customize it as you see fit. Go ahead and fork it over on github!

If you missed the conference, most, if not all of the keynotes are available on live stream. They're well worth your time if you're tired of doing things by hand or with janky bash scripts.
Last Month, I was lucky enough to get invited to an Alpha presentation for Chef Cookbook Authoring with Bento, Vagrant, and Berkshelf put on by OpsCode. In using Chef I've had a rough time figuring out the best way to iterate and update cookbooks without the risking disruption to production servers that use my cookbooks. I had to hard code cookbook versions for all my environments, and increment my cookbook versions in my test environments for testing. This lead to a lot of editing json, uploading, knifing, stabbing and gnashing of teeth. Not being a very good rubyist made this especially painful. I considered using my chef repo with chef-solo and testing deploys on temporary machines in AWS, but that has a cost associated with it that I'd rather not pay. Plus there's always the possibility that my cookbook updates would overwrite existing cookbooks and total bork my production servers, if I wasn't careful.

When Charles Johnson from OpsCode mentioned the premise of this training I was eager to jump in and find a Better Way to iterate and test my chef code. Coming from an Ops background I wasn't aware of a lot of development principles for code development. It mostly boils down to code -> build -> deploy -> test, rinse, repeat. This can get a bit tedious and expensive when building and deploying to physical machines, and slightly less when building to AWS or another cloud provider. It’s still tedious though.

Enter Vagrant, Bento, and Berkshelf.

Vagrant allows you to spin up virtual machines locally via VirtualBox. Bento provides chef ready images, and Berkshelf provides dependency resolution for your recipes. This allows you to rapidly prototype cookbooks and recipes without the cost of servers, or the risk of deploying test cookbooks to your Chef-Server or hosted Chef.

Berkshelf is maintained by Riot Games (yes that Riot Games) and has a great feature that allows you to specify a chef repo hosted in git. Most users will likely just point to the community cookbooks, and there’s very little reason not to. For my company, we’ve forked and made changes to the community cookbooks to better suit our needs and how we use chef roles and chef environments. We also heavily leverage chef search to create templates for many recipes so just using a repo isn’t ideal. Still, we’re able to do a lot of rapid prototyping with Vagrant, Bento, and Berkshelf.

The talk is really shaping up to be incredible. If you’re a chef heavy shop, or you’re just starting to learn the ins and outs of chef, I think you should consider attending the class at ChefConf. Despite experiencing the Alpha version, I’d still love to attend the “production class." #ChefConf is April 24 - 26.