Abstract
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.
Similar content being viewed by others
References
Buyya R (2010) Cloud computing: the next revolution in information technology. In: 2010 1st international conference on parallel distributed and grid computing (PDGC), pp 2–3
Vosshall P (2008) Web scale computing: the power of infrastructure as a service. In: Bouguettaya A, Krueger I, Margaria T (eds) Service-oriented computing ICSOC 2008. Lecture notes in computer science, vol 5364. Springer, Heidelberg, pp 1–1
Beimborn D, Miletzki T, Wenzel S (2011) Platform as a service (PaaS). Bus Inf Syst Eng 3(6):381–384
Schtz S, Kude T, Popp K (2013) The impact of software-as-a-service on software ecosystems. In: Herzwurm G, Margaria T (eds) Software business. From physical products to software services and solutions. Lecture notes in business information processing, vol 150. Springer, Berlin, pp 130–140
Lewis J, Fowler M (2014) Microservices. http://martinfowler.com/articles/microservices.html. Accessed 23 Apr 2017
Amazon Web Services (2015) AWS Lambda. https://aws.amazon.com/lambda/. Accessed 23 Apr 2017
McGovern J, Sims O, Jain A, Little M (2006) Understanding service-oriented architecture. In: Enterprise service oriented architectures. Springer Netherlands, pp 1–48. doi:10.1007/1-4020-3705-8_1
La H, Bae J, Chang S, Kim S (2007) Practical methods for adapting services using enterprise service bus. In: Baresi L, Fraternali P, Houben G-J (eds) Web engineering. Lecture notes in computer science, vol 4607. Springer, Berlin, pp 53–58
Papazoglou M, Traverso P, Dustdar S, Leymann F (2007) Service-oriented computing: state of the art and research challenges. Computer 40:38–45
Hutchinson J, Kotonya G, Walkerdine J, Sawyer P, Dobson G, Onditi V (2007) Evolving existing systems to service-oriented architectures: perspective and challenges. In: IEEE international conference on web services 2007, ICWS 2007, pp 896–903
GIGAOM (2011) The biggest thing Amazon got right: the platform. https://gigaom.com/2011/10/12/419-the-biggest-thing-amazon-got-right-the-platform/. Accessed 23 Apr 2017
Nginx (2015) Adopting microservices at Netflix: lessons for architectural design. http://nginx.com/blog/microservices-at-netflix-architectural-best-practices/. Accessed 23 Apr 2017
InfoQ (2014) Scaling Gilt: from monolithic ruby application to distributed scala micro-services architecture. http://www.infoq.com/presentations/scale-gilt. Accessed 23 Apr 2017
InfoQ (2015) From a monolith to microservices + REST: the evolution of LinkedIn’s service architecture. http://www.infoq.com/presentations/linkedin-microservices-urn. Accessed 23 Apr 2017
SoundCloud (2014) Building products at SoundCloud—Part I: Dealing with the monolith. https://developers.soundcloud.com/blog/building-products-at-soundcloud-part-1-dealing-with-the-monolith. Accessed 23 Apr 2017
Thones J (2015) Microservices. IEEE Softw 32:116
InfoQ (2014) Microservices and SOA. http://www.infoq.com/news/2014/03/microservices-soa. Accessed 23 Apr 2017
Oracle (2015) Microservices and SOA. http://www.oracle.com/technetwork/issue-archive/2015/15-mar/o25architect-2458702.html. Accessed 23 Apr 2017
TechTarget (2015) How microservices bring agility to SOA. http://searchcloudapplications.techtarget.com/feature/How-microservices-bring-agility-to-SOA. Accessed 23 Apr 2017
Microservices (2014) Pattern: microservices architecture. http://microservices.io/patterns/microservices.html. Accessed 23 Apr 2017
Vinoski S (2007) REST eye for the SOA guy. IEEE Internet Computing 11:82–84
Nemeth F, Steinert R, Kreuger P, Skoldstrom P (2015) Roles of DevOps tools in an automated, dynamic service creation architecture. In: 2015 IFIP/IEEE international symposium on integrated network management (IM), pp 1153–1154
Bass L, Clements P, Kazman R (2012) Software Architecture in Practice, 3rd edn. Addison-Wesley Professional, Boston
Hunt J (ed) (2014) Play framework. In: A beginner’s guide to scala, object orientation and functional programming. Springer, Berlin, pp 413–428
Juneau J (ed) (2013) Building RESTful web services. In: Introducing Java EE 7. Apress, New York, pp 113–130
Venkatesan V, Chaarawi M, Gabriel E, Hoefler T (2011) Design and evaluation of nonblocking collective I/O operations. In: Cotronis Y, Danalis A, Nikolopoulos D, Dongarra J (eds) Recent advances in the message passing interface. Lecture notes in computer science, vol 6960. Springer, Berlin, pp 90–98
Doglio F (ed) (2015) Node.js and REST. In: Pro REST API development with Node.js. Apress, New York, pp 47–63
Rahmel D (ed) (2013) Testing a site with ApacheBench, JMeter, and Selenium. In: Advanced Joomla!. Apress, New York, pp 211–247
InfoWorld (2015) Jaws takes a bite out of AWS Lambda app deployment. http://www.infoworld.com/article/2990795/cloud-computing/jaws-takes-a-bite-out-of-aws-lambda-app-deployment.html. Accessed 23 Apr 2017
Google (2016) Google Cloud Functions. https://cloud.google.com/functions/. Accessed 23 Apr 2017
Microsoft (2016) Azure Functions. https://azure.microsoft.com/en-us/services/functions/. Accessed 23 Apr 2017
IBM (2016) IBM Bluemix OpenWhisk. http://www.ibm.com/cloud-computing/bluemix/openwhisk. Accessed 23 Apr 2017
Serverless (2016) Serverless Framework. https://serverless.com/. Accessed 23 Apr 2017
Author information
Authors and Affiliations
Corresponding author
Additional information
This work is the result of a research project partially funded by Colciencias under contract 0569-2013 “Construcción de una línea de productos de aplicaciones de crédito/cartera que serán ofrecidas a través de un Marketplace en forma SaaS para el sector no bancarizado (PYMES) de Colombia” COD. 1204-562-37152.
Rights and permissions
About this article
Cite this article
Villamizar, M., Garcés, O., Ochoa, L. et al. Cost comparison of running web applications in the cloud using monolithic, microservice, and AWS Lambda architectures. SOCA 11, 233–247 (2017). https://doi.org/10.1007/s11761-017-0208-y
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11761-017-0208-y