dividir para conquistar

44
Dividir para conquistar Usando Ruby

Upload: bruno-grasselli

Post on 24-Jan-2018

455 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Dividir para conquistar

Dividir para conquistarUsando Ruby

Page 2: Dividir para conquistar

Bruno Grasselli@grasselli

Page 3: Dividir para conquistar

MinhaApp

Page 4: Dividir para conquistar

MinhaApp

Produtos/Admin

Produtos/Site

Usuários/Admin

Page 5: Dividir para conquistar

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

Page 6: Dividir para conquistar

Problemas com merge!

Page 7: Dividir para conquistar

Feature de uma equipe quebrando a outra

Page 8: Dividir para conquistar

Rollback único!

Page 9: Dividir para conquistar

Fez Sucesso!

Page 10: Dividir para conquistar

MinhaApp

Page 11: Dividir para conquistar

MinhaApp

Page 12: Dividir para conquistar

MinhaApp MinhaApp MinhaApp

MinhaApp MinhaApp MinhaApp

MinhaApp MinhaApp MinhaApp

Page 13: Dividir para conquistar

Escalar ficou caro!

Page 14: Dividir para conquistar

Pense em dividir!

Page 15: Dividir para conquistar

1

Page 16: Dividir para conquistar

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

Page 17: Dividir para conquistar

Admin

Site

Page 18: Dividir para conquistar

Escala mais fácil!

Page 19: Dividir para conquistar

Admin

Site

Page 20: Dividir para conquistar

Admin

Site

Admin

Site Site Site Site Site

Page 21: Dividir para conquistar

Admin

Produtos Imagens Usuários

Site

Page 22: Dividir para conquistar

REST

Page 23: Dividir para conquistar

REST

• ActiveResource

Page 24: Dividir para conquistar

REST

• ActiveResource

• Restfulie

Page 25: Dividir para conquistar

REST

• ActiveResource

• Restfulie

• Roar

Page 26: Dividir para conquistar

Aplicações mais simples

Page 27: Dividir para conquistar

Aplicações mais simples

SinatraRack

Page 28: Dividir para conquistar

Menor impacto em produção

Page 29: Dividir para conquistar

2

Page 30: Dividir para conquistar

MinhaApp

Produtos/Admin

Usuários/Admin

Imagens/Admin

Relatórios/Admin

Índice para buscaCrop de imagens

Expurgo Cache

Page 31: Dividir para conquistar

Processamento assíncrono com filas

Page 32: Dividir para conquistar

Admin

Consumidorcrop de imagens

Consumidoríndice para busca

Consumidorexpurgo de cache

Fila

Page 33: Dividir para conquistar

Clientes de fila (RabbitMQ)

• AMQP

• Bunny

Page 34: Dividir para conquistar

Consumidores

• DaemonKit

Page 35: Dividir para conquistar

3

Page 36: Dividir para conquistar

MinhaApp

Produtos/Admin

Usuários/Admin

Imagens/Admin

Relatórios/Admin

Page 37: Dividir para conquistar

Rails Engines!

Page 38: Dividir para conquistar

MinhaApp

Produtos

Usuários

Imagens

Relatórios

Page 39: Dividir para conquistar

Melhor paralelismo

Page 40: Dividir para conquistar

Resumindo...

Page 41: Dividir para conquistar

Não é fácil

Page 42: Dividir para conquistar

IMHO, compensa!

Page 43: Dividir para conquistar

Dúvidas?

Page 44: Dividir para conquistar

Obrigado!