Tuesday, March 8, 2016

Deployment, Dev Ops, and Configuration Management




Chef vs. Puppet: A Trial of Champions!




Jeffrey Fernandez



Installing and configuring a software product can be difficult on your home computer! Now imagine attempting to deploy a patch or install new software across a global network of servers and end user PCs!  More organizations are turning toward software tools to eliminate the fair share of leg work and understandably so. Many of our clients have been working with two specific software solutions in order to reduce the amount of headaches associated with their deployments and rollouts.  These two suites are Chef and Puppet.
Both Chef and Puppet can greatly assist configuration management, development operations, and deployment, but which is the better fit for you?
Tale of the Tape
CHEF
Chef is an OpenSource Tool that leans more toward the needs of software developers and is primarily used for Configuration Management. Chef is coded in and utilizes Ruby.  If you are interested in Chef make sure to staff accordingly.  You will also want to make sure that you staff is experienced with Git since it is required for proper configuration of the software. Chef follows a Master-Client Model and also requires very precise instructions to run properly.  If you don’t follow the recipe Chef might get upset and so will you!
The “Pros” to utilizing Chef as a solution include:
·         Strong Version Control capabilities
·         You can deploy agents from the Chef workstation saving time and frustration
·         The code driven nature provides flexibility so long as you have Ruby in your tool belt
·         There is a solid grouping of ready to go modules and configurations for simple solutions
·         Chef also has excellent test software!           
Pricing for Chef is also fairly reasonable at the corporate level at a little over six dollars per node per month.  If you are a developer heavy shop and have the resources for Ruby and Git then this might be the Chef you are looking for!
PUPPET
Puppet is a well established OpenSource tool, that like Chef, is battle tested. Puppet also runs on Ruby, but it utilizes a JSON like Domain Scripting Language (DSL) that is unique to the system.  This may cause a bit of a learning curve to develop, but node set-up and configuration on Puppet is very easy once the process is practiced a few times.  Puppet also runs in a Master-Client Model. Puppet has a bit of an edge on Chef in terms of stability and it works really well within large enterprise environments. It is more Systems Administrator friendly than Chef and Puppet still plays nice with your Dev Ops team.
The “Pros” to utilizing Chef as a solution include:
·         Excellent interface that supports most Operating Systems
·         DSL!! Ruby still needs to a tool in the belt (for more difficulty tasks requiring the CLI), but not as much as with Chef.
·         Installation is easy
·         Excellent web user interface and phenomenal support
·         Excellent reporting capabilities
Puppet can be the more expensive out of the two tools at $110+ dollars per node, but that is an annual figure.  Puppet has an excellent selection of tools to work with and is more Systems Administrator friendly for those big security patch roll outs.  They are also well established in the field, have incredible support, and an intuitive interface.  Puppet is the thing to keep your configuration management dancing on a string.
Final Round
Both Chef and Puppet are excellent tools!  When it comes to Dev Ops Chef has a bit of an edge, but Puppet comes out ahead when discussing major deployments, patches, and configurations.  What it comes down to is what you need the most for the organization in order to ensure the realization of your strategic vision!

Jeffrey Fernandez, M.A. is a Senior Recruiter for IT and Engineering at NextGen Information Services, Inc.  
You can contact Jeff at jefff@NextGen-IS.com.