On 2/10/2010 2:00 AM, Mark Burgess wrote:

>> Can a mostly-uncoordinated
>> set of people write different parts of a cfengine conf without namespace
>> collisions?  Is there a way to track internal version dependencies among
>> the parts?
>
> Yes, there are private name spaces in cfengine. Cfengine Nova tracks 
> dependencies between
> the parts. Versioning can be dealt with in a number of ways. There's no 
> silver bullet
> there, but a dozen possibilties. I recommend that you don't have thousands
> of people involved however ;-) At some point you can only coordinate multiple 
> inputs by
> having a *human* review the final aggregate policy, because a *human* must 
> take
> responsibility for it. Many cooks, etc.

There will be a very large cost in having the developers who understand 
the requirements of the applications learn another language to control 
it - and not a clear win over spending the time making the apps more 
self-sufficient in their native languages.  I could possibly be 
convinced on that point and even the extra QA effort to understand and 
test the corner cases before releasing to production.  The part I don't 
see as a good fit is how the operations scheduling team that manages the 
physical machines and is ultimately responsible for keeping things 
working would interact with it - they aren't programmers. They need to 
control how many instances of what version of what apps are running and 
shouldn't have to know much more than the name and version of the app to 
do it.  They can punt the grunge work back to someone else, but if they 
do, the tool won't have helped us.  And if they have to punt to an 
expert in cfengine details, it's a net loss.

> You should look at the Special Topics Guide on Teamwork. And Knowledge 
> Management (e.g.
> Cfengine Nova) is going to be your friend. See that Special Topics Guide too.

I think I saw that, with a pretty picture of interconnections but no 
details about the mechanisms involved to separate the roles.  Examples 
would be very helpful, particularly where external tools like the 
version control system come into play.

>> Yes, I'm intrigued at some of the concepts here, but some things aren't
>> assumptions, they are just facts.  And I want the program to work for
>> the humans, not the other way around.
>>
>
> This is a good goal indeed.

Part of what is making this difficult for me is that I have some 
fundamental philosophical differences with what you describe as the 
purpose of the tool and it is hard to separate what freedom you have in 
the language to control the policy and what it forces on you.  That's 
probably just my misconception from the beginning descriptions but short 
of spending months learning the language those documents are all I have 
to go on.  For example, I consider quietly fixing a problem as 
inherently evil, and automating such a fix instead of permanently 
replacing the underlying component with something that works correctly 
is even worse. Never mind all the times we have to make this compromise, 
it means the application will never be fixed.  Also, in our environment 
of many network-connected components it is rare for a machine to be able 
to diagnose it's own problems let alone know a useful solution. 
Generally we just want to disable any problematic components (or even 
whole sites) and let redundancy handle the load until we put things back 
the way they were yesterday (even if the app developer didn't anticipate 
going backwards). I don't think it would be wise to distribute the 
decision of when/what to disable since it requires some comparative 
knowledge about the state of all the other machines.  The details there 
aren't important compared to the question of whether the language that 
you imply has to be specialized for this job actually imposes 
constraints on the policies it can implement - or makes some difficult 
to express.

-- 
   Les Mikesell
    lesmikes...@gmail.com


_______________________________________________
Help-cfengine mailing list
Help-cfengine@cfengine.org
https://cfengine.org/mailman/listinfo/help-cfengine

Reply via email to