Microsserviço é um tipo de arquitetura de desenvolvimento de aplicativos que permite que um sistema grande seja separado em vários serviços menores, segue alguns benefícios como:
- Agilidade na manutenção: já que os sistemas são menores é mais fácil fazer uma alteração no fonte assim tornando mais rápido a resolução de problemas e a entrega de novas funcionalidades.
- Escalabilidade: Estando separados, com serviços separados a escalabilidade é feita de forma independente.
- Resiliência: Com os microsserviços, os aplicativos lidam com a falha total do serviço degradando a funcionalidade, sem interromper todo o aplicativo.
Segue alguns exemplos de dados e seus microserviços
- Venda fica no microserviço Comercial
- Compartilhamento e Loja ficam no microserviço de Dados básicos
- Lotes e Loja lotes ficam no microserviço de Controle
- Cliente ficam no microserviço de cliente
Segue um desenho para um melhor entendimento dessa arquitetura
| draw.io Diagram |
|---|
| border | true |
|---|
| |
|---|
| diagramName | microsserviços |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 861 |
|---|
| revision | 1 |
|---|
|
Um dos grandes motivos de se utilizar microsserviços é a resiliência, como os serviços não estão em um monolito, quando um serviço está fora do ar os outros serviços continuam funcionando.
Segue um desenho de exemplo dessa comunicação:
| draw.io Diagram |
|---|
| border | true |
|---|
| |
|---|
| diagramName | Falha microsserviços |
|---|
| simpleViewer | false |
|---|
| width | |
|---|
| links | auto |
|---|
| tbstyle | top |
|---|
| lbox | true |
|---|
| diagramWidth | 861 |
|---|
| revision | 1 |
|---|
|