I feel a little bit guilty, as my short comment somehow started this
thread. But as the discussion seems to move to a good direction, let me
jump in :)
Am 10.04.2016 um 18:51 schrieb R.I.Pienaar:
>> I guess what this shows is that even when changes don't appear to be
>> user-impacting, they are. [...] I also don't understand why Clojure would
>> be an issue. But sure, your point is taken.
>
> Indeed and it's valid, the java eco system has the ability to provide
> really amazing admin insight and tooling but requires some learning
>
> What doesn't help is that Puppet chose to make what's basically core required
> abilities to achieve this visibility like the detailed performance metrics be
> PE only instead of finding higher level features to make PE only. This will
> really hurt the Open Source users rather than just not giving some features they
> might not need and others would be willing to pay for.
This. Those being "skeptic" (to use a friendly word) felt proven right
with the initial Puppet Server versions and even those who knew about
JMX and it's power had a pretty hard time to figure out what went wrong.
Puppet introduced a complete new stack that asked for much more
resources. This stack had a higher potential to cause trouble. They
tried to hide the possibilities to monitor and diagnose that stack from
not PE-customers.
So, tell me: why should an Open Source user have moved to Puppet Server?
He didn't, and if you ask me, he was right. But the longer he waits, the
more changes he'll have to worry about. The more the Upgrade will hurt him.
AIO packaging doesn't really help here, as they feel to have no chance
to do what they would call a smooth migration.
>>> Though from what I can tell puppet4 adoption is indeed pretty bad - unless
>>> you're counting the many many paying customers who afaik have been on 4 for
>>> quite some time. And that's quite the very large amount of people now.
>>
>> Every second person I speak to in Sydney tells me "Puppet is dead, get over
>> it".
You're exaggerating a little bit I guess. Sure, I hear similar
statements. And yes, even from pretty skilled long-time Puppet users. If
someone already using Puppet in a serious way believes that writing YAML
files for Ansible is the way to go... well, let him go. Still, it's
scaring to be presented stats showing more interest in the latter than
in Puppet at well-established large configuration management events.
>> And the complaints I hear are always the same:
>>
>> - Puppet is too hard
>> - Too hard to debug
>> - There are bugs that never get fixed
>> - And instead of bugs getting fixed, there are frequent breaking changes
>>
>> We are bleeding users and, not that I'm particularly in the loop but from
>> the outside looking in, we seem to be in denial.
>
> Lets look at these from the perspective of a deprecated and now removed features.
>
> The import keyword lost most of its use when modules were introduced (0.25?)
> except for 'import nodes/*.pp'. It should have been dead ages ago.
That's an unfair one. But I immediately believe you that there are
people stick with "import" unwilling to move forward and complaining
about change.
> But in order to maintain backwards compat with pre-module people it was kept, but
> it's a deeply deeply flawed feature:
>
> - it doesnt do what it seems to suggest it does (puppet is too hard)
> - it breaks intermittently in impossible to detect and remedy ways (too hard to debug)
> - it has bugs where it would result in inconsistent outcomes, and its so
> deeply flawed as to be unfixable, hence unfixed bugs with it
>
> The very act of keeping it is the cause of the problems you list, yet the
> same class of user who complain about it refuse to do the work to let Puppet
> remove it and thus solving their exact problems.
What if we use containments as an example instead? import is dead, but
include, require and contain are still alive. Ask someone who "does
Puppet for a while" to explain them to a newbie in an understandable way.
> I who do read the documentation have written my pre 4 code to avoid the
> things now being removed and when moving to 4 had to change 1 thing - quote
> my file modes.
You shouldn't compare you to the average Puppet user ;-) They sit in
front of an amount of Puppet code, most of it not written by themselves.
Migrate to Puppet 4? Even pretty skilled people I sometimes work with
are in trouble. Their migration to Puppet 3 happened not very long time
ago, small part of their infrastructure is still running in the "older
world". They invest time, write tests, all changes are pushed through
Jenkins, r10k-related Puppetfile commits happen every few minutes. And
still: they fear Puppet 4.
In one concrete example upgrading would mean to upgrade PuppetDB. Their
PuppetDB is an older version, as they have had some trouble once they
tried last. And then it was left as is. We all know, the longer you
wait, the harder it gets. They've built quite some tooling around Puppet
and PuppetDB. Even more things that could break. Today upgrading Puppet
doesn't mean to just run tests with a new parser and then upgrade your
webservers. It's more and more an All In One game.
And what curiously scares people at most: "Puppet 4? Well, nice, Data
types and so. But you know, no time to dig deeper into this type thing
right now. And all our modules from the forge... who knows what would
break."
They are partially wrong, some of their concerns are without substance,
but absolutely understandable. Skilled people. Others are struggling
much, much more. You have to distinct between "startups" who often run a
single web application based on the usual stack in slight variants and
people sitting in large organizations forced to run an insane amount of
completely different legacy applications.
> [...] removed the need for import.
> Both terrible in their old state.
>
> I think the outcome is significantly better and its better because finally
> someone somewhere has said the change averse minority of people who hang out
> at free events and rant to their echo chamber can go fuck themselves, and
> the outcome for us who don't fit in that echo chamber is a significantly
> better puppet, so thanks for that.
Ack :)
>> I remember Nigel saying after Puppet 3 was released that Puppet would now
>> stabilise. That was in 2012, and yet here we are in 2016 and we have so
>> many deprecations coming that a dedicated deprecation log file to keep
>> track of them all seems like a good idea.
>
> seriously? you have software that is stable for FOUR YEARS in modern IT
> and kept features that was deprecated SEVEN YEARS ago around. In what
> world is that not stable? For god sake you can get the very latest
> Puppet 4 on REDHAT FOUR. Who else does that?
I'm with you on this. Yet, they dropped HP-UX ;) Jokes apart, the
problem is not the support for distributions but the effort you have to
invest to keep on-track without being lost with just one of them.
>> If I may, I think Puppet is taking far too much feedback from Puppet
>> enthusiasts (e.g. Puppet Test Pilots, speakers at conferences) and not
>> enough from all the people who don't bother filling in surveys, who don't
>> go to Puppet Camp, and are quietly as frustrated as all hell with Puppet.
>
> I'd say do the exact opposite.
I'm somewhere in between. Feedback from Puppet enthusiasts is vital.
Getting feedback from the frustrated ones is hard. Sometimes it is
there, but not heard as not direct enough. Some grumbling, a sarcastic
response, a joke with too much truth inside. Sometimes it is smashed
down, see some past AIO threads.
> There's a often quoted stat that 80ish % of large companies DO NOT EVEN USE
> ANY KIND OF CM.
And they know, so they hire one single Puppet guy. They lock him in a
room and tell him to do automation. All the others stopped blaming "the
network" for everything but right now stop Puppet first before doing any
farther investigation when something breaks :D
> Think about that. 80% of companies do not use CM. They are literally like
> the anti intellectual who are hand managing sometimes 1000s of machines.
> There needs are growing acute by the day and they are willing to pay big
> money to solve that problem once they hit the inevitable wall.
Sure, they have the money. They also have applications running without
anyone touching them since ten and more years, of course absolutely
vital to them. Sometimes you encounter things you wouldn't even touch
for A LOT of money :p
> Now these small minority of change averse people who have literally created
> the problem you described? They're a rounding error in the rounding errors
> of people who matter.
Yes and no. Microsoft managed it to create a world for people doing
manual work. Automation people moved along. Those where the skilled
ones. Microsoft did a very good work throughout their whole stack during
the last years. Many people didn't notice how many awesome things they
created. Neither those who left long time ago, nor many Windows admins,
as those changes where not built for them. Now MS is struggling hard to
attract the automation people. You know, that small minority they didn't
care for a long time...
> There's a giant mountain of gold at the bottom of the rainbow in the 80%, and
> they do not want cutting edge. They do not want a buggy unpredictable, hard
> to debug Puppet. They're willing to pay for a well specified and well designed
> coherent product. That's what Puppet 4 is. Sure in moving to it we'll loose
> some class of user - I for one am glad to be spending less and less time talking
> to the kind of user who refuse to change. If you think the old dudes in the
> basement feeding the mainframe are where you want to be, continue to spend time
> with these change averse people.
I have to deal with people feeding mainframes, I like them. You might
wonder, but they are also writing Puppet manifests and feed their Icinga
monitoring through exported resources. That's how they also get their
mainframe jobs monitored. So, do not underestimate them.
They make part of the 80%. They have no trouble to debug the old Puppet
world. What's most troublesome to them are dependencies and exported
resources. Dependencies can always somehow be solved, sometimes with
pretty ugly hacks. Debugging PuppetDB is a hard task. And even if Puppet
Server is a different beast as there is "no data you might want to look
at", for them it's one more step in that "JAVA direction". Some of those
80% are used to run Java applications. But they have no insight, no JMX.
They automatically restart them when they run out of memory :p
> I'd wager that a lot that drives moving from Puppet to elsewhere is less about
> these problems you listed and more about the realization that the future is
> not about mogrifying long running machines and more about orchestrating
> deployments of whole pre-tested artefacts.
Orchestration! I did a lot of funny projects with MCollective. Steep
learning curve for many, but once they lost their fear it started making
fun to them. You know, it often was their first message queue. Nice
product. Had only one customer that fully understood it. The others got
some tooling and used it to do a few things on demand. Like disabling
all Puppet Agents once they realized one of their changes started to
kill their systems one by one ;)
Nobody deprecated MCollective, but to them it was part of the Puppet
ecosystem. They invested time, built their tools around it or paid
others to build those tools. It feels like a pretty dead product these
days. So, this proves both of you right. It is still there, still
somehow supported. But they have been indirectly told that they are
riding a dead horse.
> Ansible and such is a reasonable step in that direction when you're a old skool
> shop looking to make a small step forward. But when you look at the new stack
> you'll see a few things:
>
> - none of it is 'free' in the old sense of the word, very few parts of the
> new stack is made by some hand full of dudes in their basements
> - today a lot of it needs configuration but every day we move closer to a
> world with new operating systems and new patterns (see CoreOS and similar
> from every major distro) that simply do not have the problem CM fixes
> - the tools are self assembling, self configuring, have strong opinions and
> do not need environmental level changes.
> - very importantly their users are willing to adopt the strong opinions unlike
> sysadmin who think they bring value by hand crafting an apache config in
> what they believe is somehow superior.
>
> Everyone is into this, old distros, old storage vendors (hyper converged) etc
> It's where the future is. Even if its long away, its coming. Puppet is not
> dead at all you state - but ther's a real risk that it will not be relevant
> to a distant future (in IT terms, much sooner than you think in man years).
Luckily those 80% you named do not get very nervous about those trends.
Try to tell them about the twelve factors all their applications should
respect to make a good candidate for Docker...
I love containers, I'm running containerized applications in production
since 15 years right now, started with patched Linux kernels. But
honestly, I hate Docker. More for what people tend to use it for, than
for the product itself. Docker has it's use cases, but people tend to
use it as their new JAR file. You'll not get rid of CM this way. You
just moved your problems to a container.
> I've often said 'the best CM is as little as possible CM' and the future is
> embracing that. Puppet is both the best and the worst thing to happen to systems
> people. Best because it solved a problem that was very very hard to fix -
> configuring systems. Worst because it bought that terrible core broken pile
> of crap that needs deep configuring to the tune of sometimes 1000s of resources
> per machine a 10 to 15 years lease of life. Time that should have been spent
> inventing a new approach to solving our problems. Finally the new stack companies
> are doing this.
>
> Your change averse friends should ask themselves not why is the
software changing
> but rather why is a whole new class of startup out there that does not
feel their
> oppinions have any merit.
And they are doing it the right way. Still, I guess many of the "80%"
you mentioned before will still be there when 80% of those shiny new
startups no longer exist. I know who you mean when you talk about
"change averse friends". But please do not forget that many brave people
working for those 80% are pushing Puppet projects forward.
I guess you know how this works there. They get some dedicated time,
they get their budget, they have to ship their project. And then they
have to move on getting other things done. As during the "Puppet
project" their team still has a ton of other things to do, introducing
Puppet could easily take two years. Not to install the product. To train
people, to prepare changes, build and run test environments. Even the
paperwork to order new servers could take several months. And once they
are done and feel ready to roll it out, they start with an already
completely outdated product, let's call it Puppet 2.6.
After some time they start a migration project to Puppet 3. Guess what
happens next. So by now, for several years they spent most of their time
for their CM tool, instead of the CM tool saving their time. It's not
Puppet's fault. Puppet is an amazing company, doing a very good job in
moving a strong product forward. But they deluded people. Quite a bit.
Calling all of them "change averse" is not fair.
> The future is in orchestrators and tools like those put out by Hashicorp, CoreOS
> Docker, Google (k8) etc. And not at all in what we know. Puppet need to figure
> out how to do something new there.
Yes and no. Those 80% have an orchestrator that works fine to them. They
use to call it SSH. It can be used the wrong way, but it scales well
enough for the few thousand boxes their teams usually run. You're right,
Puppet's orchestration ideas do not convince me either. But even if they
would completely ignore Kubernetes the market for legacy CM for the next
20 years will be large enough to feed their company.
What I see more dangerous is that Puppet tries to sail every new hype
instead of sharpening their own vision. I know there is some pressure to
do so, as you have to be "cool" in this market today. Times were better
when CM wasn't cool at all.
> That future is "far" away though, 5 to 10 years and as stated there's a giant
> mountain of gold to farm at the end of the shitty enterprises rainbow so the
> - to be generous - baby steps Puppet is taking in this orchestration space is
> not at all interesting or exciting to me. But those 80% do not want interesting
> or exciting so where it's heading is perfectly fit for purpose, just not a purpose
> I believe will exist in the future on the modern side of computing, those who
> need what we have today will be like todays mainframes.
And the mainframes are still there. As they have LPAR since a very long
time they might not share our excitement about containers. Their
workloads are predictable, so autoscaling is mostly not a requirement.
If they need to scale, they often can - it's just a matter of money. Try
to sell them a tool offering service autodiscovery, and nothing built in
what they would recognize as a security feature. Good luck :)
> So my suggestion would be to not do what you suggest at all instead stop engaging
> with the change averse dinosaurs heading for the endangered list as a place to
> find new features. Be a great Puppet to sell to that 80% and invest in creating
> a team dedicated to engaging with the new generation to be sure there's a future.
> 10 years sounds like a long time but it's actually both long and short. Short
> time for a large multi 100 head count company to do anything in and very very
> long when considering the rate of change in todays IT.
My suggestion would be to try harder to find Puppet's own identity. They
aren't big enough to do everything, but trying to do so. It's amazing
how much they are able to ship, but I hardly doubt there are enough
resources to be brilliant in every single discipline. It's hard to make
startups and dinosaurs happy with the same product. Telling one of both
to behave more like the others might not work. And there are a lot more
groups Puppet tries to target.
One last very important factor to the mentioned frustration is the fact
that Puppet is an Open Source product. People over here in Europe see
this stricter than they might in the US. If you say "...and it has an
Enterprise version", 99% of the time "Oh, so it isn't really open?" is
the reaction you get. And for many it's not about the cost. Many large
rich companies use a lot of Open Source software. Not because it is
cheaper, but because it doesn't lock them in.
Until now it wasn't hard to argument against this, Puppet 3 was a
wonderful open source product. It was also very easy to extend and to
fix if something went wrong. This changed with the new stack. I know
people paying PE licenses while running Foreman. They pay to feel on the
safe side with Solaris and AIX support. But they refuse to run a
frontend that's not "open", even if they paid for it.
Nonetheless, I'm a happy Puppet user and still defending it. Even whilst
sadly disagreeing with more and more of it's strategic decisions.
Best,
Thomas