Slide 1

Slide 1 text

Protótipos na AWS Uma Solução Ágil para Análise e Integração de Dados Jéssica Bonson Principal Engineer no Olist TDC Recife 2020, Trilha Arquitetura

Slide 2

Slide 2 text

Jéssica Pauli de C Bonson ● +-8 anos de exp em pesquisa/desenvolvimento ● graduação/mestrado em Ciências da Computação ● foco em dev backend, machine learning e big data Jogar RPG Livros Duolingo Hobbies:

Slide 3

Slide 3 text

Maior loja nos principais marketplaces do Brasil. Arquitetura em microsserviços e serverless. Python. Go. PostgreSQL. AWS. Kubernetes. 20+ APIs 120+ serviços 3m+ produtos 30k+ logistas 10m+ anúncios 200k+ pedidos por mês

Slide 4

Slide 4 text

Catálogo

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Queríamos um catálogo mais inteligente…

Slide 7

Slide 7 text

Queríamos um catálogo mais inteligente… ...mas estávamos sem recursos para fazer isso internamente.

Slide 8

Slide 8 text

Solução: Consumir dados de um parceiro!

Slide 9

Slide 9 text

Solução: Consumir dados de um parceiro!

Slide 10

Slide 10 text

Quais dados?

Slide 11

Slide 11 text

Quais dados? Tipo do produto

Slide 12

Slide 12 text

Quais dados? Tipo do produto Ex.: Quantos livros temos no catálogo?

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

Desafios

Slide 15

Slide 15 text

Passos: 1. Integrar os dados do parceiro aos nossos 2. Permitir análises dos dados 3. Decidir se essa parceria vale a pena

Slide 16

Slide 16 text

Passos: 1. Integrar os dados do parceiro aos nossos 2. Permitir análises dos dados 3. Decidir se essa parceria vale a pena

Slide 17

Slide 17 text

Solução Tradicional

Slide 18

Slide 18 text

Arquitetura Tradicional

Slide 19

Slide 19 text

Problemas em um Cenário Incerto ● Não é ágil ○ PRs, testes, migrações… ● Não é fácil de reverter ● Só é possível analisar e validar os dados em ambiente de produção ● Tomar decisões arquiteturais sem saber o resultado final

Slide 20

Slide 20 text

Solução com Protótipo

Slide 21

Slide 21 text

Arquitetura Dinâmica

Slide 22

Slide 22 text

Vantagens ● A arquitetura é independente dos dados ● Cerca de uma semana de trabalho ● Não afeta nada em produção

Slide 23

Slide 23 text

Vantagens ● A arquitetura é independente dos dados ● Cerca de uma semana de trabalho ● Não afeta nada em produção ● E...

Slide 24

Slide 24 text

Solução Híbrida

Slide 25

Slide 25 text

Arquitetura Tradicional & Dinâmica

Slide 26

Slide 26 text

Detalhes AWS

Slide 27

Slide 27 text

AWS Lambda

Slide 28

Slide 28 text

AWS S3

Slide 29

Slide 29 text

AWS Glue

Slide 30

Slide 30 text

Amazon Athena

Slide 31

Slide 31 text

Resultados ● Quantos livros? 118 mil, entre 2 milhões de produtos

Slide 32

Slide 32 text

Resultados ● Quantos livros? 118 mil, entre 2 milhões de produtos ● Tempo de execução da query: 5 mins

Slide 33

Slide 33 text

Resultados ● Quantos livros? 118 mil, entre 2 milhões de produtos ● Tempo de execução da query: 5 mins ● Tempo de desenvolvimento do protótipo: 1 semana

Slide 34

Slide 34 text

Resultados ● Quantos livros? 118 mil, entre 2 milhões de produtos ● Tempo de execução da query: 5 mins ● Tempo de desenvolvimento do protótipo: 1 semana ● Arquitetura limpa e flexível

Slide 35

Slide 35 text

Melhorias ● Performance ○ Usar uma ferramenta de ingestão para agrupar os dados ○ Usar o formato Parquet ao invés de JSON

Slide 36

Slide 36 text

Valeu! @jpbonson

Slide 37

Slide 37 text

Referências https://docs.aws.amazon.com/athena/latest/ug/glue-athena.html https://aws.amazon.com/athena/ https://aws.amazon.com/lambda/ https://aws.amazon.com/glue/ https://aws.amazon.com/s3/ https://www.newgenapps.com/blog/flume-vs-kafka-vs-kinesis-guide-hadoop-ingesti on-tools/