Puppet
Summary:
Puppet is a configuration management tool written in Ruby that has been around for quite a long time.
Features:
- SaaS-based Portal with local Agent Deployment
- OnPremise/Cloud Agnostic
- Application Performance Monitoring
- Server Infrastructure Monitoring
- Reasonably priced and simple to set up Log Management
- Synthetic API and Browser Testing
- Real-time User Monitoring
Deployment:
- Set up PuppetMaster server
- Install Puppet Agents on hosts
- Minimally, agents can trust puppetmaster by hostname
Usability:
- Puppet can be extremely useful and PuppetForge provides a vast amount of services and configurations you can manage.
- It can even give ‘shortcuts’ by using ensure to infer the creation of a file if the directory doesn't exist, for example, making it rather powerful as far as CM tools go
Maintainability:
- Easy updates via system packages
List Pricing:
- On-Premise is open-source
- Enterprise Standard support - $112/node/year
- Enterprise Premium Support - $199/node/year
I've honestly never taken the Enterprise route. For most implementations, the free open-source product will probably suit your needs.
Coverage:
- Just about every flavor of Linux Operating Systems
- Windows and MacOS supported
Considerations:
- Puppet has its own domain-specific language; so if you aren't going to be working with it as a primary focus, there may be better qualified alternatives that won't require you or others on your team to pick up strange and unusual syntax in an emergency
- It's very easy for a company to end up with just a puppet specialist and can be difficult for others to pick up so it is not an easy thing to scale at the human-level
- PuppetForge provides many complete, extensible manifests for use and while I encourage the use of forge manifests over writing your own, beware that some are simply old and outdated