I've been using nginx for a very long time, but I am getting a bit nervous about it. As an example, the nginx Plus feature of "Application health checks" has me concerned. This is the feature that performs an HTTP request on a backend server to determine if it is healthy.
That's such a simple and necessary feature of any reverse proxy that it should obviously be included in the free version.
So, are they going to avoid ever implementing it in the free version? Would they turn away patches to add that functionality? I know there was an open source patch that never made it in, but I don't know why.
And what about staging/dev environments? Do you really have to pay full price to get basic features for internal testing servers?
Just curious, do other reverse proxies have this feature? Why aren't you using them?
To me this sounds like exactly the sort of feature that belongs in an enterprise product. So simple it could be implemented with a shell script in an hour or two by any competent sysadmin, and just out of being core functionality.
The idea would be that by buying the enterprise product you save yourself the time/money of being/hiring that competent sysadmin. How is that not reasonable?
this is getting ridiculous, first mongo.db next nginx.
HEADLINES FROM NEXT WEEK:
cat raises $750M at valuation of $25B
The venerable gnu shell program 'cat', which is an integral part of 70 million developers' toolchains and helps power shell scripts on 70% of the world's Internet servers, has completed raising a seed round of $750M at a valuation of $25B.
"We could have raised more", said Richard Stallman, "but by only parting with 3.3% we are leaving ourselves room to grow. More and more people are starting to use Gnu/GNU utilities, and our eventual market base is 7 billion people. We have no plans to monetize."
How is that ridiculous? Why can't nginx or MongoDB monetize its strength?
10gen was a startup and MongoDB was built to make money.
You can keep a project "open source" while offering enterprise level of support. Look at Puppet, Chef and now Ansible.
The world needs business. Nginx is mature and actually deserve to run as a business. The developers are already consultant for a long time; they just want to monetize Nginx publicly, as a startup.
Are you afraid Nginx will become the next Microsoft Windows Server? I can't predict future but with 100% of faith I say nginx will be fine in the next several years.
If I'm a small business that can't afford "enterprise" pricing and nginx starts stagnating because all of the effort has gone to nginx-plus, what then?
Well, in that case, you are okay with the last version of free nginx for several more years. If you use Ubuntu server for example, it ships with outdated version. A lot of companies use that (for stability and security reason).
And I predict half of the developers will protest and negotiate with Nginx Inc. to get a fork version.
Don't panic. I think it is solid enough for few years. What if half of the world is destroyed tomorrow? Well, that's a disaster.
Mongo and nginx are both fairly complex tools. They stand to make lots of money from large organizations that want to optimize their back-end.
If generic webcorp X is paying $1 million per year in server costs, and you can reduce those costs by 10% for $100,000 with some new feature... webcorp X will pay you for that feature.
Please do not put nginx and crap like mongodb in the same basket. nginx won its user-base solely due to brilliant engineering, attention to details and superior code quality, while mongodb "success" is based on using deceptive sales techniques and media manipulations.
There are hundreds of blog posts that describe in great details all the pitfalls and bad design withing mongodb, along with their cheating with benchmarks and calling "transactions" non-atomic writes, etc. It is no use to describe all the details here. Use Google search.)
In short, the strategy was to develop a brand instead of code. It is nothing wrong to have a brand when you already have a superior design or innovative technology, not the other way around.
One of such manipulations were so-called benchmarks when in a mode in which the control returns to a caller function before an I/O operation is finished, successfully or not, without any error checking, which has to be done by calling a separate function explicitly. Basically, what did they measured was the performance of writing into a memory buffers.
There was later some nonsense about default mode of operation, and when you really need your data consistent
you should turn on a synchronous mode.
The story of table-level write locks is less dramatic.) But the stories of "customer satisfaction", "increased productivity" (never to see an error) "features to jump-start the development" (by ignoring how your data is stored) were all over the site and paid content mills like techcrunch.
Keep in mind that this very crap is now "valued" at a sum compared to a budget of small country.
In case you don't get it, the design of a fault-tolerant storage engine is a much harder problem. Serious systems, such as Informix at its time, resorted to write data in a chunks they call "pages" on so-called raw-devices (without any buffering by OS or hardware). They had page-level instead of row-level locking, and in case of failure they knew which pages were written and which not, so they could rollback the unfinished transactions. btw, they used the same pages for shared memory operations.
This was a technology IBM brought for a billion dollars back in 2000. Compared to that MongoDB is just a Herbalife or any other scam.
I can see being angry about their marketing tactics, but MongoDB has been around for a while now and it's arguably the best choice for a NoSQL database simply because it's so popular. I wouldn't let the notion of code cleanliness or "proper engineering" get in the way of making a sound business decision for your tech.
Being the most popular database means you've got lots of large companies using it, satisfied with its reliability, and you get plenty of extra features written by 3rd parties when you need them. And web searching will find answers to your problems, when you have them, way better than with a lesser-known database.
There are literally millions of people who are satisfied with "the most popular language for the web" - PHP, but this doesn't magically make it even a good language.
The problem isn't making a commercial business model around open source, but doing so in a way that has the opportunity to achieve the levels of return VCs expect.
IMHO the best returns in open source don't come from early monetization, but from growing a community so much that the open source product's brand value becomes attractive to the largest enterprise-focused service organizations like IBM, Oracle, RedHat, etc. IMHO this is basically the end-game that MongoDB is gunning for.
Charging for a premium product early on when you instead angle for owning a large chunk of major category of software globally like webservers is naïve.
Owning the brand of a major du jour technology keeps big enterprise service orgs top of mind with CIOs and CTOs.
Just to clarify: Any company which got open source model is awesome.
Just in that case transition may cause that they core product will not be evolving as fast as we would wish. Without digging depth, things like "Advanced load balancing" just in paid plan makes me anxious.
I can't speak for Nginx, but it seems to me their enterprise product is very reliant on their open source product. Their customers will probably users of the opensource product that seek a little extra.
If they would slip up and let another open source software be better than their open source product it would eat in their customer base and eventually cost them money.
This is why this business model is so awesome. It is both excellent for the users, who benefit from having the core contributors be paid and highly motivated to improve and maintain the project, and good for the contributors who are finally able to work on the project they love without the distraction of having to do other work for money.
That's not even mentioning side effects like the fact that paying customers are more likely to give feedback and report bugs/missing features.
That's possible. WordPress and of course Yandex.ru use them, I think, almost exclusively (there may be a few edge cases where they need to use something else). That's a pretty sizable chunk of traffic right there.
I doubt it, because Google doesn't use nginx for anything public facing, and I'm pretty sure Facebook, Amazon, Yahoo, and Microsoft don't either. That already counts for a huge chunk of internet traffic.
Nginx is good for relatively high traffic sites, but not so high traffic that you have entire teams of engineers rolling your own load balancing!
> Do you happen to know why they don't and what do they use?
Google originally used a modified version of Apache (and, as you have linked to, contributed a module to it), but my understanding is the Google Web Server is now so far removed from Apache it bears virtually no resemblance to it.
Nothing wrong with it per se, like I said I wish them well, I just feel that their motivation going forward is going to be towards enterprise features.
For example Nginx currently has bad WebDAV support (only a 3rd party plugin that is a version behind). I don't see them doing anything to fix this in the future, and I'm not suggesting that they should, just that Nginx Plus is a signal to me that they aren't going to be serving my needs.
I don't understand why a minimalistic Haskell server (while neat) is the "future of http server stuff". While I'm glad it puts up similar benchmark numbers to Nginx, what reason is there to switch?
Nginx is plenty stable despite not being written in Haskell.
I know that they plan to add dynamically loaded module support in a future release. As long as they don't plan to keep that feature as an Nginx Plus feature then I don't see much to be concerned about.
As it stands right now, a lot of users aren't able to make use of 3rd party modules because of the overhead (recompiling). Once dynamic modules are supported the community should be able to fill in the most desired features.
Nginx Inc without mr. Sysoev is just a support company.)
There were rumors that he had plans to rewrite big parts of the server, so-called nginx2. If this Nginx Plus is what they would do instead, that is pity.
In my humble opinion, while nginx/core is brilliant the module system is over-engineered and too complicated, and there are lot of room for improvements.
That's such a simple and necessary feature of any reverse proxy that it should obviously be included in the free version.
So, are they going to avoid ever implementing it in the free version? Would they turn away patches to add that functionality? I know there was an open source patch that never made it in, but I don't know why.
And what about staging/dev environments? Do you really have to pay full price to get basic features for internal testing servers?