Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures

Large Internet companies like Amazon, Netflix, and LinkedIn are using the microservice architecture pattern to deploy large applications in the cloud as a set of small services that can be independently developed, tested, deployed, scaled, operated, and upgraded. However, aside from gaining agility, independent development, and scalability, how microservices affect the infrastructure costs is a major evaluation topic for companies adopting this pattern. This paper presents a cost comparison of a web application developed and deployed using the same scalable scenarios with three different approaches: 1) a monolithic architecture, 2) a microservice architecture operated by the cloud customer, and 3) a microservice architecture operated by the cloud provider. Test results show that microservices can help reduce infrastructure costs in comparison with standard monolithic architectures. Moreover, the use of services specifically designed to deploy and scale microservices, such as AWS Lambda, reduces infrastructure costs by 70% or more, and unlike microservices operated by cloud customers, these specialized services help to guarantee the same performance and response times as the number of users increases. Lastly, we also describe the challenges we faced while implementing and deploying microservice applications, and include a discussion on how to replicate the results on other cloud providers.

[1]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[2]  Paolo Traverso,et al.  Service-Oriented Computing: State of the Art and Research Challenges , 2007, Computer.

[3]  Rajkumar Buyya Cloud computing: The next revolution in information technology , 2010, 2010 First International Conference On Parallel, Distributed and Grid Computing (PDGC 2010).

[4]  Rebecca Steinert,et al.  Roles of DevOps tools in an automated, dynamic service creation architecture , 2015, 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM).

[5]  Stefan Tilkov The Modern Cloud-Based Platform , 2015, IEEE Softw..

[6]  Peter Sawyer,et al.  Evolving Existing Systems to Service-Oriented Architectures: Perspective and Challenges , 2007, IEEE International Conference on Web Services (ICWS 2007).

[7]  Ashish Jain,et al.  Enterprise service oriented architectures - concepts, challenges, recommendations , 2006 .

[8]  Paul Clements,et al.  Software Architecture in Practice: Addison-Wesley , 1998 .

[9]  Josh Juneau Building RESTful Web Services , 2013 .

[10]  Peter Vosshall Web Scale Computing: The Power of Infrastructure as a Service , 2008, ICSOC.

[11]  John Hunt A Beginner's Guide to Scala, Object Orientation and Functional Programming , 2018, Springer International Publishing.

[12]  Dan Rahmel Testing a Site with ApacheBench, JMeter, and Selenium , 2013 .

[13]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[14]  Fernando Doglio Pro REST API Development with Node.js , 2015, Apress.

[15]  Thomas Kude,et al.  The Impact of Software-as-a-Service on Software Ecosystems , 2013, ICSOB.

[16]  Steve Vinoski REST Eye for the SOA Guy , 2007, IEEE Internet Computing.

[17]  Xiang Zhao-zheng,et al.  Understanding Service-Oriented Architecture , 2007 .

[18]  Tiziana Margaria,et al.  Software Business. From Physical Products to Software Services and Solutions , 2013, Lecture Notes in Business Information Processing.

[19]  Fernando Doglio Node.js and REST , 2015 .

[20]  Torsten Hoefler,et al.  Design and Evaluation of Nonblocking Collective I/O Operations , 2011, EuroMPI.

[21]  Soo Dong Kim,et al.  Practical Methods for Adapting Services Using Enterprise Service Bus , 2007, ICWE.

[22]  Daniel Beimborn,et al.  Platform as a Service (PaaS) , 2011, Bus. Inf. Syst. Eng..

[23]  G. G. Meyer,et al.  Lecture notes in business information processing , 2009 .