Você está na página 1de 27

Micro Serviços com

Spring Cloud e Docker


Sobre mim

u Cristiano Dácio
u Engenheiro de Computação
u Desenvolvedor de software 22
anos
u Clipper? Maior parte Delphi, Java
a 4 anos.
u Atualmente Arquiteto/Diretor
Attornatus Procuradoria Digital.
u Micro Serviços
u Desafios
u Spring Cloud e Netflix OSS
u Spring Cloud Config

Agenda u Netflix Eureka


u Spring Cloud Feign
u Netflix Zuul
u Aplicando Docker
u Aplicação Exemplo
Micro Serviços

u Pequenos
u Centrado no domínio de negócio
u Independentes
u Deployment independente
u Flexibilidade de tecnologia
Monolito vs. Micro Serviço
Quando usar?

Ganho de produtividade vs. Aumento de complexidade do sistema Martin Fowler


Desafios

u Gerenciamento de configurações
u Registro e descoberta de serviços
u Roteamento
u Balanceamento de carga
u Complexidade no
desenvolvimento de sistema
distribuídos
Spring Cloud e Netflix OSS

u Netflix open source stack


u Criado para resolver problemas em sistemas
distribuídos em escala
u Disponibilizado para comunidade
u Spring Cloud é o elo entre Neftflix OSS e o
Spring
Spring Cloud Config

u Centraliza a configuração
da aplicação
u Suporta
versionamento/profile
u Git, SVN e FileSystem
Spring Cloud Config (server)
Spring Cloud
Config
(Client)
Spring Cloud Config
Spring Cloud Config
Spring Cloud Config
Netflix Eureka

u Service Discovery
u Conhece todos os serviços e sabe
o status de cada um
u Possui serviço básico de load-
balancing round-Robin
u Permite clients não java através
API REST.
Netflix Eureka (server)
Netflix Eureka (client)
Spring Cloud Feign
Criação de clientes Rest de forma declarativa
Spring Cloud Feign
Netflix Zuul

u Porta de entrada para os serviços


u Solução de roteamento dinâmico
u Busca no eureka microserviço
que atenda a rota
Netflix Zuul
Netflix Zuul
http://localhost:8080/{microserviço}/{recurso}

POST http://localhost:8080/venda/vendas

GET http://localhost:8080/pessoa/pessoas/1
Aplicando Docker

mvn clean package docker:build -DskipTests


Docker-compose
Aplicação exemplo

u https://github.com/attornatus/code4tuba
u docker-compose up -d config
u docker-compose logs -f config
u docker-compose up -d eureka
u http://localhost:8761
u docker-compose up -d --scale pessoa=2
u docker-compose ps
u docker-compose logs -f pessoa
u http://localhost:X/actuator/info
u http://localhost:8080/pessoa/actuator/info
u Postman
Referências

u https://www.baeldung.com
u https://spring.io/projects/spring-boot
u http://spring.io/projects/spring-cloud
u https://www.slideshare.net/rcandidosilva/qcon-sp-2016-construindo-
microservices-autocurveis-com-spring-cloud-e-netflix-oss
u https://exampledriven.wordpress.com/2016/07/06/spring-cloud-zuul-
example/
u http://techragesh.com/2018/05/04/springboot-zuulproxy-demo/
u https://imasters.com.br/cloud/zuul-2-jornada-da-netflix-para-sistemas-
assincronos-nao-bloqueantes
Obrigado!