Abstract
In the past decade, the performance of web services has been enhanced via scale-up and scale-out methods, which increase available system resources, and also by improvements in database performance. As cloud technology continues to rise in popularity, storage and compute services are reaching unprecedented scale, with great scrutiny being turned to the performance tradeoffs of the web application server stacks. In particular, the MEAN (MongoDB, Express.js, AngularJS, and Node.js) web server stack is increasingly popular in the computing industry, yet has largely escaped the focus of formal benchmarking efforts. In this work, we compare MEAN to its more entrenched competitor, the LAMP (Linux, Apache, MySQL, PHP) web server stack, the most widely distributed web platform in production. We herein describe the design, execution, and results of a number of benchmark tests constructed and executed to facilitate direct comparison between Node.js and Apache/PHP, the web server applications of these stacks. We investigate each web server’s ability to handle heavy static file service, remote database interaction, and common compute-bound tasks. Analysis of our results indicates that Node.js outperforms the Apache/PHP by a considerable margin in all single-application web service scenarios, and performs as well as Apache/PHP under heterogeneous server workloads. We extend our understanding of the MEAN stack’s performance potential by exploring the performance and memory tradeoffs of Angularizing the Mongo-Express web application, a database administration dashboard for MongoDB. We find that porting Mongo-Express to MEAN’s AngularJS provides up to a 4x improvement in document read bandwidth and up to almost 2.2x improvement in collection read bandwidth, at a cost of roughly double the client memory footprint.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Apache Software Foundation: ab – Apache HTTP server benchmarking tool (2016). http://httpd.apache.org/docs/2.2/programs/ab.html
Appuswamy, R., Gkantsidis, C., Narayanan, D., Hodson, O., Rowstron, A.: Scale-up vs scale-out for Hadoop: time to rethink? In: 4th Annual Symposium on Cloud Computing. ACM (2013)
Chaniotis, I., Kyriakou, K., Tselikas, N.: Is Node.js a viable option for building modern web applications? A performance study. Computing 97(10), 1023–1044 (2015)
Charland, A., Leroux, B.: Mobile application development: web vs. native. Commun. ACM 54(5), 49–53 (2011)
Chrome: Chrome DevTools (2017). https://developers.google.com/web/tools/chrome-devtools/
Economou, D., Rivoire, S., Kozyrakis, C., Ranganathan, P.: Full-system power analysis and modeling for server environments. In: Proceedings of the International Symposium on Computer Architecture (ISCA). IEEE (2006)
Ferdman, M., Adileh, A., Kocberber, O., Volos, S., Alisafaee, M., Jevdjic, D., Kaynak, C., Popescu, A.D., Ailamaki, A., Falsafi, B.: Clearing the clouds: a study of emerging scale-out workloads on modern hardware. In: ACM SIGPLAN Notices, vol. 47, no. 4, pp. 37–38. ACM, March 2012
Github: Projects, Applications, and Companies Using Node (2016). https://github.com/nodejs/node/wiki/Projects,-Applications,-and-Companies-Using-Node
Github: Who uses Gulp? Issue #540 (2016). https://github.com/gulpjs/gulp/issues/540/
Gulp: Gulp.js (2016). http://gulpjs.com/
Haddad, I.: Open-source web servers: performance on a carrier-class Linux platform. Linux J. 2001(91), 1 (2001)
Kitzes, S., Kaplan, A.: Stack wars: the node awakens. In: Proceedings of the 19th International Conference on Enterprise Information Systems (ICEIS), INSTICC (2017)
Jina, V.: Testacular – Spectacular Test Runner for JavaScript (2012). https://testing.googleblog.com/2012/11/testacular-spectacular-test-runner-for.html
Joyent: Node.js at PayPal (2014). https://www.joyent.com/blog/node-js-on-the-road-sf-node-js-at-paypal/
Libuv: Design overview – libuv API documentation (2016). http://docs.libuv.org/en/v1.x/design.html
McKeachie, C.: UI-Router: Why many developers don’t use AngularJS’s built-in router (2014). http://www.funnyant.com/angularjs-ui-router/
MEAN.JS: MEAN.JS – Full-Stack JavaScript Using MongoDB, Express, AngularJS, and Node.js (2014). http://meanjs.org
Menasce, D.A.: Web server software architectures. IEEE Internet Comput. 7(6), 78–81 (2003)
Mongo-Express: Web-based MongoDB admin interface, written with Node.js and express (2012–2016). https://github.com/mongo-express/mongo-express
Nahum, E., Barzilai, T., Kandlur, D.D.: Performance issues in WWW servers. IEEE/ACM Trans. Netw. (TON) 10(1), 2–11 (2002)
Netcraft: September 2015 Web Server Survey (2015). http://news.netcraft.com/archives/2015/09/16/september-2015-web-server-survey.html
PM2: PM2 – Advanced Node.js process manager (2016). http://pm2.keymetrics.io/
Pokorny, J.: NoSQL databases: a step to database scalability in web environment. Int. J. Web Inf. Syst. 9(1), 69–82 (2013)
Protractor: Protractor – end-to-end testing for AngularJS (2016). http://www.protractortest.org/
Ratanaworabhan, P., Livshits, B., Zorn, B.G.: JSMeter: comparing the behavior of JavaScript benchmarks with real web applications. WebApps 10, 3 (2010)
SPECjbb: SPECjbb®2015 (2015). https://www.spec.org/jbb2015/
SPECweb: SPECweb2009 (2009). https://www.spec.org/web2009/
Tilkov, S., Vinoski, S.: Node.js: using JavaScript to build high-performance network programs. IEEE Internet Comput. 14(6), 80–83 (2010)
Transaction Processing Performance Council. About the TPC (2016). http://www.tpc.org/information/about/abouttpc.asp
Welke, R., Hirschheeim, R., Schwarz, A.: Service oriented architecture maturity. IEEE Comput. 47(2) (2011). IEEE
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this paper
Cite this paper
Kitzes, S., DeMauro, E., Kaplan, A. (2018). Toward an Understanding of the Tradeoffs of Adopting the MEAN Web Server Stack. In: Hammoudi, S., Śmiałek, M., Camp, O., Filipe, J. (eds) Enterprise Information Systems. ICEIS 2017. Lecture Notes in Business Information Processing, vol 321. Springer, Cham. https://doi.org/10.1007/978-3-319-93375-7_26
Download citation
DOI: https://doi.org/10.1007/978-3-319-93375-7_26
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-93374-0
Online ISBN: 978-3-319-93375-7
eBook Packages: Computer ScienceComputer Science (R0)