Professional Documents
Culture Documents
Abstract—Cloud computing provides new opportunities to services; platform as a service; PaaS; IaaS; continuous delivery;
deploy scalable application in an efficient way, allowing software engineering; software architecture; microservice
enterprise applications to dynamically adjust their computing architecture;
resources on demand. In this paper we analyze and test the
microservice architecture pattern, used during the last years by I. INTRODUCTION
large Internet companies like Amazon, Netflix and LinkedIn to Cloud computing [1] is a model that allows companies to
deploy large applications in the cloud as a set of small services deploy enterprise applications that (if they have been well
that can be developed, tested, deployed, scaled, operated and designed) can scale their computing resources on demand.
upgraded independently, allowing these companies to gain
Companies can deploy their own applications on Infrastructure
agility, reduce complexity and scale their applications in the
cloud in a more efficient way. We present a case study where an
as a Service (IaaS) [2] or Platform as a Service (PaaS) [3]
enterprise application was developed and deployed in the cloud solutions or they can buy ready to use applications under the
using a monolithic approach and a microservice architecture Software as a Services (SaaS) [4] model. When companies
using the Play web framework. We show the results of deploy their own applications on IaaS or PaaS solutions they
performance tests executed on both applications, and we describe face different challenges in order to take advantage of the cloud
the benefits and challenges that existing enterprises can get and computing capabilities such as auto scaling, continuous
face when they implement microservices in their applications. delivery, hot deployments, high availability, dynamic
monitoring, among others. Most companies that move an
Abstract—La computación en nube ofrece nuevas application to an IaaS/PaaS solution typically tried to move a
oportunidades para desplegar aplicaciones escalables de forma monolithic application. In this context a monolithic application
eficiente, permitiendo que las aplicaciones empresariales puedan means an application with a single large codebase/repository
ajustar dinámicamente sus recursos de cómputo bajo demanda. that offer tens or hundreds of services using different interfaces
En este artículo analizamos y probamos el patrón de such as HTML pages, Web services or/and REST services.
arquitectura de micro servicios, utilizado durante los últimos
años por grandes empresas de Internet como Amazon, Netflix y One of the main reasons companies must move applications
LinkedIn para desplegar grandes aplicaciones en la nube como to IaaS/PaaS solutions is to gain efficiency in their operations
un conjunto de pequeños servicios que se pueden desarrollar, trying to be able to scale those applications on-demand and
probar, desplegar, escalar, operar y actualizar de forma supporting peak periods. The typical approach is to deploy in
independiente, permitiendo que estas empresas logren ganar the cloud three (presentation, business and persistence) tiers
agilidad, reducir complejidad y escalar sus aplicaciones en la web applications developed with different technological stacks
nube de forma más eficiente. Se presenta un caso de estudio en el such as JEE, .NET or PHP. Nevertheless, this approach faces
cuál una aplicación empresarial fue desarrollada y desplegada en different challenges [5] because many technological stacks and
la nube utilizando un enfoque monolítico y una arquitectura de applications servers were not designed keeping into account
micro servicios utilizando el framework de desarrollo web Play. the ability to add/remove servers on demand [6].
Se muestran los resultados de las pruebas de rendimiento
realizadas a ambas aplicaciones, y se describen los beneficios y Scaling monolithic applications is a challenge because they
retos que las empresas existentes deben enfrentar para commonly offer a lot of services, some of them more popular
implementar arquitecturas basadas en micro servicios en sus than others. If popular services need to be scaled because they
aplicaciones. are highly demanded, the whole set of services also will be
scaled at the same time, which generate that non popular
Keywords—cloud computing; microservices; service oriented
architectures; SOA; scalable applications; infrastructure as a
This paper is the result of a research project sponsored by Colciencias
and Mapeo, a Colombian software company.