Junior
O que são microserviços?
sobes.tech IA
Resposta da IA
Os microserviços são um estilo arquitetónico em que a aplicação é construída como um conjunto de pequenos serviços autónomos, cada um dos quais realiza uma função empresarial específica.
Características principais:
- Pequenos e focados: Cada serviço resolve uma tarefa específica.
- Autónomos: Podem ser desenvolvidos, implantados e escalados de forma independente.
- Gestão descentralizada de dados: Cada serviço pode ter a sua própria base de dados.
- Interação entre serviços: Geralmente através de protocolos leves (por exemplo, REST, gRPC).
- Resiliência a falhas: A falha de um serviço não necessariamente provoca a queda de toda a aplicação.
- Heterogeneidade tecnológica: Os diferentes serviços podem usar diferentes linguagens de programação e tecnologias.
Vantagens:
- Desenvolvimento e implantação acelerados.
- Melhor escalabilidade de componentes individuais.
- Maior resiliência.
- Implementação mais fácil de novas tecnologias.
Desvantagens:
- Maior complexidade do sistema em geral.
- Necessidade de gerir transações distribuídas.
- Dificuldades em monitorização e depuração.
- Requer uma cultura DevOps mais madura.
Comparação com monólitos:
| Característica | Microserviços | Monolito |
|---|---|---|
| Tamanho | Pequenos e focados | Uma grande aplicação |
| Desdobramento | Desdobramento independente de serviços | Desdobramento de toda a aplicação |
| Escalabilidade | Escalamento de serviços individuais | Escalamento de toda a aplicação |
| Resiliência | Alta (falha de um serviço não é crítica) | Baixa (falha de um componente afeta tudo) |
| Tecnologias | Possibilidade de usar diferentes stacks | Stack tecnológico único |
| Equipa de desenvolvimento | Pequenas equipas autónomas | Uma grande equipa |
| Complexidade | Alta (interação entre serviços) | Baixa (para aplicações simples) |
| Gestão de dados | Descentralizada | Centralizada |