utilizando kafka para comunicaÇÃo entre … · possibilidade de simplificar o deploy com a...
TRANSCRIPT
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
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
Gestão de Serviços
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
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
Pesquisa realizada em 2017 sobre iniciativas utilizando
tecnologias baseada em “Contêiner”:
Utilização de Contêineres
Possibilidade de simplificar o deploy com a redução de
erros operacionais e facilitando o gerenciamento de
mudanças.
VMs versus Contêineres
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
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)
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/
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
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
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
LAB: TOPOLOGIA KAFKA
Ferramenta
colaborativa para
agilidade
bit.ly/sampagrupy
Vamos nos Divertir!
LAB:
Download:
> git clone
https://github.com/tonanuvem/kafka-
producer-consumer.git
Execução:
> docker-compose up
LAB: https://www.fiap.com.br/shift/
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