Name: | Description: | Size: | Format: | |
---|---|---|---|---|
10.23 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
Nos últimos anos, as necessidades de software têm vindo a aumentar e as aplicações web inegavelmente a ganhar terreno às aplicações desktop. Nestas aplicações, tem-se acentuado o nível de exigência quer em termos de experiência de utilização quer em termos de complexidade da lógica de negócio, o que levou a comunidade a unir esforços em prol de dar resposta a esta questão. A arquitetura vulgarmente usada, a monolítica, que outrora conferia uma visão geral do projeto a toda a equipa de desenvolvimento e assegurava um desenvolvimento e lançamento rápido de funcionalidades, deixou de ser capaz de suprir estas solicitações. Para mitigar o problema, as organizações têm procurado dividir os projetos de software em várias peças diferenciadas. Assim sendo, tornou-se prática comum organizar o software e até as equipas por capacidades técnicas, isto é, passou a reger-se por camadas horizontais, correspondentes ao backend e frontend das aplicações. No entanto, dado que estas camadas continuavam a ser desenvolvidas na íntegra por uma única equipa, o processo de desenvolvimento era moroso e com o tempo a qualidade do código decrescia e o acoplamento aumentava, o que tornou a manutenibilidade insustentável. O surgimento da arquitetura orientada a micro serviços, entrou em rutura com estas práticas, ao derrubar o backend monolítico, e atingiu uma popularidade de tal ordem, que abriu as portas para que o frontend monolítico seja desfeito, com o surgimento dos micro frontends. Este conceito emerge como uma abordagem distinta de organização do software e das equipas, que visa transpor os princípios da arquitetura baseada em micro serviços para o âmbito do frontend com o intuito de criar uma Single-Page Application, construída sobre uma camada de micro serviços, que resulta da integração de funcionalidades pertencentes a equipas distintas. Assim, propõe que as aplicações sejam estruturadas em camadas verticais, denominadas micro frontends, desenvolvidas de forma autónoma e na totalidade, desde a persistência de dados até à interface com o utilizador, por uma equipa multidisciplinar autónoma, dedicada e especializada numa determinada área de negócio. Sendo a arquitetura de micro frontends recente, ainda não existe muita informação relativa ao impacto da sua adoção no processo de desenvolvimento nas organizações e à viabilidade de algumas técnicas de integração em cenários reais, pelo que o estudo desta abordagem visa atestar a sua viabilidade e eventuais mais-valias face a alternativas mais convencionais.
In the last few years, software needs have been rising and nowadays web applications are undeniably taking over the place occupied by desktop applications in the past. In these applications, due to the remarkable increase in demands related with user experience as well as business logic complexity, the community have been working together in order to solve this matter. The standard architecture, the monolithic one, which once gave an overview of the project to all team’s developers and ensured a fast development and release of new features, is no longer a candidate empowered enough to face these demands. To mitigate the problem, many organizations have been splitting software projects into several pieces of software. Therefore, software and team organization by technical skills became sort of a standard. Software’s architecture and team’s arrangement started to be governed by horizontal layers, corresponding to applications frontend and backend. However, since these layers remained being entirely developed by a single team, the development process proved to be time consuming and over the time the code’s quality decreased substantially, the coupling increased a lot and the single responsibility principle (SRP) simply vanished. As a result, maintenance became unsustainable. The appearance of the micro services architecture, clash these practices, overthrowing the monolithic frontend and reached such an astonishing popularity that created an excellent opportunity to finish the frontend monolith through micro frontends. This concept arrives as an alternative approach to organize software and teams, which aims to extend the principles of micro services to the frontend’s world in order to create a Single Page Application, which sits on top of a micro service architecture, that consists in a composition of features owned by different teams. Thus, it states that applications should be structured in vertical layers, called micro frontends, that are autonomously developed end-to-end, from the database to the user interface, by an dedicated and autonomous cross-functional team specialized in a specific business logic area. Since the micro frontend’s architecture itself is recent, there isn’t enough information whose subject is the impacts that come from the micro frontends adoption on the software development process at organizations and the feasibility of some integration techniques in real scenarios. So, the study of this approach aims to check its feasibility as well as possible gains compared to more conventional architectural alternatives.
In the last few years, software needs have been rising and nowadays web applications are undeniably taking over the place occupied by desktop applications in the past. In these applications, due to the remarkable increase in demands related with user experience as well as business logic complexity, the community have been working together in order to solve this matter. The standard architecture, the monolithic one, which once gave an overview of the project to all team’s developers and ensured a fast development and release of new features, is no longer a candidate empowered enough to face these demands. To mitigate the problem, many organizations have been splitting software projects into several pieces of software. Therefore, software and team organization by technical skills became sort of a standard. Software’s architecture and team’s arrangement started to be governed by horizontal layers, corresponding to applications frontend and backend. However, since these layers remained being entirely developed by a single team, the development process proved to be time consuming and over the time the code’s quality decreased substantially, the coupling increased a lot and the single responsibility principle (SRP) simply vanished. As a result, maintenance became unsustainable. The appearance of the micro services architecture, clash these practices, overthrowing the monolithic frontend and reached such an astonishing popularity that created an excellent opportunity to finish the frontend monolith through micro frontends. This concept arrives as an alternative approach to organize software and teams, which aims to extend the principles of micro services to the frontend’s world in order to create a Single Page Application, which sits on top of a micro service architecture, that consists in a composition of features owned by different teams. Thus, it states that applications should be structured in vertical layers, called micro frontends, that are autonomously developed end-to-end, from the database to the user interface, by an dedicated and autonomous cross-functional team specialized in a specific business logic area. Since the micro frontend’s architecture itself is recent, there isn’t enough information whose subject is the impacts that come from the micro frontends adoption on the software development process at organizations and the feasibility of some integration techniques in real scenarios. So, the study of this approach aims to check its feasibility as well as possible gains compared to more conventional architectural alternatives.
Description
Keywords
Desenvolvimento web Micro frontends Arquitetura de software Organização de software Web development Software architecture Software organization