Download - massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Transcript
Page 1: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 2: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Microserviços na otimização da ingestão de anúncios em massa na OLX

Page 3: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

RafaelDEV

DaniloDEV

DrinoDEV

EdgardDEV

EduGE

RenatoPM

Page 4: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Processo de integração de anúncios em massa

Page 5: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Nossos números

~4.4KContas importadas

por dia

~3.6MAnúncios

processados por dia. Isso representa ~25%

de todos os anúncios ativos da

OLX

~141kRequests por dia

Page 6: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Microserviços: Dividir o sistema em domínios diferentes para simplificar e escalar a importação

Cerberus: Sistema independente para realizar a importação

Monolito: Toda a lógica de importação estava acoplada ao monolito da OLX

Page 7: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Aprendizado com o passado

1.

Page 8: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Positivos: Negativos:Deploy independente

Desacoplamento de infra

Custo alto para escalar

Acoplamento em código

Troubleshooting

Page 9: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Como começamos.2.

Page 10: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Arquivo Responsável por fazer toda manipulação e conversão dos arquivos dos clientesDefinição

dos Serviços Conta Enriquecer os dados dos anúncios com informações relativas a conta (Ex.: telefone) e validações (Ex.: Limite do plano)

Anúncio Operações a nível de anuncio (Ex.: Download de imagem)

Page 11: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 12: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Demoramos quase 1 dia para fazer toda a importação e esse tempo não não diminuía com mais máquinas

22h

Page 13: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Destaques: Problemas:Separação das operações

Utilização do SQS

Stateless

Base de dados compartilhada

Serviços externos

Ausência de cache

Page 14: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Atualização de status assíncrono.

3.

Page 15: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 16: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Tempo total caiu para 4h e passou a ser linear com a quantidade de workers

Utilizamos um cache para evitar edição desnecessária de anúncio e um cache na consulta de CEP

4h

Page 17: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Importação de arquivo finalizada com um tempo total de projeto de 9 meses.

Page 18: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Migração da API.4.

Page 19: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 20: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Destaques: Problemas:

Sem exceção para atender o fluxo de API

Fluxo durante todo o dia

Concorrência entra API e XML

Page 21: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Separação do taffarel publisher.

4.

Page 22: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 23: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Custos.5.

Page 24: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

$240 de EC2

$65 de SQS

Chegamos em um máximo de 40 EC2 t2.micro (1 vCpu e 1 GiB ram) rodando.

Page 25: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

m4.larger 2 vCpu 8 GiB ram $ 73.20

m4.xlarger 4 vCpu 16 GiB ram $ 146.40

m4.2xlarger 8 vCpu 32 GiB ram $ 292.80

E se fosse um único serviço?

Page 26: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Operação.5.

Page 27: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 28: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Gitlab CI

Page 29: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Prometheus

Grafana

Page 30: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Elasticsearch

Logstash

Kibana

Page 31: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 32: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos
Page 33: massa na OLX Microserviços na otimização€¦ · massa na OLX. Rafael DEV Danilo DEV Drino DEV Edgard Edu DEV GE Renato PM. Processo de integração de anúncios em massa. Nossos

Obrigado!

Dúvidas?