batch - escalando um sistema sem fermento

Post on 19-May-2015

2.058 views 2 download

description

Batch - escalando um sistema sem fermentopalestra apresentada por mim (@qmx) e pelo @scalone no #rubyreal2010

Transcript of batch - escalando um sistema sem fermento

BatchEscalando um sistema sem “fermento”

@qmx@scalone

1

terça-feira, 1 de junho de 2010

Batch?

2

terça-feira, 1 de junho de 2010

pão?3

terça-feira, 1 de junho de 2010

lucro?4

terça-feira, 1 de junho de 2010

demanda5

terça-feira, 1 de junho de 2010

mais pão?6

terça-feira, 1 de junho de 2010

mais lucro?7

terça-feira, 1 de junho de 2010

mas....

8

terça-feira, 1 de junho de 2010

isso escala?9

terça-feira, 1 de junho de 2010

NOterça-feira, 1 de junho de 2010

11

terça-feira, 1 de junho de 2010

#comofaz?11

terça-feira, 1 de junho de 2010

padoca?12

terça-feira, 1 de junho de 2010

mais lucro?13

terça-feira, 1 de junho de 2010

e daí?

14

terça-feira, 1 de junho de 2010

fazer software

15

terça-feira, 1 de junho de 2010

é tão artesanal quanto

16

terça-feira, 1 de junho de 2010

fazer pão

17

terça-feira, 1 de junho de 2010

e daí?18

terça-feira, 1 de junho de 2010

portal do pão19

terça-feira, 1 de junho de 2010

ruby, obviamente

20

terça-feira, 1 de junho de 2010

portal do pão

21

terça-feira, 1 de junho de 2010

portal do pão

• fotos de pão caseiro

21

terça-feira, 1 de junho de 2010

portal do pão

• fotos de pão caseiro

• produtos para fazer pão

21

terça-feira, 1 de junho de 2010

portal do pão

• fotos de pão caseiro

• produtos para fazer pão

• receitas de pão

21

terça-feira, 1 de junho de 2010

portal do pão

• fotos de pão caseiro

• produtos para fazer pão

• receitas de pão

• comunidade

21

terça-feira, 1 de junho de 2010

portal do pão

• fotos de pão caseiro

• produtos para fazer pão

• receitas de pão

• comunidade

• pão opensource?

21

terça-feira, 1 de junho de 2010

caiu na rede22

terça-feira, 1 de junho de 2010

volume de acessos23

acessos / m

terça-feira, 1 de junho de 2010

volume de acessos23

10h 12h 14h 16h 18h0

50

100

150

200

acessos / m

terça-feira, 1 de junho de 2010

volume de acessos23

10h 12h 14h 16h 18h0

50

100

150

200

1

acessos / m

terça-feira, 1 de junho de 2010

volume de acessos23

10h 12h 14h 16h 18h0

50

100

150

200

1 1

acessos / m

terça-feira, 1 de junho de 2010

volume de acessos23

10h 12h 14h 16h 18h0

50

100

150

200

1 110

acessos / m

terça-feira, 1 de junho de 2010

volume de acessos23

10h 12h 14h 16h 18h0

50

100

150

200

1 110

200

acessos / m

terça-feira, 1 de junho de 2010

volume de acessos23

10h 12h 14h 16h 18h0

50

100

150

200

1 110

200

0

acessos / m

terça-feira, 1 de junho de 2010

R.I.P.24

terça-feira, 1 de junho de 2010

soluções!

25

terça-feira, 1 de junho de 2010

problemas de banco?

26

terça-feira, 1 de junho de 2010

problemas de banco?DBA.current_dba.kill!

26

terça-feira, 1 de junho de 2010

problemas de banco?DBA.current_dba.kill!

dba = DBA.new

26

terça-feira, 1 de junho de 2010

problemas de banco?DBA.current_dba.kill!

dba = DBA.newdba.acts_as_jedi

26

terça-feira, 1 de junho de 2010

problemas de infra?

27

terça-feira, 1 de junho de 2010

problemas de infra?

torrar grana pra aliviar consciência27

terça-feira, 1 de junho de 2010

problemas no código?

28

terça-feira, 1 de junho de 2010

NOterça-feira, 1 de junho de 2010

architecture fail30

terça-feira, 1 de junho de 2010

caffeine fail31

terça-feira, 1 de junho de 2010

no desespero...32

terça-feira, 1 de junho de 2010

consultoria [A-Z]{3}33

terça-feira, 1 de junho de 2010

qual era o problema mesmo?

34

terça-feira, 1 de junho de 2010

qual era o problema mesmo?

35

terça-feira, 1 de junho de 2010

investigando o problema36

terça-feira, 1 de junho de 2010

37

terça-feira, 1 de junho de 2010

upload de imagens?

37

terça-feira, 1 de junho de 2010

imagemagick

38

terça-feira, 1 de junho de 2010

o usuário precisa mesmo ver a imagem

na hora?

39

terça-feira, 1 de junho de 2010

NOterça-feira, 1 de junho de 2010

DJ

41

terça-feira, 1 de junho de 2010

DJ - Vantagens

• Excelente documentação e tutoriais

• Suporta prioridades

• Curva de aprendizado baixa

• Múltiplos Workers

42

terça-feira, 1 de junho de 2010

DJ - Desvantagens

43

terça-feira, 1 de junho de 2010

DJ - Desvantagens

• Depende de ActiveRecord, mas suporta backend MongoMapper

43

terça-feira, 1 de junho de 2010

DJ - Desvantagens

• Depende de ActiveRecord, mas suporta backend MongoMapper

• Delayed Job usa UTC, cuidado

43

terça-feira, 1 de junho de 2010

DJ - Desvantagens

• Depende de ActiveRecord, mas suporta backend MongoMapper

• Delayed Job usa UTC, cuidado

• Engessado em tarefas rake

43

terça-feira, 1 de junho de 2010

DJ - Detalhes

• sinatra-dj

• imcompatível com rails < 2.2

• usa daemon ou worker(s)

44

terça-feira, 1 de junho de 2010

DJ45

terça-feira, 1 de junho de 2010

DJ46

terça-feira, 1 de junho de 2010

resolvendo o problema

47

terça-feira, 1 de junho de 2010

delayed_paperclip!48

terça-feira, 1 de junho de 2010

delayed_paperclip49

terça-feira, 1 de junho de 2010

upload de vídeo?

50

terça-feira, 1 de junho de 2010

o usuário precisa esperar até o fim da

conversão?

51

terça-feira, 1 de junho de 2010

NOterça-feira, 1 de junho de 2010

BJ

53

terça-feira, 1 de junho de 2010

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

• Simples e Robusta

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

• Simples e Robusta

• Instalação fácil

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

• Simples e Robusta

• Instalação fácil

• Curva de aprendizado baixa

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

• Simples e Robusta

• Instalação fácil

• Curva de aprendizado baixa

• Ambiente de execução no nível do SO (syscall)

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

• Simples e Robusta

• Instalação fácil

• Curva de aprendizado baixa

• Ambiente de execução no nível do SO (syscall)

• Suporta níveis de prioridade

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

• Simples e Robusta

• Instalação fácil

• Curva de aprendizado baixa

• Ambiente de execução no nível do SO (syscall)

• Suporta níveis de prioridade

• Roda no windows, acredite!

54

BJ - Vantagens

terça-feira, 1 de junho de 2010

BJ - Desvantagens

55

terça-feira, 1 de junho de 2010

BJ - Desvantagens

• Execução serial

55

terça-feira, 1 de junho de 2010

BJ - Desvantagens

• Execução serial

• Dependente de ActiveRecord

55

terça-feira, 1 de junho de 2010

BJ - Desvantagens

• Execução serial

• Dependente de ActiveRecord

• Documentação, que documentação?

55

terça-feira, 1 de junho de 2010

BJ56

terça-feira, 1 de junho de 2010

resolvendo o problema

57

terça-feira, 1 de junho de 2010

BJ58

terça-feira, 1 de junho de 2010

fácil, não?

59

terça-feira, 1 de junho de 2010

aquele relatório insano #medo

60

terça-feira, 1 de junho de 2010

precisa ser “online”?

61

terça-feira, 1 de junho de 2010

NOterça-feira, 1 de junho de 2010

resquedj on steroids

63

terça-feira, 1 de junho de 2010

resque

• persistente

• interface de administração

• rápido!!!

64

terça-feira, 1 de junho de 2010

resque-web65

terça-feira, 1 de junho de 2010

let’s batch!

66

terça-feira, 1 de junho de 2010

e daí?

67

terça-feira, 1 de junho de 2010

feedback

68

• ajax

• email

• impedir de agendar diversas vezes a mesma tarefa

• comet / websockets

terça-feira, 1 de junho de 2010

monitoramento

69

porque, afinal, ...

terça-feira, 1 de junho de 2010

...se não cuidar...70

terça-feira, 1 de junho de 2010

...já viu né...71

terça-feira, 1 de junho de 2010

Monitoramento

72

• Monit

• God

• Munin

terça-feira, 1 de junho de 2010

cases

• AutoSEG

• github

73

terça-feira, 1 de junho de 2010

obrigado!@qmx => http://qmx.me

@scalone => http://twitter.com/scalone

74

terça-feira, 1 de junho de 2010

http://www.flickr.com/photos/akshaydavis/186598700/sizes/o/http://www.flickr.com/photos/snidely7/4374153874/sizes/o/http://www.flickr.com/photos/clocky/2660785933/sizes/o/http://hrblogatresearchvoice.files.wordpress.com/2009/05/borat1.jpghttp://www.flickr.com/photos/wheatfields/3673314570/sizes/o/http://www.flickr.com/photos/daffyduke/2872752836/sizes/o/in/set-72157607388359306/http://www.flickr.com/photos/daffyduke/2872753092/sizes/o/in/set-72157607388359306/http://www.flickr.com/photos/daffyduke/2871921629/sizes/l/in/set-72157607388359306/http://www.flickr.com/photos/daffyduke/2872749786/sizes/o/in/set-72157607388359306/http://www.flickr.com/photos/kevinkemmerer/2998086908/sizes/l/http://www.flickr.com/photos/bibliona/538164298/sizes/o/in/photostream/http://www.flickr.com/photos/jonmarulanda/3736708170/sizes/o/http://www.flickr.com/photos/dirgon/446839052/sizes/o/http://www.flickr.com/photos/miemo/210258035/sizes/l/http://www.flickr.com/photos/m4tik/47714548/sizes/o/http://www.flickr.com/photos/muehlinghaus/235334412/sizes/l/http://www.flickr.com/photos/abusx/2181644630/sizes/l/http://www.flickr.com/photos/arthur-caranta/2925352521/sizes/l/http://www.flickr.com/photos/paulobrandao/2670585467/sizes/o/

75

Fotos

Thanks creative commons!

terça-feira, 1 de junho de 2010