Repository logo
 
Publication

Conceção de arquitetura de Micro-Frontend

datacite.subject.fosEngenharia e Tecnologiapt_PT
dc.contributor.advisorSilva, Emanuel Fernando da Cunha
dc.contributor.authorSousa, Pedro Miguel Costa
dc.date.accessioned2023-12-19T14:24:12Z
dc.date.available2024-11-07T01:31:09Z
dc.date.issued2023-11-07
dc.description.abstractRecentemente, o mundo de desenvolvimento de software tem vindo a ser alvo de um crescente aumento de complexidade no que toca às aplicações desenvolvidas. O mercado das aplicações web tem vindo a crescer muito rapidamente tal como as exigências dos utilizadores por uma boa experiência de utilização. Neste contexto, as equipas de desenvolvimento de software começaram a sentir dificuldades em manter e escalar o software que desenvolviam dadas as maiores exigências dos utiliza dores finais. Habitualmente, as organizações arquitetavam as aplicações numa estrutura monolítica, pois numa primeira instância facilitava todos os processos de desenvolvimento e permitia entregar novas funcionalidades de forma rápida. Porém, com o passar do tempo o projeto tornava-se cada vez mais complexo e, por fim, a velocidade e produtividade de desenvolvimento acabava por cair de forma consistente. Deste modo, começaram os movimentos de divisão do software das aplicações em vários módulos. Em primeiro lugar, começou-se por dividir a parte de interface de utilizador, pela parte de computação e manipulação de dados e deu-se a separação de Frontend e Backend. Numa segunda instância, o próprio Backend começou a ser dividido, dando a origem às arquiteturas orientadas aos Microsserviços. Por fim, mais recentemente começou-se a aplicar a mesma lógica à camada do Frontend e assim nasceram as arquiteturas de Micro-Frontends. Estas divisões do software em diferentes módulos dá a oportunidade às equipas de separarem a complexidade de grandes aplicações em menores módulos com uma complexidade mais baixa, a até mesmo separar o desenvolvimento de cada módulo por diferentes equipas criando menor entropia dentro do processo de desenvolvimento da aplicação. Ainda assim, devido ao facto do conceito ser recente, a maioria das aplicações que beneficiariam desta arquitetura já foram desenvolvidas durante vários anos numa arquitetura monolítica e a sua migração integral para uma nova arquitetura não é exequível de uma só vez. Para mitigar este problema, é possível a aplicação de um padrão de software chamado Strangler Pattern que permite a migração gradual de um sistema, módulo a módulo, fazendo com que a migração seja mais gradual e suave, facilitando a resolução de possíveis problemas e possibilitando fazer esta migração em aplicações legacy com maior complexidade. Esta dissertação desenvolve a prova de conceito da migração de uma aplicação Frontend monolítica para uma arquitetura orientada a Micro-Frontends. É feito um estudo sobre as vantagens e desvantagens da migração, padrões comuns a serem usados e o planeamento da divisão do processo por etapas. A prova de conceito é desenvolvida usando a framework single-spa. A validação da solução é feita usando testes de desempenho e aceitação.pt_PT
dc.description.abstractRecently, the world of software development has seen a growing increase in the complexity of the applications developed. The web application market has been growing very rapidly, as have user demands for a good user experience. As a result, software development teams began to find it difficult to maintain and scale the software they were developing, given the greater demands of end users. Therefore, new software architectures and standards have been studied and presented to the community to solve these problems. Organisations used to architect applications in a monolithic structure, as this initially facili tated all development processes and allowed new features to be delivered quickly. However, as time went by, the project became more and more complex and, in the end, development speed and productivity fell consistently. This is how the division of the software of applications into various modules began. Firstly, the user interface part was split from the computing and data manipulation part and Frontend and Backend were separated. In a second instance, Backend itself began to be split up, giving rise to microservice-orientated architectures. Finally, more recently, the same logic began to be applied to the Frontend layer and thus the Micro-Frontends architectures were born. These divisions of the software into different modules give teams the opportunity to separate the complexity of large applications into smaller modules with lower complexity, and even separate the development of each module by different teams, creating less entropy within the application development process. Even so, because the concept is recent, most of the applications that would benefit from this architecture have already been developed for several years in a monolithic architecture and their full migration to a new architecture is not feasible in one go. To mitigate this problem, it is possible to apply a software pattern called Strangler Pattern that allows the gradual migration of a system, module by module, making the migration more gradual and smooth, facilitating the resolution of possible problems and making it possible to make this migration in legacy applications with greater complexity. This dissertation develops a proof of concept for the migration of a monolithic Frontend application to a Micro-Frontends orientated architecture. A study is made of the advantages and disadvantages of migration, common patterns to be used and the planning of the division of the process into stages. The proof of concept is developed using the framework single-spa. The solution is validated using performance and acceptance tests.pt_PT
dc.identifier.tid203414390pt_PT
dc.identifier.urihttp://hdl.handle.net/10400.22/24279
dc.language.isoporpt_PT
dc.subjectMicro-Frontendpt_PT
dc.subjectMigraçãopt_PT
dc.subjectEscalabilidadept_PT
dc.subjectAngularJSpt_PT
dc.subjectDomain-Driven-Designpt_PT
dc.titleConceção de arquitetura de Micro-Frontendpt_PT
dc.title.alternativeArchitecture design of Micro-Frontendpt_PT
dc.typemaster thesis
dspace.entity.typePublication
rcaap.rightsopenAccesspt_PT
rcaap.typemasterThesispt_PT
thesis.degree.nameEngenharia Informáticapt_PT

Files

Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
Tese_5114_v2.pdf
Size:
5.54 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.71 KB
Format:
Item-specific license agreed upon to submission
Description: