Until last year, we were using the enterprise version — Puppet 4 —; however, we recently switched to the open-source version — the community edition. We are using a product called Foreman as a front end for Puppet open source.
We used Puppet solely for Linux. At first, we had around 200 plus Linux servers that were managed by Puppet. It was like infrastructure as a code. If we had to build a new server or update a server, then we just had to commission a new server, apply Puppet control, and it would configure everything for us. That was one of our main use cases.
We also used it for compliance. We had some security products and policies that we needed to implement. This solution made sure that they're always there, that nobody was messing with them. Regarding security compliance, take CrowdStrike for example, it's supposed to be installed on every server — running and reporting properly. Puppet checks that a service is running every 15 minutes. If it's not, it starts it and if it's missing, it installs it.
Although we started with Linux, we are moving towards adding Windows servers as well.