Introdução à Arquitetura de Microsserviços
Microsserviços
Definição
-
Termo relativamente novo (criado em 2005), mas muito comum hoje em dia
-
Aplicações complexas sendo compostas por diversas aplicações mais simples (serviços distribuídos)
-
Serviços independentes, cujas funcionalidades são acessíveis pela rede
-
Uma alternativa à arquitetura monolítica
-
Geralmente com 1 banco de dados por serviço
Vantagens
-
Tempo entre desenvolvimento e implantação baixo
-
Foco nas regras do negócio
- Divisão da complexidade do negócio
-
Flexibilidade
-
Multicloud
-
Padrões de observabilidade, monitoramento e documentação
Iniciativas como OpenTelemetry e CloudEvents devem ganhar cada vez mais espaço
-
Stack tecnológica
-
-
Equipes autônomas
-
Baixo acoplamento
-
Independências entre serviços e modelagem de dados
-
Agilidade de mudanças
-
Altamente disponíveis e escaláveis
-
Alta resiliência
-
Manutenibilidade
-
Isolamento a falhas
-
Melhor performance
-
Melhor testabilidade
Desvantagens
-
Maior complexidade no desenvolvimento
-
Comunicação
-
Infraestrutura
-
Ferramentas
-
Serverless ganhando cada vez mais destaque
-
Ferramentas de mensageria (Kafka, Kafka Streams, RabbitMQ) cada vez mais performática e features avançadas
-
Traceability
-
Testes (de integração entre microsserviços)
Como trabalhar com microsserviços
-
Conceitos como DDD cada vez mais importante no mundo dos microsserviços
-
Expandindo para diversas áreas do negócio
-
Planejamento estratégico