![Page 1: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/1.jpg)
UTILIZANDO KAFKA PARA
COMUNICAÇÃO ENTRE
MICROSERVIÇOS EM
CONTÊINERES DOCKER
Prof . André Pontes Sampaio
www.tonanuvem.net/
https://github.com/tonanuvem/
linkedin.com/in/andre-pontes-sampaio/
Maio/2019
![Page 2: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/2.jpg)
Como lidar com as questões abaixo?
AUTOMAÇÃO AGILIDADE+
Ambientes híbridos
mais complexos de
gerenciar
Serviços de TI
devem atender as
necessidades
atuais e futuras
Restrições de
orçamento e equipe
Aumento dos riscos
Questionamentos
sobre os retornos
dos investimentos
realizados em TI
![Page 3: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/3.jpg)
Gestão de Serviços
![Page 4: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/4.jpg)
Gestão de Microserviços
Microserviços são
pequenos serviços
autonômos que
funcionam de forma
integrada.
Fonte: Sam Newman
Building Microservices: Designing Fine-Grained Systems
![Page 5: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/5.jpg)
Agilidade com Microserviços
SOA:
Aplicações em componentes que se comunicam por ESB
MICROSERVIÇOS:
Aplicações se comunicam de forma independente entre si
![Page 6: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/6.jpg)
Pesquisa realizada em 2017 sobre iniciativas utilizando
tecnologias baseada em “Contêiner”:
Utilização de Contêineres
![Page 7: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/7.jpg)
Possibilidade de simplificar o deploy com a redução de
erros operacionais e facilitando o gerenciamento de
mudanças.
VMs versus Contêineres
![Page 8: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/8.jpg)
Utilização de Microserviços em DockerD
ocker
Imagem portátil definida no Dockerfile
Desnecessário instalar sistema operacional e demais dependências da aplicação
Aplicação é executada da mesma forma independente do ambiente
![Page 9: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/9.jpg)
Desenvolvimento
em máquina local
Registro de uma
imagem no Hub
Implantação e
distribuição da
imagem
Execução
padronizada dos
aplicativos
Utilizando o Docker
Alta disponibilidade
em diversos nodes
Carateristicas:Facilita as
práticas DevOps
Aplicações não
possuem dependências
do sistema
Para
dimensionamento
do aplicativo,
geram-se novos
executáveis (e não
criar hosts ou VMs)
![Page 10: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/10.jpg)
Padrões de Arquitetura (em destaque)
Arquitetura Front-end
Arquitetura de Aplicações
Arquitetura de Contêineres
Arquitetura de Infraestrutura
Adaptado de:
Microservices Patterns.
Chris Richards
Disponível em:
https://microservices.io/
![Page 11: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/11.jpg)
Padrões de Arquitetura
Arquitetura de Aplicações
Arquitetura de Contêineres
Arquitetura de Infraestrutura
RPI: comunicação síncrona via
request/response
Comunicação
![Page 12: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/12.jpg)
Padrões de Arquitetura
Arquitetura de Aplicações
Arquitetura de Contêineres
Arquitetura de Infraestrutura
Mensagens: comunicação assíncrona entre
serviços
Comunicação
![Page 13: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/13.jpg)
Padrões de Arquitetura
Arquitetura de Aplicações
Arquitetura de Contêineres
Arquitetura de Infraestrutura
Mensagens: comunicação assíncrona entre
serviços
Comunicação
Problema
Transações síncronas
podem impactar
alguns casos de uso
Solução
Envio de mensagens assíncronas
entre os componentes
do serviço
Vantagens
Melhorar a experiênciado usuário
Possibilita a comunicaçãobaseada em
eventos
![Page 14: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/14.jpg)
LAB: TOPOLOGIA KAFKA
![Page 15: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/15.jpg)
Ferramenta
colaborativa para
agilidade
bit.ly/sampagrupy
Vamos nos Divertir!
![Page 16: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/16.jpg)
LAB:
Download:
> git clone
https://github.com/tonanuvem/kafka-
producer-consumer.git
Execução:
> docker-compose up
![Page 17: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/17.jpg)
LAB: https://www.fiap.com.br/shift/
![Page 18: UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a redução de ... Utilização de Microserviços em Docker er Imagem portátil definida](https://reader033.vdocuments.com.br/reader033/viewer/2022053015/5f15e28cbe0bdc17b63de0d3/html5/thumbnails/18.jpg)
TEMPLATE
2
Obrigado!
Resumindo o que vimos hoje
• Microserviços (conceitos e cenários de uso)
• Contêineres em Docker
• Arquitetura de Projetos
- Comunicação entre microserviços