Centralized Configuration Management
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.
Pros
- 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.
Cons
- 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.
- Ansible, Puppet Data Center Automation and Docker
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.
Comments
Please log in to join the conversation