On 4/18/2018 11:46 AM, Jim Jagielski wrote: > IMO, this boils down to 2 things: > > 1. nginx, particularly, does a LOT of promoting, marketing, PR, etc... > We don't. They get to promote their FUD all the time and remain > pretty much unchallenged.
Speaking from experience at $dayjob, I can confirm that the marketing and sales folks are out in full force. I and a colleague have both been contacted at our work addresses with messages tailored to our cloud and cloud native jobs. Editorially, my work email address is not published publicly - so this requires at least some minimal thinking to figure out what the address is and to send the right targeted message. At the same time, we should acknowledge that there are some things these other products do well. TCP proxy/loadbalancing seems to be present in many proxies but not httpd. Most products do not expose users to underlying implementation details and instead allow the administrator to express what they want done (the example that comes to mind is slotmem/proxy modules needing to be loaded or a semi-confusing error will come up). Some have really great 'how to' pages on their main docs site to keep people from needing to dig. > 2. They don't seem to have issues in understanding that new features, > enhancements and improvements to the server is what keeps users > and grows community. Instead, we either spend our time naval > gazing and pondering such inane issues as revisiting versioning, > or else treat the codebase like a school exercise where the > winner is the one who changes the most number of lines. Each time > a new feature is proposed, we have to deal with the incessant > blather around 2.6, 3.0, EOLing 2.4, blah blah blah. We've had > some features in httpd long before similar functionality existed > in nginx, for example, but they got to release 1st because we > were too busy standing on soapboxes or bike-shedding. I think it's fair to point out that we have shipped regressions in some form or another for several of our recent releases... plus a few that didn't get shipped thanks to the n00b RM :-). I can't speak for every contributor to the code base, but I view breaking or significantly altering a configuration that is working today to be criminal. Given that we have made mistakes, the conversations that are being held are both an acknowledgement of the errors and brainstorming about how we can proceed without harming our users. We want to release new features AND remain stable AND improve the code base. There is a balancing act among those three goals we need to agree on as a community. I'll use this blank line as a quote for what I think could possibly be a third point for consideration. We are lacking in two areas that I think are key for survivability: enterprise usability and machine-based management On the enterprise front: one of the things that Microsoft gets right is that with enough clicking around in a UI, an administrator can accidentally implement a perfectly functional server. The massive amounts of study put toward usability and consistency pays off since an admin who understands how to generally set up a windows server could just kinda figure out how to start and manage the web subsystem. Talking about nginx in the enterprise, you don't get that same level of "clickability"... but you DO get a phone number you can call and complain to when your config isn't working right as well as some pre-sales/post-sales engineers that will help you through the configuration syntax. On the exact opposite front: IIS and nginx suffer just as badly as we do when it comes to machine-driven management. There are pretty clear trends happening in the world around aggregating several OSS projects into a larger amalgamation (Kubernetes being a rather fine example). These amalgamations tend to prefer services which can be configured by a machine both pre and post start. In the proxy space, envoy is a big up-and-comer where config can be read from file but completely altered via API after the server has started. Having a machine-friendly configuration syntax (YML or JSON, for example) would be a great gateway to constructing a generic API handler that can modify nearly any part of the running server. To be fair... I think these are cool things to do, but FAR beyond my skill set and time budget. > Personally, I'd like to see the the PMC take a more active and > direct role in addressing #1, maybe w/ monthly blog posts > coordinated w/ Sally. It would also be cool to reboot Apache Week > (I know it was an external, 3rd party effort) in in conjunction > w/ the blog posts or instead of it. This is interesting. Can you provide some examples for the types of blog posts that you think would be good to make? Stealing from other parts of the thread (thanks, Luca!), I could see value in providing bite-sized tidbits of how requests/responses are run, what this whole "hook" and "pool" stuff is all about and anything to demystify the filter chain. Those things could also be used to refresh our developer guidelines pages. I'm not positive that kind of content is what you have in mind since I think that would primarily drive the interest of module authors rather than the folks who choose which webserver to use. > And finally, when the vast majority of web servers nowadays live > *behind* proxy servers, these type of metric surveys are meaningless. > Of course, I feel that this was nginx and MS' plan all along: they > knew how things were changing and wanted to win the "proxy server > market"... all that should be pretty obvious w/ 20/20 hindsight. -- Daniel Ruggeri