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