Web Technology Stack [Analysis]
NoSQL 2011. 8. 10. 13:25 |Even wondered what technologies are used for large web applications which have millions of unique visitors and have 1000s of requests per second. Which programming languages are making it happen, handling such peak amount of load at a time. We were curious about it and thought lets figure out what beneath the nice slick interface, who is handling the business logic efficiently. Here is what we found, a compiled list of technologies stack used at various web applications.
Product | Front End | Back end | Database | Others |
Ruby on Rails (RoR), JavaScript, jQuery LabJS, Modernizr, JSON-P, oEmbed |
Scala | Cassandra | Java, C, Python, Mustache templating language | |
PHP, XHP, Hiphop for PHP, JavaScript | C, C++, Java | Cassandra, MySQL | Python, Erlang | |
JSP, Apache Coyote Web Server | Spring MVC, Linkedin spring, grails, | Oracle and MySQL | ActiveMQ for JMS, Lucene as a foundation for search, DWR, Jetty, Eh-cache, Quartz, Spring remoting. | |
YahooMail | HTML, CSS, JavaScript (with YUI 3) | PHP | MySQL | Apache Traffic Server (formely known as Yahoo! Traffic Server). |
Google + | Closure framework, including Closure’s JavaScript compiler and template system, HTML5 History API | Closure templates server-side, C++, Java, or Python | BigTable and Colossus/GFS | MapReduce |
FourSquare | scala(lift framework) | scala
Amazon S3 for hosting, /img/ folder which is served by nginx directly |
MongoDB | load balancer(s): nginx/0.8.52
Lift- A web framework written in scala. |
Youtube | Python | psyco, a dynamic python->C compiler | MySQL | |
Quora | Python and JavaScript | LiveNode/webnode2, Thrift (Communicate to backend)
Amazon EC2 and S3 for hosting |
MySQL + memcached | C++ Load Balancing: nginx in front of HAProxy |
Viddler | PHP, Python | Rails 2.x, ffmpeg/mencoder/x264lib, Java 1.6 / Spring / Hibernate / ehcache, Erlang
Amazon EC2 and S3 for hosting |
Mysql 5.0 | Hadoop HDFS (distributed video source storage) Nginx/Keepalived (Load balancers for all web traffic) Wowza (RTMP video recording server) Mediainfo(reporting video metadata) Yamdi (metadata injector for flash videos) Puppet(configuration management) Logcheck(log scanning) Duplicity(backup) |
StackOverFlow | jQuery, ASP .NET | C#, Microsoft ASP.NET (version 4.0), ASP.NET MVC 3, Razor. | LINQ to SQL, some raw SQL Server | HAProxy (for load balancing), Bacula(for backup), Redis(caching layer) |
Disqus | jQuery,EasyXDM, Sammy, Flot, Raphaël, JSHint | Python scripts, Django, Celery, South | PostgreSQL, memcached | HAProxy + heartbeat (Load balancing) |
In Short..
Conclusion
The current trends for front end development are mainly jQuery, Python, Scala. Though some companies use Microsoft technologies but, the percentage of such companies is very less. Although MySQL and Cassandra has been favorites databases but few are moving to MongoDB which is a NoSQL database. Back end of these high scaling sites run on variety of different technologies such as Django, python, RoR, Closure, C++, Java, Scala etc.
I’ve written this post to give insights about which technology combinations are preferred by websites with high user base, you might want to consider these points while choosing platforms and programming languages for your start-up.
Like this article? or have some thing to say? Comment down your opinions.
http://www.tutkiun.com/2011/07/web-technology-stack-analysis.html