Top Banner
Dividir para conquistar Usando Ruby
44

Dividir para conquistar

Jan 24, 2018

Download

Technology

Bruno Grasselli
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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!