Hiera separates Puppet DSL from business data, allowing us to use some of the same generic Puppet DSL repeatedly. In fact, as much as 80% of the Puppet DSL most organizations use is entirely generic; only the business data varies. Hiera allows us to make this full separation of concerns between functionality and business data, instead handily passing in the business data to our modules as parameters.
Hiera works by first setting business values at the widest catchment (that is, site-wide, or common in Puppet parlance), and then moving up the hierarchy, overriding this global value at the appropriate level.
Data specific to infrastructure lends itself incredibly well to a hierarchical model. Infrastructure always tends to consist of sets of configurable attributes: IP addresses, ports, hostnames, and API endpoints. There is a ton of...