Publication
Conceção de arquitetura de Micro-Frontend
datacite.subject.fos | Engenharia e Tecnologia | pt_PT |
dc.contributor.advisor | Silva, Emanuel Fernando da Cunha | |
dc.contributor.author | Sousa, Pedro Miguel Costa | |
dc.date.accessioned | 2023-12-19T14:24:12Z | |
dc.date.available | 2024-11-07T01:31:09Z | |
dc.date.issued | 2023-11-07 | |
dc.description.abstract | Recentemente, 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.abstract | Recently, 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.tid | 203414390 | pt_PT |
dc.identifier.uri | http://hdl.handle.net/10400.22/24279 | |
dc.language.iso | por | pt_PT |
dc.subject | Micro-Frontend | pt_PT |
dc.subject | Migração | pt_PT |
dc.subject | Escalabilidade | pt_PT |
dc.subject | AngularJS | pt_PT |
dc.subject | Domain-Driven-Design | pt_PT |
dc.title | Conceção de arquitetura de Micro-Frontend | pt_PT |
dc.title.alternative | Architecture design of Micro-Frontend | pt_PT |
dc.type | master thesis | |
dspace.entity.type | Publication | |
rcaap.rights | openAccess | pt_PT |
rcaap.type | masterThesis | pt_PT |
thesis.degree.name | Engenharia Informática | pt_PT |