On Oct 4, 2010, at 2:24 AM, Aurelien Degremont wrote:

> Luke Kanies a écrit :
>> I completely agree that there should continue to be REST support.  My 
>> question is whether there's significant value to keeping REST as the primary 
>> communication mechanism, and if so, what is it?
> 
> I totally agree with Jeff McCune regarding REST.
> 
> I can imagine implementing a fileserver only using Apache with url 
> redirection and SSL feature (only environment could be a bit tricky) and so 
> benefits from Apache features and scalability. This could not be possible if 
> Puppet has its own protocol.

Puppet wouldn't really have its own protocol; we'd be running on AMQP, STOMP, 
or something similar.  I think it would largely be configurable, so if you 
wanted to do your file serving over HTTP you still could, but file serving is 
kind of the odd man out - of the main conversations between client and server 
(uploading facts, downloading catalog, downloading files, uploading report), 
it's the only one that really needs to be synchronous.  Everything could and 
probably should be async (e.g., if report uploading fails, it should keep 
trying until it works, but it currently just loses the report).

This could all be done with HTTP, but it's far more complicated, and is 
actually built into the protocol for the message buses.

> Moreover Puppet needs stability. I do not imagine that after moving from 
> XMLRPC to REST, you will switch again to something else.

I agree this is one of the big challenges.  However, the big cost in moving to 
REST was not the HTTP portion, it was the infrastructure that allowed network 
transparency and pluggability, and I think we've shown internally (and to some 
extent discussed in my later posts last week) that the existing Indirector code 
can be transparently applied to using message buses.

I'm obviously concerned about stability, but in some ways I'm more concerned 
about having a solution that scales in the way our users require.  There are 
fundamental limitations to the point-to-point RPC model, and Puppet is often 
running into them.  We can continue to scrape gains out of the system, but I 
think directly supporting some kind of async model would pay huge dividends in 
scalability, simplicity, auditibility, and much more, without a lot of actual 
cost.

However, I don't really know that yet.  Paul Berry and Jesse Wolfe are looking 
into that this week, and will hopefully have a more fleshed out idea of what 
this change will take and how expensive it will be.

-- 
If you would be a real seeker after truth, it is necessary that at
least once in your life you doubt, as far as possible, all things.
        -- Rene Descartes
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199




-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to