dividir para conquistar
TRANSCRIPT
Dividir para conquistarUsando Ruby
Bruno Grasselli@grasselli
MinhaApp
MinhaApp
Produtos/Admin
Produtos/Site
Usuários/Admin
MinhaApp
Produtos/Admin
Produtos/Site
Usuários/Admin
Imagens/Admin
Relatórios/Admin
Índice para buscaCrop de imagens
Fale conosco/Site
Fale conosco/Site
Expurgo Cache
Problemas com merge!
Feature de uma equipe quebrando a outra
Rollback único!
Fez Sucesso!
MinhaApp
MinhaApp
MinhaApp MinhaApp MinhaApp
MinhaApp MinhaApp MinhaApp
MinhaApp MinhaApp MinhaApp
Escalar ficou caro!
Pense em dividir!
1
MinhaApp
Produtos/Admin
Produtos/Site
Usuários/Admin
Imagens/Admin
Relatórios/Admin
Índice para buscaCrop de imagens
Fale conosco/Site
Fale conosco/Site
Expurgo Cache
Admin
Site
Escala mais fácil!
Admin
Site
Admin
Site
Admin
Site Site Site Site Site
Admin
Produtos Imagens Usuários
Site
REST
REST
• ActiveResource
REST
• ActiveResource
• Restfulie
REST
• ActiveResource
• Restfulie
• Roar
Aplicações mais simples
Aplicações mais simples
SinatraRack
Menor impacto em produção
2
MinhaApp
Produtos/Admin
Usuários/Admin
Imagens/Admin
Relatórios/Admin
Índice para buscaCrop de imagens
Expurgo Cache
Processamento assíncrono com filas
Admin
Consumidorcrop de imagens
Consumidoríndice para busca
Consumidorexpurgo de cache
Fila
Clientes de fila (RabbitMQ)
• AMQP
• Bunny
Consumidores
• DaemonKit
3
MinhaApp
Produtos/Admin
Usuários/Admin
Imagens/Admin
Relatórios/Admin
Rails Engines!
MinhaApp
Produtos
Usuários
Imagens
Relatórios
Melhor paralelismo
Resumindo...
Não é fácil
IMHO, compensa!
Dúvidas?
Obrigado!