UTILIZANDO KAFKA PARA COMUNICAÇÃO ENTRE … · Possibilidade de simplificar o deploy com a...

Preview:

Citation preview

UTILIZANDO KAFKA PARA

COMUNICAÇÃO ENTRE

MICROSERVIÇOS EM

CONTÊINERES DOCKER

Prof . André Pontes Sampaio

www.tonanuvem.net/

https://github.com/tonanuvem/

profandre.sampaio@fiap.com.br

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