Arquitetura Distribuída Microserviços
A arquitetura de microserviços determina que uma aplicação seja formada por um conjunto de "pequenas" aplicações, chamadas então de microserviços.
Cada microserviço é responsável por implementar um único requisito da aplicação. Seu desenvolvimento deve ser feito de forma independente dos demais microserviços.
A figura abaixo sintetiza o "espírito" da abordagem de microserviços comparando com a abordagem monolítica tradicional.
Fonte: https://martinfowler.com/articles/microservices/images/sketch.png
Cada microserviço terá, tipicamente, as seguintes características:
- um modelo de dados próprio associado ao requisito que está sendo implementado. A esse modelo corresponderá uma base de dados.
- o microserviço é o único a ter acesso direto aos dados e é encarregado de manter a sua consistência.
- a comunicação entre microserviços se dá por meio de APIs, utilizando algum protocolo de comunicação, como HTTP, ou então via algum sistema de mensagens, como o RabbitMQ.
Por ser uma abordagem distribuída, a arquitetura de microserviços deve garantir que uma falha em um microserviço não deve comprometer o funcionamento da aplicação como um todo. O usuário deve perceber apenas que uma funcionalidade ficou momentaneamente indisponível.
Leitura Obrigatória |
---|
Definição |
Post: O que é microserviço? |
Post: Microserviços Azure |
Post: Introdução a Microserviços |
Post: Microservices segundo Martin Fowler |