Dissertação

{en_GB=Adopting Microservices - Migrating a HR tool from a monolithic architecture } {} EVALUATED

{pt=Microserviços são estilo arquitetural que tem ganho muita popularidade recentemente. Um modo de desenhar aplicações web ou sistemas de uma forma modular, por composição de vários serviços independentes entre si, contrastando com o os estilos tradicionais que produzem um único monólito. Um número crescente de companhias tem adotado este estilo para dar melhor resposta a novos requisitos ou simplificar o processo de desenvolvimento. Embora os microserviços consigam resolver alguns problemas, introduzem também complexidade no contexto associado. O processo de migração está altamente relacionado com o contexto do monólito, o seu objetivo, processo de desenvolvimento e requisitos. Consequentemente, este é um processo que acaba por ser quase único para cada companhia, visto que as decisões tomadas devem ter os seus recursos e objetivos em vista. Por outro lado, há também problemas que são comuns a todos os processos de migração. Este segundo tipo de problemas são o foco deste trabalho. Exploramos esses desafios migrando uma aplicação que apresentava requisitos que motivavam esta mudança arquitetural. Adotar microserviços é uma questão de gerir 'trade-offs' enquanto se asseguram os nossos requisitos. Durante o processo, documentamos os problemas encontrados, discutimos opções a solução escolhida. Por fim, avaliamos o produto resultante usando métricas relacionadas com a qualidade de software de modo a perceber o impacto no produto., en=Microservices are fairly a recent trend, a new style to design web applications or systems. Building modular software composed by a set of highly decoupled services, contrasting with the traditional ways that produce one unique monolith. An increasing number of companies have been adopting microservices so they can respond to new requirements or simply to make the process of development easier and smoother for everyone involved. However, microservices are a double-edged sword, while they can solve some problems they also introduce complexity in the context. The migration process is highly attached with the context of the monolith, its purpose, development process and requirements. Thus, this process is almost unique for each company, as they should take the decisions that best fit their resources and goals. On the other hand, there are problems that are common to almost every migration process despite the context. This second type of problems are the ones we aimed to address in this work. We do this by performing a migration ourselves on an application that presents the requirements for such change. Adopting microservices is about managing trade-offs while assuring that we meet our requirements. During the process, we document problems encountered while arguing about options and our solution. Furthermore, we evaluate resulting product using well defined metrics on software quality attributes so that we can understand the impact of the migration on the product.}
{pt=Microserviços, Migração, Monólito, Arquitetura Orientada a Serviços, Computação em Nuvem, en=Microservices, Migration, Monolith, Service Oriented Architecture, Cloud Computing}

Outubro 30, 2018, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

José Alberto Rodrigues Pereira Sardinha

Departamento de Engenharia Informática (DEI)

Professor Auxiliar