20
Estudo de caso do site “ocurioso.com" O Preço da Curiosidade! Rio de Janeiro, 8 de dezembro de 2007 Por Eduardo Rocha

Estudo de caso do "O Curioso" (Rio on Rails)

Embed Size (px)

Citation preview

Estudo de caso do site “ocurioso.com"O Preço da Curiosidade!

Rio de Janeiro, 8 de dezembro de 2007Por Eduardo Rocha

“Ruby é lento, será que vai dar certo?”

Temas principais

ArquiteturaOtimizaçãoServidores

Renda

Arquitetura

Arquitetura

• MySQL usando InnoDB• Rails usando servidor LiteSpeed• Crawler usando Rails + Mechanize

+ Expressões Regulares• Sessão é armazenada no MySQL em

tabelas MyISAM

Arquitetura

• BD e Servidor Web juntos em um máquina, crawler na outra

• Servidor Web rodando 16 instâncias

• Crawler usando 48 processos simultâneos, single-threaded

Servidores

CompartilhadoVPS (Virtual Private Server)

Dedicado

Servidores (Compartilhado)

• Hospedado no Site5 por US$ 6,99 mensais

• Suportou até 2 mil usuários• Gargalo era o abuso da política de

servidores compartilhados

Servidores (VPS)

• Direito a apenas um pedaço da máquina, mas você é root

• Hospedado no RapidVPS por US$ 49,90 mensais (800 MHz, 512 MB, 30 GB)

• Dedicado no VRT Servers pelo mesmo preço

• Suportou até 6 mil usuários• Gargalo era o uso de CPU pelo crawler

Servidores (Dedicado)

• Hospedado no SoftLayer por US$ 259,00 mensais (1x4 Xeon 1.6GHz, 2 GB RAM, 73 GB SCSI)

• Suportou até 20 mil usuários com uma só máquina

• Gargalo também era o crawler, que usava várias threads e poucos processos

Servidores (Atualmente)

• BD + Servidor Web: 2 x 4 Xeon, 8 GB RAM, 73 GB SCSI + 300 GB SCSI por US$ 579,00

• Crawler: 2 x 4 Xeon, 2 GB RAM por US$ 279,00

• Banda adicional: US$ 600,00• Total: US$ 1458,00

Servidores (Gargalos)

• Servidor Web: CPU e compartilhamento com MySQL

• MySQL: mais memória é sempre bom, tabela de scraps é muito grande (IO)

• Crawler: AUTO INC table level lock, CPU, velocidade do Orkut, banda

Otimização

Otimização

• “railsbench” faz tanto benchmarking quanto profiling

• Parse de timestamp no Rails é lento• “template_optimizer” pré-compila

templates rhtml em ruby

Otimização

• Caches apenas em página de conteúdo, que são estáticas

• Migrar de SqlSessionStore para memcached pode ser uma para aliviar o banco

• “Scrap.create(…) é custoso, é melhor “INSERT INTO scraps (…) VALUES (…),(…)

Renda

Renda

• O Curioso é um empreendimento que visa o lucro

• Melhor pagar impostos como PJ do que como PF

Renda

• Receita apenas de publicidade: AdSense, pontoFox, Hi-Midia, Mercado Livre

• Despesas: máquinas, banda, impostos, contador (fixo), INSS (fixo), IOF

• Recebe em dólar turismo, paga em dólar comercial

Renda (AdSense)

• Já teve campanhas da Veja e da Parmalat

• Mudança da área clicável diminuiu a receita pela metade

• Suporte é excelente• Demora para pagar e se der errado

precisa esperar o outro mês

É isso!

Obrigado pela atenção e pelo convite!

www.ocurioso.comwww.acuriosa.com

[email protected]