O documento discute microserviços e arquitetura de microsserviços. Define microserviços como aplicações pequenas e independentes que se comunicam através de APIs HTTP. Explora vantagens como escalabilidade e desvantagens como coordenação entre serviços. Também discute tecnologias como Docker, Spring Cloud e abordagens para banco de dados em arquiteturas de microsserviços.
2. O que são microserviços
“microserviço é uma abordagem para
desenvolver uma única aplicação como uma
suíte de serviços, cada um rodando em seu
próprio processo e se comunicando através
de mecanismos leves, geralmente através de
uma API HTTP”
Microservices a definition of this new architectural term
James Lewis / Martin Fowler
3. O que são microserviços
“O menor possível, porém grande o suficiente
para representar seu domínio”.
Tiago Dolphine
4. O que são microserviços
Pequenas aplicações;
Organizado através das áreas do
negócio;
Governança descentralizada;
Possibilidade de escalabilidade;
6. Vantagens
Fácil entendimento e desenvolvimento do
projeto;
Fácil e rápida implantação (build e deploy);
Redução do tempo de startup, pois os
microserviços são menores que aplicações
monolíticas em termos de código;
Possibilidade de aplicar a melhor ferramenta
para um determinado trabalho.
7. Desvantagens
Dificuldade em implantar e operar sistemas
distribuídos;
Como cada microserviço geralmente tem sua
própria base de dados, o gerenciamento de
transação se torna mais difícil (múltiplas bases
de dados);
Implantar uma alteração em um serviço utilizado
por muitos sistemas demanda coordenação e
cautela.
8. Docker
Plataforma de “Containerização”
OSS
https://github.com/docker
Escrito emGo
13. Docker é o suficiente?
Serviço de Registro e Descoberta
ETCD, Eureka, e Consul
Proxy
Nginx, Haproxy
Monitoramento
Grafana, ELK, App Insights
Gestão de configuração
Puppet, Chef