<div dir="ltr"><div class="gmail_extra">On Wed, Dec 11, 2013 at 11:19 PM, James <span dir="ltr"><<a href="mailto:purpleidea@gmail.com" target="_blank">purpleidea@gmail.com</a>></span> wrote:<br><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Thanks... I just read your 4.0 doc. I have a few comments:<br></div>
<br>
1) Someone talked to me a bit about the sub bricks idea. I haven't<br>
decided how awesome or not this would be, but I'm feeling positive<br>
about the change. See 2b for a related comment. I'm keen to see<br>
Gluster gaining an understanding of "tiered" storage.<br>
<br>
2) I wasn't sure if I understood certain parts correctly. Depending on<br>
if I did or didn't, I think there may or may not be some significant<br>
problems with the suggested model for building higher level management<br>
tools (eg: puppet-gluster). I would have to know more to know for<br>
sure. For one, I got the feeling that some commands needed to be<br>
executed one after another in a certain order...<br>
<br>
2b) If someone can help with the algorithms I mentioned in:<br>
<a href="https://lists.gnu.org/archive/html/gluster-devel/2013-11/msg00135.html" target="_blank">https://lists.gnu.org/archive/html/gluster-devel/2013-11/msg00135.html</a><br>
I think I'll be able to provide a convincing case that Gluster<br>
management isn't as bad as you might be alluding to in your 4.0<br>
comments. I think a lot of the GlusterFS core team are allergic to<br>
Puppet. I think this is quite normal, because Gluster core is super<br>
low level C, where as Puppet (a mostly declarative language) is super<br>
high level and on the opposite side of this spectrum. However, I think<br>
most people are discounting the importance of having something like<br>
this. The future is _all_ configuration management. The early adopters<br>
are almost mostly there.<br></blockquote><div><br></div><div style>That's probably not entirely the case. I don't think there is anybody who disagrees on the need/importance of puppet and puppet-gluster. I also see how it becomes almost necessary on a 10k node cluster, and why it is important to make gluster integrate nicely with the puppet ecosystem.</div>
<div style><br></div><div style>At the same time, the reason why puppet-gluster module is having to solve complex issues is because gluster management isn't doing the right job. The algorithms you are working for puppet-gluster are not puppet specific and their right "location" is in the core of gluster. It doesn't feel right to see such "dense" logic in the puppet layer while that intelligence is needed pretty much for every one.</div>
<div style><br></div><div style>I'm hoping 4.0 will make the gluster-puppet module simple and elegant, and not "unnecessary".</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
3) Between early Gluster x.y and 3.x I had to completely change<br>
Puppet-Gluster to support the new management style. The current<br>
Puppet-Gluster stuff is easily one of the most complicated Puppet<br>
modules that exists _anywhere_! This is partly due to the fact that<br>
while Gluster might be easy to manage (and even logical) for a human,<br>
it is _not_ from an automation point of view.</blockquote><div><br></div><div style>That's precisely my point as well. The complexity in the puppet module is for a problem which has to be fixed somewhere. And I think the right place for that extra logic to reside is within the gluster management layer. Puppet module should not need to know how gluster is distributing and replicating data - it is too low level/internal knowledge to be exposed up to a puppet-like layer.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> In any case, I've built<br>
it, but there are certainly ways that Gluster internal could make it<br>
easier (thank goodness for --xml anyways ;))<br>
<br>
If Gluster 4.0 radically breaks all the work I've done for current<br>
Puppet-Gluster, I really won't have any desire to rewrite all of this<br>
for a third time without a large pay cheque from RedHat. On the plus<br>
side, this could be a good way to get rid of me ;) Either way, whether<br>
you consult with me, or you consult with a different configuration<br>
management expert, do the smart thing: find out if the management<br>
style you're proposing is compatible with configuration management. If<br>
it will work elegantly with Puppet, it will work for Chef, etc...<br>
Usually when something "fits" really well with well designed Puppet,<br>
it's a sign that the thing was designed _extremely well_.<br>
<br>
As an example of this, the FreeIPA team (RedHat) did a kick ass job<br>
putting together the FreeIPA management interfaces, and as a result,<br>
it is extremely pleasant to use natively, and also with Puppet.<br>
Example: <a href="https://github.com/purpleidea/puppet-ipa" target="_blank">https://github.com/purpleidea/puppet-ipa</a></blockquote><div><br></div><div style>Will check that out, thanks for the pointer.</div><div><br></div>
<div style>Thanks!</div><div style>Avati</div><div style><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
4) Looking forward to 4.0 ! I hope I have a chance to see the going<br>
ons very early, while there's still a chance for me to have a positive<br>
influence on the external interfaces.<br>
<br>
Happy hacking<br>
Hope my comments are helpful/useful,<br>
<br>
James<br>
<br>
PS: I know that some at RedHat and Gluster core will probably think<br>
this is insane, but think about it: In the future (maybe that's now)<br>
software will ship natively with some sort of (probably mostly<br>
declarative) "front end" as the recommended UI for management. This<br>
means it makes sense to have some interfaces in native code, and some<br>
as higher level abstractions around your native interfaces. Think of<br>
the analogy of Gluster in C, but perhaps glusterd in higher level<br>
python. Now realize that the "next level" might be something like<br>
Puppet. I think it's already possible, when you include some of my<br>
Puppet hacks, Example: <a href="https://github.com/purpleidea/puppet-pushing" target="_blank">https://github.com/purpleidea/puppet-pushing</a><br>
</blockquote></div><br></div></div>