# name
Introducció pràctica al desenvolupament de microserveis: boilerplates multillenguatge i desplegament amb Docker

# metadata.dc.description[].value
Treballs Finals de Grau d'Enginyeria Informàtica, Facultat de Matemàtiques, Universitat de Barcelona, Any: 2025, Director: Eloi Puertas i Prats

# metadata.dc.description.abstract[].value
[ca] Aquest Treball de Fi de Grau té com a objectiu facilitar l’aprenentatge de microserveis i DevOps en entorns educatius. Per fer-ho, s’ha desenvolupat un conjunt de boilerplates amb tecnologies àmpliament utilitzades com React, Express (Node.js) i Spring Boot (Java). Aquestes plantilles permeten construir aplicacions distribuïdes amb una arquitectura clara, modular i escalable, adaptada a necessitats reals.
Cada microservei ha estat contenidoritzat amb Docker i s’ha orquestrat l’execució conjunta mitjançant Docker Compose. També s’ha dut a terme una anàlisi comparativa de plataformes de desplegament gratuïtes o accessibles, com Railway, Netlify, Azure i AWS, avaluant criteris com la facilitat d’ús, la integració amb GitHub, la gestió d’entorns i la disponibilitat per a estudiants.
S’ha realitzat un cas pràctic desplegant els serveis a Railway, amb integració opcional de GitHub Actions per automatitzar proves i compilació. Durant aquest procés s’han documentat algunes dificultats com la gestió de variables d’entorn amb Vite, que no permet accés en temps d’execució i obliga a definir valors en temps de construcció. Aquesta limitació s’ha solucionat utilitzant arguments de build configurables directament des de la plataforma Railway.
El sistema desplegat ha demostrat un comportament estable i reproduïble, amb comunicació correcta entre components i facilitat d’adaptació a diferents entorns. L’estructura modular, l’ús de contenidors i la definició declarativa dels serveis afavoreixen una experiència educativa realista i alineada amb les pràctiques professionals actuals.
En resum, el projecte valida l’efectivitat d’aquesta aproximació com a eina educativa i de prototipatge. Les plantilles desenvolupades poden ser utilitzades per altres estudiants o professors interessats a introduir pràctiques modernes en entorns acadèmics. El treball es tanca amb una valoració crítica del procés, i amb propostes per millorar i ampliar el projecte en el futur.

[es] Este Trabajo de Fin de Grado tiene como objetivo facilitar el aprendizaje de microservicios y DevOps en entornos educativos. Para ello, se ha desarrollado un conjunto de boilerplates utilizando tecnologías ampliamente conocidas como React, Express (Node.js) y Spring Boot (Java). Estas plantillas permiten implementar aplicaciones distribuidas de manera estructurada, respetando patrones de arquitectura modernos, y favoreciendo la modularidad, la escalabilidad y la separación de responsabilidades.
Cada microservicio ha sido contenidorizado utilizando Docker, y se ha orquestado el conjunto mediante Docker Compose, herramienta que permite la ejecución local coordinada. Además, el proyecto analiza y compara diferentes plataformas de despliegue gratuitas o de bajo coste, como Railway, Netlify, Azure o AWS, considerando aspectos como facilidad de uso, integración con GitHub, automatización del flujo de trabajo y accesibilidad para estudiantes.
Se ha implementado un caso práctico de despliegue de microservicios en Railway, utilizando GitHub Actions como integración opcional. A lo largo del proceso, se han documentado diversas dificultades, como la gestión de variables de entorno en aplicaciones frontend con Vite, que requiere argumentos de compilación en lugar de variables runtime. Esta particularidad ha sido resuelta mediante la configuración de build-time en la pròpia plataforma Railway, lo cual permite mantener el control sobre los entornos de despliegue sin perder flexibilidad.
El sistema ha demostrado ser funcional, replicable y fácilmente adaptable, permitiendo la interacción fluida entre el frontend y los servicios backend. Además, el uso de buenas prácticas DevOps como la contenerización, la definición declarativa de servicios y la documentación integrada con OpenAPI refuerza el valor formativo del projecte.
En conjunto, se concluye que este enfoque ofrece una vía realista y accesible para la enseñanza de DevOps y microservicios. Las herramientas utilizadas permiten a estudiantes adquirir competencias clave del mundo profesional, y las plantillas desarrolladas constituyen una base sólida para futuros proyectos educativos o prototipos de software distribuido. El trabajo finaliza con una reflexión crítica sobre las limitaciones encontradas y con propuestas de mejora y extensiones futuras.

[en] This Final Degree Project aims to facilitate the learning of DevOps practices and microservice architectures in educational environments. To achieve this, a set of multi-language boilerplates has been developed using popular technologies such as React, Express (Node.js), and Spring Boot (Java). These templates provide a structured and modular foundation for building scalable, distributed applications in real-world scenarios.
Each microservice is containerized using Docker and orchestrated locally through Docker Compose. Furthermore, the project analyzes and compares several free or low-cost deployment platforms including Railway, Netlify, Azure, and AWS, based on their ease of use, GitHub integration, support for CI/CD workflows, and suitability for students and beginners.
A practical use case was implemented, deploying the services to Railway with optional GitHub Actions integration. During this process, specific challenges were encountered, such as the handling of environment variables in Vite-based frontends, which require build-time configuration. This was resolved by using build arguments configurable directly within the Railway platform, allowing for controlled deployment environments without losing flexibility.
The deployed system demonstrated consistent and functional behavior, with correct communication across services and an intuitive setup process. Its modular architecture, container-based isolation, and declarative configuration make it a suitable starting point for learners and developers exploring modern software design.
In conclusion, this project demonstrates that it is possible to develop, deploy, and maintain microservice-based applications in a simple yet realistic way, making advanced concepts more accessible to students. The resources and templates developed here serve both as educational tools and as the basis for future extensions, and the final evaluation includes a critical analysis and improvement recommendations for further development.

# metadata.dc.rights[].value
memòria: cc by-nc-nd (c) Maria Pérez i Pullès, 2025

# metadata.dc.rights[].value
codi: GPL (c) Maria Pérez i Pullès, 2025

# metadata.dc.source[].value
Treballs Finals de Grau (TFG) - Enginyeria Informàtica

# metadata.dc.title[].value
Introducció pràctica al desenvolupament de microserveis: boilerplates multillenguatge i desplegament amb Docker