Channels ▼
RSS

Mobile

Facebook Chef Cookbooks Tasty Enough to Open Source


Facebook has open sourced some of its community cookbooks to allow a wider world of software application developers to consider using Facebook's Chef framework.

Facebook decided to release these findings after designing what it calls (in somewhat grandiose terms) "a new paradigm" that lets a software engineer make any change he/she needs, to any systems he/she owns, via simple data-driven APIs (while also scaling to Facebook's huge infrastructure and minimizing the size of the team that would have to own the system).

Production engineer at Facebook Phil Dibowitz says that the team designed this new paradigm and built a framework to bring it to life. At the core of that framework was (and still is) Chef.

Dibowitz says that the way the team ended up using Chef is pretty unique and that the team did not initially consider releasing the cookbooks because they believed them to be "too Facebook-specific", but that a central theme in talks (given on this work) was on cookbook design, so people started asking for them.

Writing on code.facebook.com he says, "In looking at how we built them, we realized that we had developed a different way of writing community-style cookbooks that succeeded — at least within Facebook — at doing what community cookbooks had failed to do outside of Facebook. And we started to wonder: Could this approach be applied not just to other organizations wanting to leverage our model, but also to writing community cookbooks the entire world can use?"

Postulating further Dibowitz highlights the truth in the suggestion that those of us who have used community cookbooks in the past know that they tend to fall into one of two categories: a) they don't offer enough control, or b) they are difficult or cumbersome to use.

"We think this is due to a pattern common to most community cookbooks. They define a separate element for each thing you can set. So if the cookbook has, say, three settings for a configuration file, that's very limiting. But if many settings are available, it is hard to know which of the perhaps hundreds of settings need your attention and it can end up more complicated than the configuration itself," said Dibowitz.

The Facebook team is working because it believes there's a way to do something more generic that provides more flexibility with less complication.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.