Skip to comments.When open-source eats itself, we win
Posted on 02/06/2013 10:49:48 AM PST by ShadowAce
Open ... and Shut For years the headlines have been about open source cannibalising proprietary software. But what happens when open source starts to cannibalise itself?
In some markets, open source rules the roost. For example, Drupal, Joomla, my old company Alfresco and other open-source content management systems regularly duke it out for supremacy, depending on the workload. In application servers, JBoss and Tomcat spar. In cloud, Cloudstack, Eucalyptus, OpenStack, and others battle.
But web servers? That's a market that Apache won ages ago, with no open-source competition to speak of.
That is, until recently.
In the past few years, a lesser-known web server, Nginx (pronounced "Engine-X"), has quietly taken market share, to the point that it now owns 12.64 per cent of the global web server market, and 12.77 per cent of the world's most heavily trafficked websites, according to new data from Netcraft:
Nginx starts to stand out
It wasn't supposed to be this way. Once an open-source project gains traction, it has tended to continue to gain share. Like Linux.
But Apache has been on the wane, losing 100 million hostnames since June 2012, and not because of any resurgence from Microsoft IIS. Apache still claims 55.47 per cent of all active sites, but Nginx is on the rise.
The reason is scale.
Started in the early 2000s by Igor Sysoev, Nginx now powers websites with serious scale requirements like 163.com, Wordpress.com, Yandex.ru, and CNN.com. As explained on the WikiVS site:
Nginx and Lighttpd are probably the two best-known asynchronous servers and Apache is undoubtedly the best known process-based server. [...] The main advantage of the asynchronous approach is scalability. In a process-based server, each simultaneous connection requires a thread which incurs significant overhead. An asynchronous server, on the other hand, is event-driven and handles requests in a single (or at least, very few) threads.
While a process-based server can often perform on par with an asynchronous server under light loads, under heavier loads they usually consume far too much RAM which significantly degrades performance.
Today, Nginx offers fewer features than Apache, but its performance is significantly higher. In this way, it's not unlike MySQL or NoSQL in the database market, or JBoss and Tomcat in the application server market, or any number of other open source examples where the open-source alternative is initially feature-constrained but significantly better for a particular purpose. Over time, it adds functionality and continues to improve performance until, like Linux in the server and mobile operating system markets, it dominates.
This used to be the story of Apache, too, which displaced all proprietary players in the web server market. But now its market share is being eaten away, and unless it fundamentally re-architects for scale, Apache may ultimately give way to Nginx or another open-source web server.
The Apache folks know this, and haven't been sitting idle. In early 2012 the Apache Software Foundation released version 2.4, of which ASF president Jim Jagielski declared: "As far as true performance is based - real-world performance as seen by the end-user- 2.4 is as fast, and even faster than some of the servers who may be 'better' known as being 'fast', like Nginx."
Despite nearly a year in the market, Apache 2.4 hasn't stemmed its slide. But for me, that's not really the point. What's so interesting and healthy here is that two open-source projects are fighting for market supremacy in the only way open source really knows how: technical merit. Because both have to appeal to developers, and developers have a low tolerance for marketing speak.
In web servers, open source is eating itself. We all benefit. Let's hope it happens in every market. ®
Linkname: Latest Articles URL: http://freerepublic.com/tag/*/index Charset: iso-8859-1 (assumed) Server: nginx/1.2.4And there's a lot of John Robinson's well-written Perl, an open-source programming language crafted by Larry Wall, an evangelical Christian, driving the backend of what we often take for granted here on FR. I'd say that using open source has served Free Republic quite well.
i didn't know FR used nginx. I just assumed it was apache given that it was running on Linux. I think it's great that there are so many great open source alternatives. If you need something light, and fast, nginx would be a good fit. If you need more features, Apache is a better fit. As long as you know what your environment is, you can choose the best tool for the job!
What is “cannibalism” in the proprietary software world is merely OSS working as designed. Somebody finds something good, modifies its (open) source code and makes it better.
Simply put, this ain’t “cannibalism” - this is the OSS system working as designed.
Presumably if Apache so desired they could backport the enhancements into their own codebase - at least so it seems to me.
I'm not an expert in OSS licenses by any means. I don't know what is in the nginx license. Is Apache a commercial concern these days? I agree with you, though--I'd think if Apache wanted to, they could put the nginx features into its own code.
I’m not an expert either - I mean there is GPL v2, GPL v3, copyleft, copyright, etc. etc.
But really my only real point is that the very notion of “cannibalism” really doesn’t even apply in an open source setting - it’s basically an oxymoron - so that to me, at least, the premise of the article is false.
And I guess on closer examination of the article, the author agrees with me. It’s just that they use the term “eating itself” but in a semi-ironic way. To say “it’s eating itself and that’s a good thing”. I don’t think I would have written it that way. I think I would have simply said that the OSS model is working as envisioned - so that the software gets better and better. Like vi and emacs for example. I presume that each has taken ideas from the other. But you’d be hard pressed to say that either has “eaten” or “cannibalised” the other.
??? I’m not sure where you are getting your information from, but it surely is not any of the FR pages I have looked at. All sourcecode reads “text/html;charset=latin1”, and no “server” listed at all. Perhaps it is on your end?
The page source does not have the name of the HTTP server unless the HTML author chooses to include it, sometimes they do perhaps as META tag.
Do you not have lynx? If not, you can easily build it from source using the familiar configure script to set your preferences. Once built, you can then easily find the HTTP server by visiting a site and then pressing '=' to reveal that information.
Alternately, good old telnet can be used to find what HTTP server a site is running as shown here, with the strings you type in bold with the ^M symbol representing a carriage return -- two are required:
telnet freerepublic.com 80 Trying 126.96.36.199... Connected to freerepublic.com. Escape character is '^]'. HEAD / HTTP/1.0^M^M HTTP/1.1 301 Moved Permanently Server: nginx/1.2.4 Date: Thu, 07 Feb 2013 09:47:51 GMT Content-Type: text/html Content-Length: 184 Location: http://188.8.131.52/tag/*/index Connection: close Connection closed by foreign host.Your platform may format the text differently but, when all is said and done, telnet is still pretty much telnet wherever you go.
Just for fun, I hit a few more random sites in no particular order to find their HTTP servers.
Courtesy ping to others who may know of a more GUI friendly manner to discern the HTTP server for a given site. But for me, I'll just stick with lynx and telnet since they're both just part of my DNA (and I still occasionally use the latter as my means to transmit a message via an SMTP host).
Running Mepis Linux v11 on this end, and looked at the sourcepages for both the Latest Articles and this posting on both the default Opera (12) browser and Firefox (9) for the info. Haven't tried Lynx so far but am always curious so I may play with it later after I finish some current downloads. Marked For Later...
That distro more than likely has curl installed out of the box. If so, here are a few traces of how to run it (and the results):
curl -D - freerepublic.com/ HTTP/1.1 301 Moved Permanently Server: nginx/1.2.4 Date: Thu, 07 Feb 2013 12:24:29 GMT Content-Type: text/html Content-Length: 184 Location: http://freerepublic.com/tag/*/index Connection: close curl -D - usmarines.com HTTP/1.1 301 Moved Permanently Date: Thu, 07 Feb 2013 05:43:29 GMT Server: Apache/2.2.3 (Red Hat) X-Powered-By: PHP/5.2.17 X-Pingback: http://www.usmarines.com/xmlrpc.php Location: http://www.usmarines.com/ Content-Length: 0 Content-Type: text/html; charset=UTF-8 curl -D - gop.com HTTP/1.1 301 Moved Permanently Date: Thu, 07 Feb 2013 05:45:18 GMT Server: Apache X-Pingback: http://www.gop.com/xmlrpc.php X-Powered-By: W3 Total Cache/0.9.2.4 Location: http://www.gop.com/ Vary: User-Agent Cache-Control: public, max-age=900 Content-Length: 0 Connection: close Content-Type: text/html; charset=UTF-8 curl -D - hillaryclinton.com HTTP/1.1 200 OK Content-Type: text/html Last-Modified: Mon, 04 Feb 2013 13:36:54 GMT Accept-Ranges: bytes ETag: "a9ba6cb2dc2ce1:0" Server: Microsoft-IIS/7.5 X-Powered-By: ASP.NET Date: Thu, 07 Feb 2013 05:46:15 GMT Content-Length: 2528I've found that a number of leftist sites use Microsoft's HTTP server.
The Apache folks know this, and haven’t been sitting idle. In early 2012 the Apache Software Foundation released version 2.4, of which ASF president Jim Jagielski declared: “As far as true performance is based - real-world performance as seen by the end-user- 2.4 is as fast, and even faster than some of the servers who may be ‘better’ known as being ‘fast’, like Nginx.”