Centralized Configuration Management
March 02, 2018

Centralized Configuration Management

Aiman Najjar | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with Chef

Chef is a great technology for centralized configuration management. Therefore it's perfect for configuring complex, interconnected systems where parameters may be shared, or facts (e.g. ip address,..etc) about other nodes are needed to populate configuration files. Chef provides advanced capabilities such as encrypted data bags (to store configuration variables), versioning, roles, cookbooks repositories,..etc. It's very advanced and great system for managing large and complex clusters.
  • Centralized Configuration Management; Chef really excels at that as it provides a wide range of features that are well thought of, such as data bags, encrypted data bags, roles, shared repositories, cookbooks versioning, environment locking..etc
  • Chef is based on Ruby and therefore it has all the capabilities of this powerful scripting language, unlike other tools that has its own DSL. This means greater flexibility to implement really custom logic.
  • Chef community has made an impressive progress with regards to automated testing of cookbooks.
  • Chef complexity sometimes backfires when managing large clusters. Since a node can have different sources for variables, it can easily get messy and hard to troubleshoot.
  • Any configuration management when done correctly will have a significant ROI. Chef in particular is great because the architecture, the language syntax and design is very innovative.
I really found that Chef to be much friendlier and innovative than Puppet. There is an opinion in the DevOps community that says that Chef is friendlier to programmers whereas Puppet is friendlier to system administrators. This might be true, as I do come from development background and felt right at home with Chef.

Chef is great for managing complex and interconnected ecosystems. The centralized server makes it easy to gather facts from all nodes and store all parameter in centralized repository. For example, consider a scenario where your shared, main database hostname is going to change. With Chef, you can change the data bag and it will update all applications that are using this parameter.

For simpler, quick and dirty needs. Chef overhead may not always be necessary. In those cases, Chef solo can be used but I still see other tools are more appropriate for that case.