| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 4.19 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Software architecture is a crucial element of software development, as it defines the
elements and relationships of a system, guiding the development team and managing
complexity as the system grows.
The increasing popularity of microservices architecture has brought a new challenge
for developers in choosing the best microservices architecture for their specific needs. This
kind of architecture involves breaking down a system into independent services, each
focused on a specific business capability, establishing communication through lightweight
mechanisms.
Choosing the right microservices architecture presents an interesting challenge because
the architecture must consider various factors such as scalability, reliability, security,
performance, and maintainability. This requires a detailed examination of the existing
literature and best practices, as well as a practical analysis of real-world case studies.
To address this challenge, this thesis developed a methodology for determining a
suitable microservices architecture based on specific requirements.
The methodology includes various requirements that were used to evaluate several
architectural design alternatives. To improve its automation and make it easier to use,
a recommendation system, that uses the methodology, was implemented in order to
automatically consider user preferences and suggest the architecture.
The contribution of this thesis is an innovative solution that assists in determining an
appropriate microservices architecture based on specific requirements. The developed
solution does not only recommend a suitable architecture and its relevant components
such as security and observability, but also provides a dynamically generated graphical
overview of the resulting architecture.
No desenvolvimento de software uma das componentes mais importantes é a arquitetura de software. Esta define os elementos e as relações de um sistema, orienta a equipa de desenvolvimento e ajuda a controlar a complexidade do sistema à medida que este vai progredindo. A crescente popularidade dos microsserviços trouxe um novo desafio para os desen- volvedores de software na escolha da melhor arquitetura de microsserviços para as suas necessidades específicas. Este tipo de arquitetura envolve a divisão de um sistema em serviços independentes, cada um focado numa funcionalidade específica, estabelecendo comunicação através de mecanismos leves. Escolher a arquitetura de microsserviços mais apropriada apresenta um desafio interes- sante, pois a arquitetura deve considerar vários fatores como escalabilidade, confiabilidade, segurança, desempenho e manutenibilidade. Esta escolha requer uma examinação da li- teratura existente e das melhores práticas, bem como uma análise prática de casos de estudo. Para enfrentar este desafio, esta tese desenvolveu uma metodologia para determinar uma arquitetura de microsserviços adequada com base em requisitos específicos. A metodologia inclui um conjunto de requisitos que foram utilizados para avaliar diferentes alternativas de design de arquiteturas. Posteriormente, para melhorar a sua automação e tornar a sua utilização mais simples, foi implementado um sistema de recomendação que, através do uso da metodologia, tem em consideração as preferências do utilizador e sugere a arquitetura. A contribuição desta tese é uma solução inovadora que ajuda a determinar uma arqui- tetura de microsserviços apropriada com base nos seus requisitos específicos. O sistema de recomendação não recomenda apenas uma arquitetura adequada e os seus componentes relevantes, como segurança e observabilidade, mas também gera dinamicamente uma visualização gráfica da arquitetura final.
No desenvolvimento de software uma das componentes mais importantes é a arquitetura de software. Esta define os elementos e as relações de um sistema, orienta a equipa de desenvolvimento e ajuda a controlar a complexidade do sistema à medida que este vai progredindo. A crescente popularidade dos microsserviços trouxe um novo desafio para os desen- volvedores de software na escolha da melhor arquitetura de microsserviços para as suas necessidades específicas. Este tipo de arquitetura envolve a divisão de um sistema em serviços independentes, cada um focado numa funcionalidade específica, estabelecendo comunicação através de mecanismos leves. Escolher a arquitetura de microsserviços mais apropriada apresenta um desafio interes- sante, pois a arquitetura deve considerar vários fatores como escalabilidade, confiabilidade, segurança, desempenho e manutenibilidade. Esta escolha requer uma examinação da li- teratura existente e das melhores práticas, bem como uma análise prática de casos de estudo. Para enfrentar este desafio, esta tese desenvolveu uma metodologia para determinar uma arquitetura de microsserviços adequada com base em requisitos específicos. A metodologia inclui um conjunto de requisitos que foram utilizados para avaliar diferentes alternativas de design de arquiteturas. Posteriormente, para melhorar a sua automação e tornar a sua utilização mais simples, foi implementado um sistema de recomendação que, através do uso da metodologia, tem em consideração as preferências do utilizador e sugere a arquitetura. A contribuição desta tese é uma solução inovadora que ajuda a determinar uma arqui- tetura de microsserviços apropriada com base nos seus requisitos específicos. O sistema de recomendação não recomenda apenas uma arquitetura adequada e os seus componentes relevantes, como segurança e observabilidade, mas também gera dinamicamente uma visualização gráfica da arquitetura final.
Descrição
Palavras-chave
Methodology Software Architecture Microservices Architecture Recommendation System Requirements Architectural Design Alternatives
