[Gov.Doc] Estudo sobre utilização de microsserviços
Objetivo
O objetivo desse estudo é analisar a utilização de microsserviços no sistema Gov.Doc que atualmente é monolítico, quais as alterações devem ser realizadas e com quais tecnologias.
Arquiteturas de aplicações
Uma arquitetura de aplicação indica como o projeto é construído e integrado, geralmente para aplicações web são utilizados os seguintes padrões de arquitetura, sistemas com arquitetura Monolítica ou sistemas com arquitetura de Microsserviços.
Arquitetura Monolítica
Um sistema que segue essa arquitetura, é um sistema único e não dividido, concentrado e interligado apenas em um projeto e rodando apenas em um único processo, porém, possuindo suas vantagens e desvantagens.
Figura 1: Representação de um sistema Monolítico
Arquitetura de Microsserviços
A arquitetura de microsserviços é estruturar seu sistema através de uma coleção de serviços independentes e cada um com sua responsabilidade, melhorando a escalabilidade, implementação e publicação.
Figura 2: Representação de um sistema em Microsserviços
Analisando separaçSeparação de serviços do Gov.Doc
Para iniciar a migração de arquitetura no Gov.Doc, foram analisados alguns serviços que potencialmente podem se tornar microsserviços, sendo eles o serviço de Log do sistema e o serviço de envio de Email.E-mail. Para executar essa separação, serão criados dois projetos separados cada um com sua responsabilidade e executados em contêineres no openshift.
Comunicação entre
A comunicação entre os microsserviços e da aplicação web pode ser feita com de requisições HTTP (REST) através de mensagens em filas como RabbitMQ ou Kafka. O funcionamento é simples, um microserviço publica uma mensagem na fila (Publisher), essa mensagem pode ser uma requisição para outro microserviço, que está consumindo a fila (Consumer),que recebe essa mensagem e trata a requisição.
Banco de Dados em microsserviços