O que são microsserviços?
Microsserviços, também conhecidos como arquitetura de microsserviços, são um estilo arquitetônico que estrutura um aplicativo como uma coleção de pequenos serviços autônomos, modelados em torno de um domínio de negócios.
Aqui estão algumas características principais da arquitetura de microsserviços:
1. Responsabilidade Única : Cada microsserviço deve ser pequeno e ter uma responsabilidade única, ou seja, deve fazer bem uma coisa.
2. Independência : Cada serviço deve poder funcionar independentemente dos outros. Isso permite que cada serviço seja desenvolvido, implantado, atualizado e dimensionado de forma independente.
3. Descentralizado : Microsserviços podem ser desenvolvidos utilizando diferentes linguagens e tecnologias com base nos requisitos do serviço. Isso é possível porque cada serviço é independente e se comunica com outros através de APIs.
4. Isolamento de falhas : Em uma arquitetura monolítica, se um único componente do aplicativo falhar, pode levar à falha de todo o aplicativo. Mas numa arquitetura de microsserviços, se um único serviço falhar, apenas esse serviço será afetado. Os demais serviços continuam funcionando.
5. Armazenamento de dados por serviço : cada microsserviço pode ter seu próprio banco de dados separado, o que significa que o esquema do banco de dados de um serviço pode ser diferente de outro. Isso promove ainda mais a independência de cada serviço.
6. Comunicação : os serviços se comunicam entre si por meio de APIs e protocolos bem definidos, normalmente HTTP/REST com JSON ou gRPC com Protobuf.
O estilo de arquitetura de microsserviços costuma ser contrastado com o estilo de arquitetura monolítica, onde um aplicativo é construído como uma unidade única. Os microsserviços oferecem vários benefícios em relação às arquiteturas monolíticas, como flexibilidade na escolha da pilha de tecnologia para diferentes serviços, escalabilidade independente e implantações mais rápidas, mas também introduzem complexidades adicionais, como o gerenciamento da comunicação entre serviços e o tratamento de dados distribuídos.