----- Original Message ----- > From: "Thomas Gelf" <tho...@gelf.net> > To: "puppet-dev" <puppet-dev@googlegroups.com> > Sent: Monday, 11 April, 2016 03:30:58 > Subject: [Puppet-dev] Re: The Future of Puppet [Was: Deprecation logs]
> Am 11.04.2016 um 03:01 schrieb Rob Nelson: >> Of course there's lock in. You can't click a button and go from Puppet >> OSS to Chef OSS; [...] >> Is their concern about being able to contribute to it or even fork? I >> suspect that's what most lock in concerns are really based on. > > It's about going from Puppet OSS to PE, forth and and back. No problem > with loosing the GUI or special add-ons. But the core functionality of > your CM tool, that's what they want to be free software. > Eric asked so here it is, this is my feedback with a open source user hat on. Echoing much what was said. I hope others send in their story. Thanks for the replies, the level of detail and obvious care and emotion that goes into these mails have been good to see and I am sure valuable to everyone. I hoped my mail would spark a wider conversation hopefully involving some Puppet people as well as some of the community - even those who don’t often engage and it looks like we’re off to a good start. While my earlier mail was most certainly squarely to the one side of the coin as pointed out there is another. My earlier mail shows how a company in Puppets position might think, I do not know if I am wrong or not as I have no insights into the internal convos but my gut feel is I am not far off. But I specifically wanted to state that side first because it’s important to understand as it frames expectations one should hold. The other side of the coin for me is that of a open source user and I think the outlook is particularly dire. Excuse the following wall of text but we have to talk about how we feel and what the current reality means to us as a class of user. Open Source users often see the existence of some open source tool as a implied contract that it will always be so, and their adoption of it is based on that perception. This is encoded in the very licences we hold deer and when that inevitably turns out not to be realistic business model the companies involved will do what they can to survive. Inevitably this ends up breaking the ‘implied contract’ the open source user rightly or wrongly felt they had - cue much anguish and resentment. The company will then go on to explain themselves and make commitments - we will keep the core product open but innovate on paid for enterprise features like RBAC and very featurefull GUIs. We will not work to exclude other makers of tools and your home grown tooling, we will make the extension points open and APIs open for others to innovate on. I don’t have the actual quote to hand as I am sat on a plane but this seems to me more or less the story we were told when PE became a thing and that seemed good and a model worth supporting. After all what would be open source is not unlike most other open source and we are not averse to applying some duct tape and glue to make things work. Fast forward to now and the situation is not like this at all. Today we have the puppetserver product touted as the only way forward and not only does it have PE only APIs its core operability features are PE only too. Performance metrics and atomic deploys. No longer is it a matter of if you put in the effort and build the tooling you can use the Open Source product but we will sell world class tooling. We’re now in a world where the ability to monitor the product and gain the insight you need to scale it requires you to adopt a per node based payment model. Being able to monitor a service only when you pay for it. I am not sure I've seen a worse model for the 'free' users. Now tools like Foreman cannot compete because they cannot monitor the master and they cannot have atomic deploys. Who knows whats future PE only APIs will come? I'd bet things around file serving, catalog life cycle management etc. Now similarly open source users cannot compete because they cannot gain the insights they need to scale this java blackbox, even if they invest the time to learn the JVM, the software in the JVM is actively resisting their efforts of gaining operational insight. Their own tooling cannot compete against PE because some APIs are PE only. Personally as a open source user I use ‘apply’ - I decided during my P4 migration to look again at using a master - puppetserver - and was all set to move machines onto it that weekend when the metrics blog post came out. The puppetserver VM got immediately deleted. This is not a future direction that is cooperative or long term tenable for me. If you’re a open source user you need to look very carefully at the messaging and feature set and you can really only come to one conclusion and that is that to Puppet you’re just not a priority. Less than a priority you’re effectively being locked out and worked against and lack the ability to make a well monitored CM system if you adopt open source puppet. I hope the metrics situation will change - there has been other PE-first features and they came to Open Source so its not unprecedented but in this case it will pay to wait and see since if these features are not coming to Open Source then the whole is unusable. It’s a pendulum that swings, whats the right answer and right balance is not black and white. It’s a fiendishly difficult business problem and you have to commend Puppet for even bothering with Open source at all this point so I try and see the good intentions towards the open source user base. And while I am quite negative in this mail I do not think they are maliciously working towards excluding us. Hopefully Puppet realise in these cases the pendulum swung too far and will correct the course. Either way, the signal to Open Source users is that you need to really deeply consider your options post Puppet 3. It’s undeniably a high risk situation. It might well be the most significant decision you make in the next 5 years of your infrastructure and of your career. On the points of migrating to P4 from earlier Puppet. Its a major problem. Not only did the entire system change - in every respect, every component has had a major rework and rethink from 2.6 days but the language have also in effect become a new language. Not surprising for a 10 year old product. Yes there is some semblance of backward compatibility on the language level. But there is no doubt that New Puppet is exactly that. It’s a entirely new product with a backwards translation layer. Ask yourself does just updating to P4 and running your existing code achieve much? No it doesn’t it means you’re still running an outdated code. But getting to the point where you’ve updated Puppet to 4 and are now on a new set of software but still not rewrote your code to New Puppet is a colossal task since the world we live in is so resistant to upfront testing and rollback. And then you’ve still achieved more or less nothing because now you also have to consider basically rewriting your code to take advantage of the new features. Worse before you can even begin to look at refactoring your code you need to learn an entire new Puppet language and set of technologies and their environments like the JVM, new deployment locations, new packaging models new everything - worse ones that resist introspection. All while there is scant information on new patterns, no new style guides, the supporting system like rspec-puppet doesn’t support P4. Documentation is lacking or embryonic and so forth. rspec-puppet especially is a bad situation since many who have invested in a tested infra will loose the value. Ditto for puppet strings etc. I hope my blog posts and upcoming talks at conferences help those who do want to take on this task, but it’s a task much larger than that. Meanwhile other tools like mcollective are effectively abandonware with no viable alternative. Feedback I’ve had on some of the modern Puppet code I’ve put out is that it does not look like Puppet at all. It’s a new thing, literally your foundations of your 10 story building needs replacing if you wish to move forward. In the world IT admins live in you’re asking to replace the foundations while keeping the building standing, a tall order at best. (see https://github.com/ripienaar/puppet-classifier for modern puppet code) It’s truly a perfect storm of a fuckup when looked at from a Ops perspective as an open source user. So while I made a point of calling out the ‘resistant to change’ user, there are several version of these. You have your people who just won’t change - I have no sympathy for them as was clear. But you also have those who wish to change and who look critically at the P4 vs < P4 and come to the correct conclusion that this is a high risk multi month if not multi year project. They correctly deduce that Puppet is now so big that you need a dedicated team managing the manager. Something many of us just can’t afford or indeed who wants to spend their days doing nothing but manage Puppet? For many just getting Puppet in has been a massive politically charged internal struggle. It’s a constant battle between forward thinking admins, old style admins, developers and management who want to instead see features delivered and not management tools managed. Having just won the battle, one that was in many cases a battle fought out of having a deep respect and affinity for the company, its founder and products, now they find they’re squarely screwed and have to again invest possibly years and again have the fight with everyone the exact same battles and again have to budget for years of disruption. While it’s clear the Puppet won’t slow down its change curve. They correctly conclude that they WANT to change but cannot afford to. They also correctly conclude that the task is so big and Puppet moving so fast that P5 will be around long before they are on P4. And so the cycle will just start again. Its realistic to think the opportunity cost of continuing with Puppet is simply to high a price to pay for what it brings when you’re on <P4 today. Staying is no option as it will be unsupported and we have to consider security updates and such. Change they have to change, rock and a hard place. There is not much more frustrating and insulting than a company who puts you in that position and needless to say if the effort has to be put in anyway they will look elsewhere. I suspect the paying customer base will approach the transition similarly. I have no data on this but would be interesting to know how many old PE users are transitioning to P4 based PE once the older support cycle ends. I am deeply sympathetic to these people and it’s sad to say but where we are today is that they are simply SOL and there is no light at the end of the tunnel when you can’t even have a hope of gaining deep insight into New Puppet without paying. So given a choice to rewrite all my code to P4 I instead came to a hybrid approach: * Move my actual things I run into containers - web sites, bind, smtp servers, etc all in containers. Not puppet managed. * As machines move to CentOS 7, make them P4. * When on P4 only manage with Puppet the low hanging fruit like resolvers, sudo, users, sensu and bacula. Most from the Forge. Why do it this way? Well my environment is a R&D environment so I enjoy looking towards new tech and this is the world I want to innovate in but more than that where my P4 is now it’s doing very little. So little that any competitor in the CM market can step up and replace P4 for me really quickly as it appears more and more likely this is an important consideration. I felt I had no choice but to approach it this way because as a Open Source user the future is not bright at all - as per my previous mail I am just not a priority - and I can’t really blame the company for feeling this way. I’d use PE as I have nothing against it but as this is a R&D network the $3000 licence for my node count I’d need does not seem like a good way to spend my own pocket money. I myself am bout 50/50 through my P4 migration and it’s been a daunting task to say the least - though I am under no time pressures and am taking the time to gain a deep insight into what P4 is, what motivates its existence and to regain the deep understanding I had of < P4 and so forth. I am though a consultant in this space and Puppet is creating a massive customer base for what I do so it’s not like its wasted effort for me, as was pointed out, I am not typical though. Given the amount of money out there for consultants in a world Puppet literally create from nothing - wearing my consultant hat I’d say keep going as you were. And Puppet does really good things to support the consultants in their space via partner programs and such. P4 on it’s own is a brilliant tool brilliantly engineered and the language innovations are really good. The engineering rigour is orders of magnitude better than we had before and it really shows in the end result. I have nothing but positive things to say for P4 and the team that created it. It’s unfortunate P4 is combined with a supporting eco system that while innovative, powerful and potentially game changing is making it irrelevant to me as a class of user since they are more and more approaching things in a way that locks me out of the future I - and many like me - helped create. -- 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/371534503.181383.1460372927683.JavaMail.zimbra%40devco.net. For more options, visit https://groups.google.com/d/optout.