Puppet is one of the most mature tools for Configuration Management. But I know you must be wondering why Puppet is so popular. Also, what makes it unique when compared to other tools? Let us see in detail about “What is Puppet?” I will answer these questions for you.
What Is Puppet?
Puppet is a Configuration Management tool. It will use for deploying, configuring as well as managing servers. It performs the following functions. They are,
- Defining distinct configurations for each host. Also, continuously checking & confirming whether the required configuration is in place. This will not alter on the host.
- Dynamic scaling-up as well as scaling-down of machines.
- Providing control over all your configured machines. So, a centralized change will get propagated to all, automatically.
- Puppet uses a Master Slave architecture. This is in which the Master and Slave communicate through a secure encrypted channel. It is possible with the help of SSL.
What Is Puppet – Key Metrics:
Following are few facts about Puppet. They are,
- Large installed base: Puppet will use by more than 30,000 companies. This is in the worldwide including Google, Red Hat, Siemens, etc. along with several universities like Stanford and Harvard law school. An average of 22 new organizations per day use Puppet for the first time.
- Large developer base: Puppet is so widely used. Lots of people develop for it. Puppet has many contributors to its core source code.
- Long commercial track record: Puppet has been in commercial use. This is from the year of 2005. Also, it has been continually refined as well as improved. It has been deployed in very large infrastructures. Also, the performance and scalability lessons learned from these projects. It will have contributed in Puppet’s development.
- Documentation: Puppet has a large user-maintained wiki. This is with hundreds of pages of documentation and comprehensive. This will be the reference for both the language and its resource types. In addition, it will actively discuss on several mailing lists. Also, it has a very popular IRC channel. So, whatever your Puppet problem, it is easy to find the answer.
- Platform support: Puppet Server can run on any platform. That will support ruby for ex: CentOS, Microsoft Windows Server, Oracle Enterprise Linux etc. It not only supports the new operating systems. But it can also run on relatively old and out-of-date OS and Ruby versions as well.
It is now evident that Puppet has huge demand globally. But before diving deep into Puppet. It is only fair that I first explain what is Configuration Management? Also, why it is important?
System Admins usually perform repetitive tasks. It is such as installing servers, configuring those servers, etc. They can automate this task. It is possible by writing the scripts. But it is a very hectic job. This is when you are working on a large infra-structure.
To solve this problem, Configuration Management introduced. CM is the practice of handling changes systematically. So that, a system maintains its integrity over time. CM will ensure that the current design and build state of the system. Which we know, good & trusted. Also, doesn’t rely on the tacit knowledge of the development team. It will allow access to an accurate historical record of system state. This is for project management and audit purposes. CM overcame the following challenges. They are,
- Figuring out which components to change when requirements change.
- Redoing an implementation because the requirements have changed. Since, the last implementation.
- Reverting to a previous version of the component. This is if you have replaced with a new but flawed version.
- Replacing the wrong component. This is because you could not accurately determine. It is which component needed replacing.
Let us understand its importance through a use case.
The best example I know is of the New York Stock Exchange (NYSE). A software “glitch” prevented the NYSE. This is from trading stocks for almost 90 minutes. This led to millions of dollars of loss. A new software installation caused the problem. That software will install on 8 of its 20 trading terminals. Also, the system will test out the night before. However, in the morning, it failed to operate properly. This is especially on the 8 terminals. So, there was a need to switch back to the old software. You might think that this was a failure of NYSE’s CM process. But it was a success. As a result of a proper CM process, NYSE recovered. This is from that situation in 90 minutes which was fast. Had the problem continued longer. The consequences would have been more severe.
Now, I hope you know the importance of CM. CM stage can consider as the backbone of the DevOps. It will allow more frequent software releases. This will be in the safest as well as most reliable way.
Next, let us see some applications of Puppet.
What Is Puppet – Applications of Puppet:
Let us understand the apps of Puppet using a case study. If you are a poker enthusiast or if you have ever played online games. Then you must have heard about the Zynga. It is the world’s largest social game developer. Zynga’s infrastructure uses tens of thousands of servers. This is in both public cloud as well as private data centers. Early on they were using a manual process. This will include kick starters and post installs. This is to get hundreds of servers online.
Now, we will see what problems they faced with this process. They are,
- Scalability & Consistency: Zynga was experiencing phenomenal growth. Also, its infrastructure needed to keep pace with the industry. Script-based solutions and manual approaches were not enough for their needs.
- Portable Infrastructure: Zynga needed a way to leverage a consistent CM approach. This will be in both their public cloud infrastructure. This will be their own data centers.
- Flexibility: Given the diversity of the various Zynga gaming properties. It was important for the team to be able to quickly match. This will be the right configuration for the right machine.
- Infrastructure Insights: As the industries matured, it became more important. This is to have an automated method of visualizing. This will be the properties of each machine.
The company was smart enough to quickly realize. This is the need for an automated process. This is even before they hit rapid scaling. That is when Puppet came into the picture. Let us understand how Puppet contributes to their industry.
- Speed of Recovery: The production operations team can rapidly deploy. This is the right configuration to the right box. If a system gets inappropriately reconfigured Puppet. It will automatically revert it back to a last stable state. It will provide the details. This is necessary to manually remediate a system.
- Speed of Deployment: Puppet has provided significant time savings. This will be in the way the operations team. They will deliver the services for the gaming studios.
- Consistency of Servers: Puppet has the model-driven framework. It will ensure the consistent deployments. Mark Stockford is the Vice President Production Operations of the Zynga. According to him “It is the evident that we have experienced time savings. The beauty of using Puppet is that it will allow us to deliver. It will deliver as the consistent configurations. This is across our servers. This will be in a short period at every time.”
- Collaboration: Having a model-driven approach. This will make it easy to share configurations. It will be across the industry. It will also enable developers as well as the operations teams. This is to work together to ensure new service. This delivery will be in extremely high quality. Over a dozen people from the Zynga’s team got trained in Puppet. This knowledge has been disseminated. This will be throughout the team. Also, to the operations teams. It is within each individual gaming studio.
Now I think you will understand the concept of Puppet. Especially, from this article.