Arquitetura de Sistemas

Arquitetura de Sistemas para Internet

Requisitos Básicos

Tipo de Arquitetura: Monolito

É uma aplicação única, geralmente começa com um único serviço e vai ganhando funcionalidades ao longo do tempo. São várias instânicas da mesma app executadando no servidor, consumindo um ou mais banco de dados locais, e seus clientes (web, mobile) acessando-a através de um Proxy HTTP.
Imagem da arquitetura de monolito
Vantagens
Desvantagens

Tipo de Arquitetura: Microservices

Existem diversas maneiras, meios e estratégias para implementar uma arquitetura com microservices.
Cada microserviço tem uma única responsabilidade, representa uma única operação e podem conversar entre si ou com apps externas.
O Proxy HTTP é o responsável por encaminhar as solicitações que chegam para os microservices corretos.
Conforme o aumento de microservices ocorre dentro de um cluster, a complexidade aumenta e podemos ter uma arquitetura caótica.
Exemplo com chamada direta entre os microservices.
Imagem da arquitetura de microservice
Exemplo sem chamada direta entre os microservices
A comunicação é totalmente assíncrona, via mensagens pelo MessageBroker, sendo este o único ponto de comunicação.
Importante ressaltar aqui as operações ficam refém do MessageBroker
Imagem da arquitetura de microservice
Exemplo sem chamada direta entre os microservices
Toda a comunicação é realizada através de um gerenciador de pipeline, onde o Proxy HTTP vai passar a requisição para o gerenciador de pipeline, ao invés de passar diretamente para o microservice, isto é útil para operações que precisam seguir determinados passos.
O gerenciador de pipeline precisar estar apto a tratar as requisições caso algum microservice quebre, realizar tentativas ou trabalhar com rollback para que não haja inconsistências nas operações.
Imagem da arquitetura de microservice

Gerenciamento de Erros e de Volume de Acesso

São questões que todas as arquiteturas tem em comum.

Onde é mais complexo
Soluções