Chef for IaC and reliable deployments
July 09, 2018

Chef for IaC and reliable deployments

Anonymous | TrustRadius Reviewer
Score 8 out of 10
Vetted Review
Verified User

Overall Satisfaction with Chef

We use multiple Chef servers. We had 2 Chef servers hosted in our Business Unit, one for production and another for pre-production. We developed on that and maintained them too. Apart from these 2 we have organizational wide Chef servers which can be used by any BU and a central tools team maintains those servers. We are using Chef not only for IaC but also for deployment purposes.
  • Chef helps maintain all the servers of one logical group to be in the same state. This helps in maintaining a standard across all the servers.
  • Concepts in Chef like roles, environments and tags helps a lot in logical grouping and executing corresponding cookbooks on them to maintain the stability.
  • We use Chef not only for infrastructure as code but also for reliable deployments.
  • One main concern with Chef is the maintainability of Chef master.
  • The Chef-client should be installed on every node we want to do any automation.
  • It is mostly Ruby and there's a learning curve. Need to understand the fundamentals of Chef very throughly to play around with attributes, templates etc etc.
  • The Chef-client agent needs to be run on the nodes frequently to update the details of it state to master. And also to index the nodes based on tags.
  • Chef is a good tool for baselining servers. It will be a good ROI when there are huge number of servers. For less number of servers maintaining a master will be an over head.
  • One good ROI will be that the Operations Team also gets into agile and DevOps methodologies. Operational teams can start writing scripts/automations to keep their infra more stable and their application stack more reliable.
  • Implementation of Chef eliminates the manual mode of doing things and everyone aligns to automation mind set. It helps in change of culture.
We were evaluating Ansible as it was agent less, SSH based, simple to use and is completely based on SSH protocol. As and when the servers count increase the performance might degrade. One main disadvantage with Ansible is it is more suitable for linux based systems where SSH is possible, but doesn't work that great for Windows systems natively. In the contrast, Chef works great when the servers are huge in number and is also OS neutral.
Chef is useful for maintaining the servers in a known stable state for in-house datacenters. It helps to achieve infrastructure as code and helps in deployments as well. It is suitable for when there are a huge number of servers and you have to bring up the entire application stack in a safe and reliable way. It also helps in baselining the servers with same packages and corresponding versions.