[ca] Amb la generalització dels dispositius mòbils, ordinadors i l'Internet, ha aparegut un ventall d'aplicacions que ens faciliten algunes tasques de la nostra vida diària. En aquest sentit, s'han creat moltes empreses que es dediquen exclusivament a la venta online de productes. L'objectiu principal d'aquest projecte és aprendre i familiaritzar-se amb les noves tecnologies i tècniques que s'usen per a la implementació de sistemes al núvol. Per aconseguir-ho, s'ha dissenyat l'arquitectura d'una botiga online seguint una estructura de microserveis mantenint una separació de responsabilitats i els principis SOLID. Per al desenvolupament del frontend s'ha escollit les llibreries ReactJS i Bootstrap 4. També, s'ha utilitzat la llibreria Redux com a complement de ReactJS per a mantenir un estat global. Per al backend, s'ha preferit utilitzar Java 8 com a base i el framework Spring. A més, s'ha fet ús de les llibreries de Spring Cloud Netflix per tal de configurar l'entorn de microserveis. D'altra banda, s'ha dissenyat un procés d'integració contínua utilitzant TravisCI que monitoritza el desplegament de les noves funcionalitats del sistema a un entorn de producció basat en serveis de Heroku i Github Pages. També, s'ha pogut investigar sobre característiques relacionades amb l'arquitectura de microserveis com el servei de descobriment de microserveis i l'API Gateway, i desenvolupar funcionalitats utilitzant llibreries reactives com Project Reactor i bases de dades NoSQL com MongoDB. Aquest projecte presenta una implementació funcional i satisfactòria d'una botiga online, que tradicionalment s'hauria creat seguint un disseny en monolit, utilitzant una arquitectura de microserveis.

[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.