Trabalho de Conclusão
Título:ANÁLISE SOBRE A CONSISTÊNCIA DE DADOS EM APLICAÇÕES BASEADAS NA ARQUITETURA DE MICROSSERVIÇOS
Aluno:RONEI DOS SANTOS BERLEZI
Semestre:2019/01
Situação:Anteprojeto
Áreas de interesse:Não informado
Orientador:Rodrigo Rafael V. Goulart
Avaliadores:Carlos Sergio Schneider, Guillermo Nudelman Hess
Documentos:Anteprojeto (liberado apenas para a banca)
Palavras-chave:microsserviços; transações; NoSQL; eventos; contexto de dados;
Resumo:

Com o crescente aumento da complexidade dos sistemas corporativos, surgiu um novo termo, Microsserviços. Este termo surgiu nos últimos anos para descrever uma maneira específica de desenvolver aplicações com o isolamento de responsabilidades sobre o sistema como um todo. A arquitetura tradicional monolítica é o caminho natural do desenvolvimento de um sistema, toda a lógica para tratar uma requisição é feita em um único processo utilizando tecnologias especificas. É possível escalar um aplicativo monolítico horizontalmente, de forma a executar várias instâncias. Esta arquitetura possui limitações, pois cada vez que um deploy é realizado, toda a aplicação deve ser reiniciada. Microsserviços, por ser uma arquitetura de pequenos projetos com um só foco, traz inúmeras vantagens, como independência de tecnologia para construir os módulos, possibilidade de mudança rápida em um único serviço sem necessidade de restestar e gerar um novo deploy para toda a aplicação, alta escalabilidade, etc. No contexto de banco de dados em sistemas monolíticos, transações utilizam o conjunto de propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) para garantir a integridade dos dados, já na arquitetura de microsserviços, os serviços devem estar desacoplados e, portanto, cada um deve ter seu próprio repositório de dados. A implementação de transações que utilizam dados de múltiplos serviços acaba aumentando a complexidade do sistema, ao mesmo tempo que muitos dos bancos NoSQL (utilizados em microsserviços) não suportam transações distribuídas. Sendo assim, este trabalho tem como objetivo sintetizar os métodos de garantir a consistência de dados dentro de um sistema baseado na arquitetura de microsserviços.

Link biblioteca:Não informado