in DevOps, linux

How can I use Puppet in my work ?

Puppet is a next generation IT automation software for system administrators. Puppet lets system administrators monitor the entire infrastructure life cycle. It also helps to automate repetitive tasks, deploy critical applications and pro actively manage change.

Puppet is used in a lot of scenarios to make the lives of system administrators a lot easier. Here are a few ways how you can use Puppet in your company.

  1. Puppet for scalability – After a point of time, it becomes tough to scale your infrastructure manually. For example, your game is on Tech Crunch and people are flocking to play it and you have to bring 10-20 servers up on an hourly basis. With Puppet in place, bringing up a new server, either physical or virtual, is a piece of cake. Using Puppet Enterprise, you can clone resources using a GUI, without writing a single line of code.
  2. Puppet to eliminate configuration drift – When you add a new system to your network, there is always change in configuration, unless you have the right tools in place. This may be due to some users updating the system or applying a patch with good intentions.But this might give your compliance and change management team a headache. Imagine the case when you have thousands of systems.  Puppet ensures that systems stay in the intended state by checking their integrity every 30 minutes. If Puppet finds some changes, it brings is back to the desired state.
  3. Puppet to provision laptops and desktops – Google as well as Github uses Boxen, a Puppet repo to manage all their Macs.
  4. Puppet to manage large scale infrastructure – Zynga’s infrastructure consisted of thousands of servers in public clouds and private datacenters. They used a manual process of kickstarts and post installs to deploy their servers. This was fine initially, but when the deployments increased, this became a tiring job and had a bad effect on scalability. Using Puppet, Zynga manages thousands of machines, increasing the speed of deployment and recovery.
  5. Puppet  to replicate production environment – Puppet is best for replicating or cloning the production environment for development and testing purposes. This makes it easier to shift to a DevOps culture and reduces confusion between development and operations. Puppet and Vagrant can do wonders when working together.
  6. Puppet for deploying user accounts – Many companies, including ourselves use Puppet to deploy user accounts across thousands of systems.
  7. Puppet for deploying critical updates – Puppet’s orchestration capability allows you to query your infrastructure to discover vulnerable systems and then, in a single command, schedule the required updates. At VMWare, Puppet is used to simplify security patching, eliminating the need for running routines to detect vulnerabilities and then implementing batch jobs to update effected systems.
  8. Puppet for provisioning cloud instances – Working with AWS or VMWare? Puppet can automate the provisioning of your instances, be it spinning of new VMs or tearing down unused ones to stay cost-effective.
  9. Puppet for managing super computers – At NICS, Puppet manage high performing computing systems like Nautilus (1024 cores, 4 TB shared memory and 16 GPUs) and Kreeneland (HP GPU cluster with 1440 nodes, 2.8 TB memory and 360 GPUs). Puppet is used to streamline security and ensure consistency across servers.
  10. Puppet for security, compliance and audit – Puppet is a great tool for helping companies enforce compliance with change management process. Puppet can be used to apply a known secure configuration across the organization. Many companies uses Puppet to enforce internal security policies and adhere to international standards such as PCI-DSS, SOX, ISO 27001, etc.

With many big companies like Apple, Bank of America, Cisco,  Disney, Google, Harvard University, HBO,  McAfee, Motorola, NASA, Rackspace and Twitter using Puppet.