Please use this identifier to cite or link to this item: http://hdl.handle.net/20.500.11960/2474
Title: Modernização de arquitectura monolítica numa arquitectura de micro-serviços
Authors: Cruz, António Miguel
Moreira, Pedro Miguel
Barros, Nuno Amaro Beito
Keywords: Pagamentos
Monólito
Microserviços
Spring
Hibernate
Java
Kafka
Arquitectura de sistemas
Payments
Monolith
Microservices
System architecture
Issue Date: 28-Feb-2020
Abstract: O desenvolvimento de software em arquitectura monolítica é tipicamente o primeiro passo aquando do desenvolvimento de uma prova de conceito, devido à sua rapidez de implementação e consequente reduzido time-to-market. Actualmente, com a conjuntura de mercado existente e consequente mutação de mercados, tendências e ideias, opta-se frequentemente por uma solução inicial monolítica, efectuando compromissos técnicos com vista a uma rápida adopção de determinada plataforma, produto ou serviço de informática que esteja em desenvolvimento. No entanto, passada a prova inicial do conceito, é constatado frequentemente que o projecto desenvolvido numa arquitectura monolítica assume dimensões cuja natureza o tornam difícil de manter, escalar e estender. Este foi o caso do JumiaPay, que, após uma solução monolítica inicial, se depara agora com este problema e, com vista a maior escalabilidade e manutenibilidade, adoptou uma abordagem para dividir o seu monólito em micro-serviços e, de igual modo, na tentativa de corrigir algumas decisões tomadas que são menos eficientes, efectuadas ao longo do tempo, que foram fruto das várias influências, de natureza humana, técnica ou económica. Este Relatório de Mestrado trata dessa abordagem de reestruturação do JumiaPay numa arquitetura distribuída baseada em micro-serviços. Foi conseguida a migração da parte do sistema que está responsável pelas integrações com os parceiros, pois foi identificada como a parte que iria escalar mais rapidamente. Neste caso, foi imperativo identificar os pontos comuns entre todas as integrações para que fosse possível integrá-las com o restante do sistema. Esta tarefa revelou-se complexa devido às diferenças nos fluxos entre os parceiros. A separação deste código responsável pela integração com os parceiros permitiu-nos uma separação mais clara de responsabilidades, podendo facilmente aumentar escalabilidade quando necessário e consequentemente, a fiabilidade.
Developing a software product using a monolithic architecture is typically the first step for the creation of a proof of concept, due to its reduced implementation time and consequently its reduced time to market. Currently, with the existing market tendencies and constant mutation and shifting of tendencies and ideas, frequently it is defined to start with a monolithic solution, creating technical compromises with the final goal of a specific platform, product or informatic service that’s under development. However, after the initial proof of concept it is often noted that the aforementioned project that was originally developed using a monolithic architecture is very difficult to maintain, scale and extend. This was the case of JumiaPay that after an initial monolithic solution now faces these problems, and with the goal of increasing scalability and maintainability adopted an approach to attempt the division of its monolith into microservices, and at the same time change some less-efficient decisions taken throughout time, caused by technical, human or economic factors. This master’s report demonstrates the restructuring approach of JumiaPay towards a microservice oriented distributed architecture. It was possible to migrate part of the current system that’s responsible for the payment service provider integrations, as it was identified as the component with the most urgent need for scalability. It was imperative to identify the common points within all the existing integrations so that it would be possible to integrate with the current system. This task was complex due to the different flows of the payment service provider partners. The separation of this code responsible for the integrations allowed us to achieve a clearer separation of responsibilities, allowing us to easily increase scalability when required, and consequently its reliability.
Description: Mestrado em Engenharia Informática na Escola Superior de Tecnologia e Gestão do Instituto Politécnico de Viana do Castelo
URI: http://hdl.handle.net/20.500.11960/2474
Appears in Collections:ESTG - Dissertações de mestrado

Files in This Item:
File Description SizeFormat 
Nuno_Barros.pdf
  Until 2025-02-28
2.29 MBAdobe PDFView/Open Request a copy


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.