asp vagas.com...alerta de vagas • como não vivemos só de flores... • arquiteturas de...
TRANSCRIPT
Legado vale ouro:
VAGAS.com.brASP
Convivendo na VAGAS.com.br
&Ruby
Disclaimer:
Teoria != Prática
www.vagas.com.br/vagas
•
Porque, VAGAS.com.br?
•> 5 milhões de visitantes
•111,2 milhões pageviews
•> 7 milhões de CVs únicos
VAGAS.com.br
•10 anos
•>2k clientes
• 59 das 100 maiores empresas
ePartner
•
Evoluir como?
• Migrar aos poucos
• Redesenhar funcionalidades
Estratégia
• Regras? Que regras?
Estratégia
Regras
•
Começar por onde?
Situação inicial
Situação Atual
• Google Like
• Limitação do BD Relacional
Pesquisa de Vagas
Pesquisa de Vagas
Pesquisa de Vagas
✔Duplicar os dados para não
interferir no legado
✔Fácil rollback
• Feedback
Pesquisa de Vagas
•
Mas e aí, ASP VS Ruby?
• Sessão “gorda” vs “magra”
• Segurança
• Encode
ASP VS Ruby
• Páginas únicas entrada e saída
• Cookies expirarando rápido
• Menor ponto de contato
ASP VS Ruby
✔Explorar o http
✔Ecossistema Web (cookies, cache,
etc...)
ASP VS Ruby
•
Banco de dados
• “Impossível” trocar
• 170k tabelas
• Windows VS Linux
Banco de Dados
\(ツ )/¯
Banco de Dados
• Migrations
• Banco separado
• Views
Banco de Dados
✔Melhorar seu ambiente SEMPRE
✔Progressividade e planejamento
para migrações
Banco de Dados
• Algorítmo simples
• Banco de dados
• 4 bilhões de relacionamentos
Recomendação de Vagas
Recomendação de Vagas
✔Aproveitar a regra existentes
✔Planejar a evolução
Recomendação de Vagas
• Não era armazenado
• ASP é complexo
Perfil de Uso
Perfil de Uso
✔Protocolos comuns entre as duas
arquiteturas
Perfil de Uso
• ~8milhões de e-mails
• Crucial para os clientes
Alerta de Vagas
• Troca do algorítmo
• Troca da infra
• Redesenhar layout
Alerta de Vagas
✔Chaveamento gradual
✔Monitorar, monitor e monitorar
✔Atento ao feedback dos usuários
Alerta de Vagas
•
Como não vivemos só de flores...
• Arquiteturas de transição
• Duplicação de regras
• Problemas de estimativa
Problemas
• Maioria sem solução milagrosa
Problemas
• Migrar aos poucos
• Agregar valor ao reescrever
• Usar paretto para escolher
• Unir negócio com arquitetura
Resumo
• Ter um plano de contingência
• Aproveitar regras existentes
• “Feature switch”
Resumo
•
Obrigado :)