MICROSERVICES - PODERES,
PADRÕES E DIFICULDADES
{
email: marcos.hgb@gmail.com,
linkedin: linkedin.com/in/marcosbarbero,
github: github.com/marcosbarbero
}
I AM...
Marcos Barbero
Senior Java Developer
Netshoes
Contribuidor Spring Framework
AGENDA
O que são micro-serviços?
O que NÃO são micro-serviços?
Pre-requisitos / Desafios
Conclusão
O QUE SÃO MICRO-SERVIÇOS?
... o modelo arquitetural de micro-serviços
é a abordagem de desenvolver uma única
aplicação como um grupo de serviços
menores, cada um rodando seu próprio
processo e deployaveis
independentemente ...
-- James Lewis and Martin Fowler
O QUE NÃO SÃO MICRO-SERVIÇOS?
WELCOME TO THE JUNGLE PATTERN
WELCOME TO THE JUNGLE PATTERN
PRE-REQUISITOS / DESAFIOS
Service Discovery & Registration
Configurações centralizadas
Edge Services: Micro Proxies e API Gateways
Roteamento e balanceamento
Tolerância à falhas (Circuit Breakers)
Security and Single Sign-On
Complexidade Operacional
Monitoração
Distributed Tracing
Cultura DevOps
SERVICE DISCOVERY &
REGISTRATION
Instâncias podem e vão mudar de endereço
Desacoplar do client o endereço do serviço
Catalogo de instâncias à partir do nome lógico
SERVICE DISCOVERY FLOW
FERRAMENTAS
Netflix Eureka
Apache Zookeeper
HarshiCorp Consul
CONFIGURAÇÕES CENTRALIZADAS
Manifesto
Externalizar configurações do build
Mesmo build rodando em qualquer ambiente
12factor
FERRAMENTAS
Spring Cloud Config
Netflix Archaius
Apache Zookeeper
HashiCorp Consul
CLOUD BUS
ROTEAMENTO E BALANCEAMENTO
Client side
Somente para comunicação entre serviços
CLIENT SIDE LOAD BALANCING
FERRAMENTAS
Netflix Ribbon
Netflix Feign
API GATEWAY
Vivem na borda do datacenter
Expostos através de um DNS
RESPONSABILIDADES
Roteamento
Balanceamento
CORS
Segurança
Etc...
API GATEWAY PATTERN
CIRCUIT BREAKER
Tolerância à falhas
Efeito dominó
CIRCUIT BREAKER FLOW
CIRCUIT BREAKER FLOW
FERRAMENTAS
Play Framework
Netflix Hystrix
SEGURANÇA & SINGLE SIGN-ON
Verificar procedência e autenticidade
Requisições externas somente pelo API Gateway
Auth Server
OAuth2
FERRAMENTAS
Spring Security OAuth
COMPLEXIDADE OPERACIONAL
Monitoração
Distributed Tracing
MONITORAÇÃO
FERRAMENTAS
Spring Boot Actuator
Dropwizard
ELK
Graylog
Statsd
Graphite
DISTRIBUTED TRACING
FERRAMENTAS
Spring Cloud Sleuth
Apache HTrace
Twitter Zipkin
CULTURA DEVOPS
CONCLUSÃO
It is not necessary to change. Survival is not
mandatory. -W. Edwards Deming
PERGUNTAS?
LINKS
{
reference: [
martinfowler.com/microservices,
martinfowler.com/articles/microservice-trade-offs.html,
martinfowler.com/bliki/MicroservicePrerequisites.html,
12factor.net,
presos.dsyer.com/decks/oauth-rest.html,
github.com/joshlong/power-patterns-pains-of-microservices
],
email: marcos.hgb@gmail.com,
linkedin: linkedin.com/in/marcosbarbero,
github: github.com/marcosbarbero
}

Power, patterns and pains of microservices