[en] With the generalization of the mobile devices, personal computers and Internet, a wide variety of applications which ease some of our daily tasks have appeared. With this in mind, newly created companies have emerged focusing only on the e-retail market. The main objective of this project consists on learning and getting familiar with the new technologies and techniques that are used for the implemen- tation of cloud systems. In order to achieve it, the architecture of an online shop has been designed following a microservice pattern keeping a separation of concerns and the SOLID principles. The ReactJS and Bootstrap 4 libraries have been selected to develop the frontend. Also, the Redux library has been used to complement it and maintain a global state. On the other hand, Java 8 with the Spring framework have been chosen to develop the backend. Moreover, the Spring Cloud Netflix libraries have been used to configure the microservice environment. Finally, TravisCI has been used to design a continuous inte- gration process which monitors the deployment of the new funcionalities included in the system on a production environment composed by Heroku and GitHub Pages services. Also, features of a microservice architecture such as Service Discovery and API Gateway have been investigated, and reactive functionalities and NoSQL patterns have been used with the help of Project Reactor and MongoDB. This project shows a functional and successful implementation of an online shop using a microservice architecture, which traditionally would have been created following a monolith design.

[es] Con la generalización de los dispositivos móviles, ordenadores y el Internet, ha aparecido un abanico de aplicaciones que nos facilitan algunas tareas de nuestra vida diaria. En este sentido, se han creado muchas empresas que se dedican exclusivamente a la venta online de productos. El objetivo principal de este proyecto es aprender y familiarizarse con las nuevas tecnologías y técnicas que se usan para la implementación de sistemas a la nube. Para conseguirlo, se ha diseñado la arquitectura de una tienda online siguiendo una estructura de microservicios manteniendo una separación de responsabilidades y los principios SOLID. Para el desarrollo del frontend se ha escogido las librerías ReactJS y Bootstrap 4. También, se ha utilizado la librería Redux como complemento de ReactJS para mantener un estado global. Para el backend, se ha preferido utilizar Java 8 como base y lo framework Spring. Además, se ha hecho uso de las librerías de Spring Cloud Netflix para configurar la en torno a microservicios. Por otro lado, se ha diseñado un proceso de integración continua utilizando TravisCI que monitoriza el despliegue de las nuevas funcionalidades del sistema a uno en torno a producción basado en servicios de Heroku y Github Pages. También, se ha podido investigar sobre características relacionadas con la arquitectura de microservicios como el servicio de descubrimiento de microservicios y el APIO Gateway, y desarrollar funcionalidades utilizando librerías reactivas cómo Project Reactor y bases de datos NoSQL como MongoDB. Este proyecto presenta una implementación funcional y satisfactoria de una tienda online, que tradicionalmente se habría creado siguiendo un diseño en monolit, utilizando una arquitectura de microservicios.