Panagiotis PJ Papadomitsos
56b1e59b6bf44bc58d63d8aa8828c9f7?d=retro
Ranked 20 in Phase 2 with a weighted final score of 178

About the author

Omnilectual know-it-all, BugSense head of infrastructure and stuff, polyglot coder, fell into the Linux cauldron when young...

Scaling and automating the heck out of your infrastructure with Chef

Nobody loves Ops, right? Well nobody except old school System Administrators and new school DevOps advocates. Manually setting up servers, hand-crafting complex configuration files, setting up service monitoring, graphing, logging and alerting (especially in the era of cloud computing where most services count server deployments in the hundreds and thousands) when all you ever wanted is your awesome code to just work!

Fortunately, a bunch of smart dudes (and dudetes) at Opscode (and the amazing surrounding open source community) came in to change that. Enter Chef.

Chef is a configuration management, automation and continuous deployment software stack written in Ruby and Erlang, designed to take over your manual labor over cloud server provisioning, service configuration and application deployment and turn it into a fun and exciting process. Using a complete Ruby environment and an extremely semantic DSL, it helps you provision servers, automate cloud infrastructure and continuously deploy your app, be it on Ruby, Node, Erlang, Python or any other stack of your choice.

The talk will be about Chef fundamentals (installation, concepts, DSL, especially focusing to the newly released Chef 11 and the changes it brings), cookbook management best practices (such as the "application-role" cookbook paradigm) and an extensive reference to the Chef tool ecosystem (such as berkshelf, spork, santoku, ridley and testing with vagrant/vagabond/test-kitchen) will be made.

At the end of the talk, ideally, the attendants will leave with a full understanding of the Chef development workflow, go home, setup a Chef server on a vagrant/vagabond VM and start using it as a production environment replica for all their projects.


Previous Next

Suggestions

  • The proposal author responded 8 months ago

    I'll do my best to include a link set to best-practices, resources and apps that are being used by automation practitioners all over the biggest shops in SF and the startup scene in general (since those are the people who tend to follow bleeding-edge developments).

    I hope this gets accepted too :)

  • 5976001c9ebf095c4988855a4e102de5?d=retro Clemens Kofler suggested 8 months ago

    Very interesting, therefore +1.

    However, I have a big wish (request?) for the talk, should it get accepted: Please include some Chef-independent info about server management or at least some resources in your slide deck for further reference. What I mean is: While I can get a single server for a Rails app up and running just fine, I – as a programmer – don't really have a clue of what makes a good and stable server. I'm thinking about things like monitoring and security as well as multi-server setups. I'm aware that this might be too much for a single talk but as I said: Some references in your slides for further reading would be just fine.

    I hope this gets accepted. :)

  • The proposal author responded 9 months ago

    The plan is to introduce the basic concepts of Chef by parables using easy-to-understand cartoonish images, explain the DSL and then expand to advanced Ruby stuff that are relatively new to the community (like the thread cookbook) and elaborate on the emerging best-practice ecosystem (cookbook development with berkshelf, vagrant, vagabond/lxc, test-kitchen, ridley and other stuff that will have emerged by June - the Chef community is moving FAST!) and how you can tie them all together in a rapid deployment process.

    The idea is that the attendants will leave the talk with a full understanding of the Chef development workflow, go home, setup a Chef server on a Vagrant VM/LXC and start using it as a production environment replica for all their projects

  • 415fe6ee69c09802ce8329e2b1a1c5e6?d=retro Vassilis Rizopoulos suggested 9 months ago

    Chef is a big subject. I'm with τhe author, I'd prefer more relevant content than comparisons with Puppet (we have Chefconf for that :P ). What I would find extremely interesting is the way Ruby's programming practices are a benefit to anyone using Chef and how they are actually applied within recipes (from writing LWRPs to setting up a test infrastructure with test-kitchen or the way berkshelf borrows concepts from bundler to enable cookbook management).

    Ruby devs will grasp the intricacies of the Chef DSL faster but the Ops side of things (environments, roles, application cookbooks etc.) would probably need more elaboration. Or you might want to focus on the development workflow for recipes and throw a little vagrant in the mix.

  • The proposal author responded 9 months ago

    I could include a small comparison to Puppet, but since the Chef material that needs to be covered is extensive I'd prefer utilizing the timeslot given for passing on more useful information and as a result, such widely-documented subjects may be left out.

    Of course, it goes without saying that cookbooks used for web-scale real world deployments will be displayed and analyzed, along with other cool stuff and best practices!

  • 3c7964e731bc7da3786195d7ac264209?d=retro Fotos Georgiadis suggested 9 months ago

    Will it include a comparison with Puppet? The main issue I face is choosing one over the other.

    1. What does it do better?
    2. Where does it lack?
    3. Can it serve sushi?

    Furthermore, it would be awesome to see and examine real world, full scale, recipes.