entregando ideias
DESCRIPTION
Palestra realizada na Campus Party 2013 (http://uolparty.uol.com.br/palestras/entregando-ideias.htm) e no DevDay (http://www.devday.com.br/) falando sobre a plataforma de publicação, busca e entrega de conteúdo.TRANSCRIPT
Entregando ideias
ROd
@rzdrigo
Desenvolvedor especialista
em arquiteturas de alta
performance relacionadas a
publicação, busca e
entrega de conteúdo para o
portal UOL.
Mestre pelo IME-USP em
07/2012 =)
Academia UOL 30/01/2013
Ideias
webmasters
analistas de qualidade
administradores de sistemas
editores
product owners
desenvolvedores
diretores gerentes
redatores
arquitetos de informação
Academia UOL 30/01/2013
Ideias
webmasters
analistas de qualidade
administradores de sistemas
editores
product owners
desenvolvedores
diretores gerentes
redatores
arquitetos de informação
Enfim, todos!
Modernizar a plataforma de publicação de conteúdo
Academia UOL 30/01/2013
Solução
Desenvolvimento de nova
plataforma, o Publicador UOL!
Academia UOL 30/01/2013
Premissas
• Suporte a diversos tipos de conteúdo:
homepages, notícias, placares, imagens…
• Versionamento:
• Templates
• Recursos estáticos
• Cada alteração editorial
• Importação de todo o acervo
Academia UOL 30/01/2013
Maiores desafios
• Mudança de cultura
• Processo de importação acabou virando
uma migração para adequar parte do
conteúdo
• Transação distribuída entre: banco de
dados, storages de uso interno e externo,
além da busca interna
O Publicador UOL não pode parar!
Academia UOL 30/01/2013
Solução
Aumentar a disponibilidade!
Academia UOL 30/01/2013
Solução
Adaptar o Publicador UOL para
funcionar com diversos servidores
ativos em diferentes datacenters!
Academia UOL 30/01/2013
Maiores desafios
• Sessão do usuário distribuída
• Mecanismo de notificação de presença
entre os editores
• Filas de uso interno
• Motor de agendamento de conteúdo e
rotinas administrativas
Automatizar a coleta de conteúdo de parceiros e
agências
Academia UOL 30/01/2013
Solução
Desenvolvimento do
Coletor UOL!
Academia UOL 30/01/2013
Premissas
• Migração dos scripts pré existentes de
coleta
• Interface administrativa
• Ferramenta de diagnóstico
• Relatórios
Academia UOL 30/01/2013
Maiores desafios
• Engenharia reversa:
• Scripts em perl
• Aplicativos Java 1.2
• Ausência de informações sobre o fluxo dos
parceiros
Aumentar a quantidade de páginas do portal em
buscadores
Academia UOL 30/01/2013
Solução
Desenvolvimento de ferramenta
compatível com o formato
SiteMaps
Academia UOL 30/01/2013
Maiores desafios
• Importação de 13 anos de conteúdo
• Integração ativa e passiva com outros
softwares da plataforma
Criar páginas centralizadores de
conteúdo por entidade
Academia UOL 30/01/2013
Solução
Desenvolvimento de um serviço
de gestão para tags
Academia UOL 30/01/2013
Premissas
• API REST para integração com outros
sistemas
• Mecanismo para controle de ambiguidade
• São Paulo time x cidade x estado x santo
• Roberto Carlos cantor x jogador
Academia UOL 30/01/2013
Maiores desafios
• Definição do conceito de tag
• Integração com diversos produtos da
plataforma
Academia UOL 30/01/2013
Diminuir a latência de indexação para as páginas
baseadas em tags
Academia UOL 30/01/2013
Solução
Desenvolvimento da nova
plataforma de busca de conteúdo!
Academia UOL 30/01/2013
Premissas
• Arquitetura distribuída e tolerante a falhas
• Conteúdo mais recente deve ser acessado
mais rapidamente
• Suporte a múltiplos repositórios de
conteúdo
• Importação de 14 anos de conteúdo
Academia UOL 30/01/2013
Maiores desafios
• Baixa latência de indexação
• Suporte a múltiplos formatos de saída
• Alto volume de consultas
Diversificar e aumentar o uso de enquetes pelo portal
Academia UOL 30/01/2013
Solução
Desenvolvimento do novo
sistema de enquetes!
Academia UOL 30/01/2013
Premissas
• Arquitetura distribuída e tolerante a falhas
• Integração nativa com o Publicador UOL
• Integração com sistema de captcha
• Testes de stress para descobrir o limite do
sistema
Academia UOL 30/01/2013
Realizar cobertura mais densa dos jogos olímpicos
Academia UOL 30/01/2013
Solução
Busca por pacotes de dados sobre
os jogos olímpicos
Academia UOL 30/01/2013
Solução
Desenvolvimento de sistema
para integração com
plataforma do COI!
Academia UOL 30/01/2013
Premissas
• Arquitetura a tolerante a falhas
• Grande volume de dados:
• 40 mensagens por segundo
• 4 GB de XML por dia
• Transformar dados em informação
Academia UOL 30/01/2013
Maiores desafios
• Devido ao alto volume de dados e
ausência de padrão, foi utilizada uma base
de dados orientada a grafos:
• 80 milhões de nós
• 240 milhões de relacionamentos
Academia UOL 30/01/2013
Academia UOL 30/01/2013
Academia UOL 30/01/2013
Aumentar a disponibilidade da plataforma de
entrega de conteúdo
Suporte a múltiplos layouts na mesma url
Academia UOL 30/01/2013
noticias.uol.com.br
Academia UOL 30/01/2013
noticias.uol.com.br
Academia UOL 30/01/2013
noticias.uol.com.br
Diminuir a quantidade de chamadas aos
serviços de backend
Otimizar de forma automática a entrega de
javascript, css e html
Academia UOL 30/01/2013
Solução
Desenvolvimento da nova
plataforma de entrega de
conteúdo, Marrakesh!
Academia UOL 30/01/2013
Premissas
• Arquitetura distruída e tolerante a falhas
• Detecção de User Agent
• Cache
• Melhores práticas do HTTP
Academia UOL 30/01/2013
Maiores desafios
• Montar um ambiente de simulação fiel
• Ajustes de Garbage Collector
• Armazenar GBs no cache
• Separação das classes de navegadores
Melhorar o tempo de carregamento do portal!
Academia UOL 30/01/2013
Solução
Melhorar o tempo de
entrega das imagens!
Academia UOL 30/01/2013
Solução
Desenvolvimento do Imagine!
Academia UOL 30/01/2013
Premissas
• Realizar otimizações em tempo de entrega
da imagem
• Algoritmos de compressão lossless
• Remoção de meta informações (EXIF)
• Transformar JPEGs em progressive
Melhorar sensação de carregamento em imagens grandes
Academia UOL 30/01/2013
Solução
Carregar imagens em baixa
qualidade, passando a impressão
de iniciar o carregamento antes!
Academia UOL 30/01/2013
Utilizar formatos de imagens mais modernos se o navegador tiver suporte
Academia UOL 30/01/2013
Solução
Suporte a WebP para navegadores
compativeis!
Apresentação disponível em
http://www.uolhost.com.br/ciclodepalestras/
Entregando ideias
ROd