----- Original Message ----- > From: "Alex Harvey" <alexharv...@gmail.com> > To: "puppet-dev" <puppet-dev@googlegroups.com> > Sent: Sunday, 10 April, 2016 11:05:49 > Subject: Re: [Puppet-dev] Re: Idea: Deprecation logs
> On 10 April 2016 at 03:59, R.I.Pienaar <r...@devco.net> wrote: >> >> >> Not really sure I follow most of this rant. >> > > Yes, fair enough. It was a bit of an uncalled-for rant. > > >> In what relation does the switch to clojure even matter? There is no user >> visible clojure code, you don't need to know it to extend puppet etc. It's >> literally internals you never need to poke at >> > > I guess what this shows is that even when changes don't appear to be > user-impacting, they are. This guy was asked what his favourite CM tool's > biggest pain point was; and he cited Clojure, and to be sure, 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. >> 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". > > 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. 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. Worse, it's use has been discouraged for YEARS. But again the same class of user who moan about 'breaking' things are the ones who refuse to heed warnings in the documentation and instead approach complex software from a point of solving an immediate problem therefore its good rather than a long term view as the tool managing the foundation of your infrastructure require. 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. This pattern holds true for almost all the deprecations in the last while, they are either things we've replaced with better things literally years ago but kept to pander to these change averse minority or they are things that were experimental or just new new and turned out to be bad ideas. Don't forget that in many ways Puppet was trail blazing, there's going to be bad ideas that's not worked out and better deleted. Yet Puppet has kept these for YEARS. But in all cases them being there literally hurts everyone. I can tell you I must have spoken with at least 100 people over the years who struggled with issues caused by import, but because its in the docs and it seems simpler than modules new users use it and everyone suffers as a result. Now of course this hurts, but the team have now looked at every feature in Puppet and considered it and where it was possible to define their behaviour the behaviour is formally defined in the puppet language specification or where the behaviour was just irrevocably broken and unpredictable they were deprecated or the just critical behaviour was kept (weird shit removed) or something new was made - like directory environments which fixed both critical short comings in environments and 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. > 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? Now since they adopted semver and 2 or 3 years ago started down a route to deprecate and remove very very old rubbish features they've been extremely careful and considerate when deprecating things and should be commended for that. They can't come to your computers and do the work for you though to get modern software, if as a user you refuse to do your side to ensure there's a stable whole do not complain when the other half of the equation doesn't hang around waiting for you to do something. > 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. And I should prefix this with stating in case it's not obvious that I am not employed by Puppet and haven't been since 2013. There's a often quoted stat that 80ish % of large companies DO NOT EVEN USE ANY KIND OF CM. 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. 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. When you're talking about a company with over 300 (i think?) headcount, who lands deals equally many many millions of $ for a single install, I can't see how you seriously suggest this is the way to go? 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'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. 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). 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. Puppet have unfortunately not embraced this on any significant level. I deeply believe the statement being thrown around that in the future the hypervisors and such will still need config and so there is always a future for CM tools is very wrong. The new initiatives to attempt to show Puppet is relevant when configuring tools like k8 and so forth is not going to have a long term set of legs. 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. 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. 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. -- 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/1678839111.542998.1460307113403.JavaMail.zimbra%40devco.net. For more options, visit https://groups.google.com/d/optout.