Dissertação

{en_GB=A Complexity Metric for Microservices Architecture Migration} {} EVALUATED

{pt=Aplicações monolíticas costumam ser difíceis de implementar, atualizar, manter e entender. Os microserviços, por outro lado, têm as vantagens de serem independentemente desenvolvidos, testados, implementados, escalados e mais fáceis de alterar e manter. Esta tese está focada na migração de uma arquitetura monolítica para uma de microserviços. No nosso trabalho, abordamos duas novas questões de investigação: (1) Podemos definir o custo da decomposição em termos do esforço para decompor uma funcionalidade, implementada no monólito como uma transação ACID, em várias transações distribuídas? (2) O uso de medidas de similaridade que considerem informações sobre leituras e escritas e as sequências de acessos proporcionará uma melhor decomposição? Para responder à nossa primeira pergunta de investigação, propomos uma métrica de complexidade para cada funcionalidade a fim de fornecer uma melhor visão do custo da decomposição. Em relação à nossa segunda questão de investigação, propomos a experimentação com quatro medidas de similaridade, cada uma baseada em um tipo diferente de informação recolhida do monólito. Avaliamos a nossa abordagem com três sistemas monolíticos e comparamos a nossa métrica de complexidade com duas métricas de coesão e acoplamento da indústria. Avaliamos as nossas medidas de similaridade em relação à complexidade da decomposição obtida. Conseguimos correlacionar corretamente a métrica de complexidade com outras métricas de coesão e acoplamento. Concluímos que nenhuma combinação única de medidas de similaridade supera a outra. Descobrimos que a ferramenta desenvolvida pode ajudar na abordagem de migração incremental para microserviços, o que é defendido pelos especialistas da indústria., en=Monolithic applications tend to typically be difficult to deploy, maintain and understand. Microservices, on the other hand, have the advantages of being independently developed, tested, deployed, scaled and, more importantly, easier to change and maintain. This thesis is focused on the migration from a monolithic to a microservices architecture. We address two new research questions: (1) Can we define the cost of decomposition in terms of the effort to decompose a functionality, implemented in the monolith as an ACID transaction, into several distributed transactions? (2) Will the use of similarity measures that consider information about reads and writes and the sequences of accesses provide a better decomposition? To answer our first research question, we propose a complexity metric for each functionality in order to provide a better insight into the cost of the decomposition. Regarding our second research question, we propose the experimentation with four similarity measures, each based on a different type of information collected from the monolith. We evaluated our approach with three monolith systems and compared our complexity metric against two industry metrics of cohesion and coupling. We evaluated our similarity measures against the complexity of the decomposition obtained. We were able to correctly correlate the complexity metric with other metrics of cohesion and coupling. For the second research question, we concluded that no single combination of similarity measures outperforms the other. The developed tool can help on an incremental migration to microservices approach, which is actually defended by the industry experts.}
{pt=Microserviços, Aplicação monolítica, Contexto Transacional, Migração de Arquitetura, Teorema CAP., en=Microservices, Monolithic Application, Transactional Context, Architecture Migration, CAP Theorem.}

Novembro 29, 2019, 18:0

Orientação

ORIENTADOR

António Manuel Ferreira Rito da Silva

Departamento de Engenharia Informática (DEI)

Professor Associado