Como a Globosat utiliza Python para distribuição de conteúdo

Preview:

Citation preview

DEFINIÇÃO DE PÚBLICO-ALVO

IX Encontro PythonRio

Como a Globosat utiliza Python para distribuição de conteúdo

Marcos Cardoso

DEFINIÇÃO DE PÚBLICO-ALVO

MARCOS CARDOSOBacharel em Ciência da Computação - UFRJ

Desenvolvedor Backend @ Globosat

Entusiasta de Tuning, Backend, Game Dev, VR, Mobile

facebook.com/vrcmarcos

github.com/vrcmarcos

linkedin.com/vrcmarcos

vrcmarcos@gmail.com

slideshare.net/vrcmarcos

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

A Globosat● 33 canais

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

A Globosat● 33 canais

● Mais de 80 mil mídias

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

A Globosat● 33 canais

● Mais de 80 mil mídias

● Programação linear e não-linear

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

A Globosat● 33 canais

● Mais de 80 mil mídias

● Programação linear e não-linear

● Atendimento interno: VODs (Produtos Play)

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

A Globosat● 33 canais

● Mais de 80 mil mídias

● Programação linear e não-linear

● Atendimento interno: VODs (Produtos Play)

● Atendimento externo: Operadoras

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Os formulários

● O IBMS

● O Sisleo

● O CMS

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

O CMS

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Cenário● Possui um banco de dados próprio (MySQL/Percona)

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Cenário● Possui um banco de dados próprio (MySQL/Percona)● Precisa notificar as API’s a cada edição no cadastro de

mídia ( Globosat Play, Telecine Play )

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Cenário● Possui um banco de dados próprio (MySQL/Percona)● Precisa notificar as API’s a cada edição no cadastro de

mídia ( Globosat Play, Telecine Play )● Aproximadamente 13 mil edições/dia

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Cenário● Possui um banco de dados próprio (MySQL/Percona)● Precisa notificar as API’s a cada edição no cadastro de

mídia ( Globosat Play, Telecine Play )● Aproximadamente 13 mil edições/dia

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Solução

● Paralelizar o processamento

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

● Cria uma fila usando o Redis (Armazém de dados usado como BD/Cache/Broker) para enfileirar e consumir Jobs

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

● Cria uma fila usando o Redis (Armazém de dados usado como BD/Cache/Broker) para enfileirar e consumir Jobs

● Fornece um Worker para consumir os Jobs através de linha de comando

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

● Cria uma fila usando o Redis (Armazém de dados usado como BD/Cache/Broker) para enfileirar e consumir Jobs

● Fornece um Worker para consumir os Jobs através de linha de comando

● Fácil de implementar

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

● Cria uma fila usando o Redis (Armazém de dados usado como BD/Cache/Broker) para enfileirar e consumir Jobs

● Fornece um Worker para consumir os Jobs através de linha de comando

● Fácil de implementar

● Suporte à Django, Heroku, Supervisor e Sentry (Log das Exceptions)

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ - http://python-rq.org/

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● As notificações são processadas em lote (Até 10 edições por lote)

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● As notificações são processadas em lote (Até 10 edições por lote)

● Servidor isolado, rodando 8 workers para consumo das notificações

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● As notificações são processadas em lote (Até 10 edições por lote)

● Servidor isolado, rodando 8 workers para consumo das notificações

● Desenvolvido para suportar picos de 40 mil lotes/dia

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● Integrado ao Django

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● Integrado ao Django

● Comando para rodar o worker via manage.py

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● Integrado ao Django

● Comando para rodar o worker via manage.py

● Interface web para visualizar o andamento das tarefas

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

● Integrado ao Django

● Comando para rodar o worker via manage.py

● Interface web para visualizar o andamento das tarefas

● Usamos a biblioteca ZDaemon para “daemonizar” os workers

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

PythonRQ no CMS

IX ENCONTRO PYTHONRIO

DEFINIÇÃO DE PÚBLICO-ALVO

Obrigado!

IX ENCONTRO PYTHONRIO

facebook.com/vrcmarcos

github.com/vrcmarcos

linkedin.com/vrcmarcos

vrcmarcos@gmail.com

slideshare.net/vrcmarcos

Recommended