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

Springer Science and Business Media LLC - Tập 11 - Trang 233-247 - 2017
Mario Villamizar1, Oscar Garcés1, Lina Ochoa1, Harold Castro1, Lorena Salamanca2, Mauricio Verano2, Rubby Casallas2, Santiago Gil3, Carlos Valencia3, Angee Zambrano3, Mery Lang3
1COMIT Research Group, Systems and Computing Engineering Department, Universidad de los Andes, Bogotá D.C., Colombia
2TICSw Research Group, Systems and Computing Engineering Department, Universidad de los Andes, Bogotá D.C., Colombia
3Project Management Department, Mapeo, Bogotá D.C., Colombia

Tóm tắt

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.

Tài liệu tham khảo

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