On Monday, January 7, 2013 11:44:00 AM UTC-6, Garrett Honeycutt wrote:
Webrick is useful for doing a demo and learning about Puppet with a
couple of nodes. It is not at all meant to scale and if you attempt to
run your eight agents, you are likely to have performance issues. If
this is a production level deployment, you should look at Apache with
Passenger.
Only eight? I have webrick reliably serving in excess of 50 clients, all
updating at the default rate of twice per hour.
Webrick's biggest problem is not performance *per se*, it's lack of
multiple threads. Apache / passenger does not make Puppet faster; it just
runs more instances and handles contemporaneous requests more gracefully.
Thus it improves *throughput* when there are enough system resources behind
it, but that's not exactly the same thing as performance.
I think webrick works well for me because my manifests change infrequently
and are fairly quick to compile (even though the master is not particularly
well-provisioned). In that context, the master can serve catalog requests
quickly enough that clients rarely time out, despite webrick's
single-threaded nature.
My recommendation for a new Puppeteer would certainly be to start out with
webrick, since it works out of the box with no additional software or
configuration. Switch to Passenger or something more capable only when
webrick becomes inadequate. When that will be depends a lot on the
manifests involved, the hardware underneath, the number of clients, and the
request frequency.
John