I think this may be an incorrect conceptual tie, but I do think that the
plumbing/porcelain idea is both applicable to Puppet and something that
Puppet should be advertising as a benefit.

In terms of the conceptual tie, a config file is a config file and is used
to manage options. I think that the argument here is:

* Is this feature worth the amount of ongoing testing and maintenance to be
relevant to the community in general?

There are, of course, several ways to determine this:
  * Take a poll (which was sort of done here but isn't generally the best
place to get a poll, puppet-users would probably be a better place for that)
    ** Hijack: Perhaps there should be a [Feature Proposal] tag in Puppet
Users for new feature polls?
  * Implement it as a patch, advertise it, and see how many people start
using it. If it's a lot, incorporate it.
  * Implement it in the core, track the amount of upkeep that it takes, and
remove it if the Golden Ratio of utility vice upkeep is not met
    ** This one has the downside of not knowing of the utility until you
remove it and the Internet punches you in the head.

For the plumbing vs porcelain argument, this is one of the things that drew
me to Puppet in the first place! One of the advertised qualities was that
the language was written the way an admin thinks. It doesn't *require* you
to get into the guts, program Ruby, or anything else you don't want to do.
It just lets you configure your systems in a reasonably powerful manner
using a relatively simple DSL.

Porcelain:
* The DSL
* Types
* Facts
* Hiera
* ENC (usage)

Plumbing
* The Compiler
* The Server
* Providers
* Facts (here too!)
* Custom Functions
* Hiera Back Ends
* ENC (core)

The porcelain should be this lovely place where the community protects less
experienced users from randomly destroying systems and making everyone hate
them for trying something new. It should be a place where everything *just
works* and each new release is an improvement of efficiency which makes
complex tasks straightforward and simple tasks trivial.

Also, the porcelain should promote code understandability and
maintainability above all!

The plumbing should be a place where the efficiency happens and where users
are allowed to destroy their servers from orbit if they so choose. This is
the place where you've decided to ignore the DSL because you understand how
things work but you want to be able to provide your work under the
porcelain of the given system. Everything here is a leap forward as time
progresses and moves at a proper Agile (yeah, I know) pace.

If every user were a power user we would not need this distinction. But,
they're not, and some people don't want to deal with the plumbing. They
don't want to write code, and they don't want to be a computer scientist.
They just want to get things done.

In my opinion, this is one of the areas where Puppet shines and it is
something that needs to be actively supported.

Let the systems be safe by default and easy to use but don't stifle the
power users lest they be alienated.

After all this, back to the original topic:

* Would I use it? No
* Do I think it would be a great deal of upkeep? No
* Do I think a large portion of users would use it? No
* Do I see hard in incorporating it to see what happens? No

My opinion: Try it and see!

My suggestion is that Bostjan write a patch with clear instructions and
announce it to the puppet-users list as something that you'd like to
experiment with in terms of utility for the community.

On Sat, Mar 21, 2015 at 3:02 PM, Felix Frank <
felix.fr...@alumni.tu-berlin.de> wrote:

> On 03/19/2015 12:19 PM, Bostjan Skufca wrote:
> >
> > I think my note about suggesting git's way of providing "plumbing and
> > porcelain" interfaces as good approach still stands.
>
> I'm not so sure, actually.
>
> How exactly would you go about segregating the existing configuration
> options into two categories? I don't feel that the interface lends
> itself well to that.
>
> Cheers,
> Felix
>
> --
> You received this message because you are subscribed to the Google Groups
> "Puppet Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to puppet-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-dev/550DC03A.20608%40Alumni.TU-Berlin.de
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Trevor Vaughan
Vice President, Onyx Point, Inc
(410) 541-6699
tvaug...@onyxpoint.com

-- This account not approved for unencrypted proprietary information --

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-dev/CANs%2BFoWi5%3DcbLicO1kAyX-mSdjVwyNuF%3D0YV%2BP3ET6TF0RZtHw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to