26
Dicas de Escabilidade @brunoandradd

Heroku escalabilidade

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Heroku escalabilidade

Dicas de Escabilidade

@brunoandradd

Page 2: Heroku escalabilidade

Eu..

Programo desde 2001Ruby desde 2008Rails desde 2.xPoo/Arquitetura"Devops"

@[email protected]

Page 3: Heroku escalabilidade

Em Partes

1. Heroku

2. Minha App no heroku

3. Dicas de Escalabilidade

Page 4: Heroku escalabilidade

Heroku

Paas - Platform as a Service

Amazon Ec2

Stacks(Celadon Cedar)

Page 5: Heroku escalabilidade

Como Funciona?

web

Routing mesh

Dyno Dyno

Dyno Dyno

Dyno Dyno

Page 6: Heroku escalabilidade

Dyno?

Page 7: Heroku escalabilidade

Dyno

Linux Container - lxc

Web Dyno

Worker Dyno

Page 8: Heroku escalabilidade

Dyno Linux Container(lxc)

512MB of RAM, 1GB of swap

8 cpu cores(intel xeon 2.67ghz)*

FileSystem ReadyOnly

Ubuntu 10.04 LTS

Page 9: Heroku escalabilidade

Dyno - Cuidados!

500mb x 3 = Restart,R15 erro

Requests 30 segundos

Derruba sua app,após 1hr inativa

Page 10: Heroku escalabilidade

Minha app no Heroku

e agora?

Page 11: Heroku escalabilidade

Minha app no Heroku

use unicorn!!

Page 12: Heroku escalabilidade

Minha app no Heroku

config/unicorn.rb

Procfile

Page 13: Heroku escalabilidade

Minha app no Heroku

Assets Pipeline!

Page 14: Heroku escalabilidade

Assets Pipeline!Crie um repositorio no s3 (amazon)

Adicione as gems: asset_sync fog

Configure em production.rb:config.action_controller.asset_host = "http://#{ENV

['FOG_DIRECTORY']}.s3.amazonaws.com"

Configure em application.rb: config.assets.initialize_on_precompile = false

Page 15: Heroku escalabilidade

Minha app no Heroku

Versão do Ruby

Page 16: Heroku escalabilidade

Minha app no HerokuVersão do Ruby

Bundle 1.2.0.pre.1ruby '1.9.3' Gemfile

Page 17: Heroku escalabilidade

Minha app no Heroku

Versões

Page 18: Heroku escalabilidade

Minha app no Heroku

heroku releases

Page 19: Heroku escalabilidade

Minha app no Heroku

Time Zone

Page 20: Heroku escalabilidade

Minha app no Heroku

heroku config:add TZ='America/Recife'

Page 21: Heroku escalabilidade

Minha app no Heroku

Colocando em Manutenção

Page 22: Heroku escalabilidade

Minha app no Heroku

heroku maintenance:on

heroku config:add MAINTENANCE_PAGE_URL=url

Page 23: Heroku escalabilidade

Dicas de EscalabilidadeTenha backup/restore automatico gem 'oink'

Monitore Actions lentas

Monitore suas actions mais acessadas

Use postgresql do heroku($9.00)

Use o maximo async possivel

Page 24: Heroku escalabilidade

Mais uma coisa!

Buildpacks

Page 25: Heroku escalabilidade

Conclusão

Start Rapido Sem Infra Custo baixo

Contras: Latência Upload Arquivos Ambiente customizado

Prós:

Page 26: Heroku escalabilidade

Obrigado!!

@brunoandradd