I can weigh in a little on this...
As far as scalability of the puppet masters, it can be variable
depending on what kind of puppet code you are running. The largest
item that can ruin scalability is long catalog compilation time.
Another thing is run interval.
Current at my workplace we run a pretty comprehensive puppet code base
(100% provisioned and deployed via puppet) over 10,000+ puppet agents.
We service the nodes through an LVS load balancer pair and have 3
puppet masters with 8 cores running Nginx with Passenger. We have a 6
hour run interval and also perform ad hoc runs. We have had 0 issues
with this setup so far in regard to load however the puppet masters
are consistently busy on all cores. PuppetDB with Postgres is a must.
I know a lot of people are now turning to Hiera backends to do their
ENC as well as Dashboard and Foreman.
Thanks,
Cory