Archive for the DevOps Category

Jan 22 2013

Chef and automated service discovery

Chef — the short story

Chef is a cloud-oriented open-source integration framework. By describing in a platform-independent way how a specific component of your service architecture should be deployed (a cookbook), Chef takes care of automating the deployment and configuration of your infrastructure. More infos about Chef in the official website.

Services and interdependencies

A common scenario is working on an architecture composed by different services communicating between each other through APIs. Possibly, your system is fully replicated in two or more environments (acceptance, production, and so on) running in one or more different cloud systems (AWS, Eucalyptus, etc).
If such is the case, every service may need to have an endpoint specified in some configuration file for all the services it needs access to.

Chef allows you to create dynamically the needed configuration files through a simple and powerful templating system. Simply enough, a template can describe how a configuration file (or whatever file your service needs to run) has to be structured, and values to populate it can be injected from attributes that can depend on your environment or on some other conditions (for instance, theĀ role given to the node).


Globetrotter Software Engineer. I try to conjugate where the ambitions lead me with an environment that makes me feel happy. I love sun and sea. My mind is always spinning, for good and for bad. I enjoy traveling and experiencing new places by being constantly surprised by things I would have never even conceived.