18
UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE MICROSERVIÇOS EM CONTÊINERES DOCKER Prof . André Pontes Sampaio www.tonanuvem.net/ https://github.com/tonanuvem/ [email protected] linkedin.com/in/andre-pontes-sampaio/ Maio/2019

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

  • Upload
    others

  • View
    3

  • Download
    1

Embed Size (px)

Citation preview

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

UTILIZANDO KAFKA PARA

COMUNICAÇÃO ENTRE

MICROSERVIÇOS EM

CONTÊINERES DOCKER

Prof . André Pontes Sampaio

www.tonanuvem.net/

https://github.com/tonanuvem/

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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