Dicas de Escabilidade




@brunoandradd
Eu..
Programo desde 2001
Ruby desde 2008
Rails desde 2.x
Poo/Arquitetura
"Devops"

@brunoandradd
bruno77sa@gmail.com
Em Partes
1. Heroku

2. Minha App no heroku

3. Dicas de Escalabilidade
Heroku
Paas - Platform as a Service

Amazon Ec2

Stacks(Celadon Cedar)
Como Funciona?
                         Dyno   Dyno


web

                        Dyno    Dyno




                        Dyno    Dyno
         Routing mesh
Dyno?
Dyno
Linux Container - lxc

Web Dyno

Worker Dyno
Dyno
Linux Container(lxc)

512MB of RAM, 1GB of swap

8 cpu cores(intel xeon 2.67ghz)*

FileSystem ReadyOnly

Ubuntu 10.04 LTS
Dyno - Cuidados!
500mb x 3 = Restart,R15 erro

Requests 30 segundos

Derruba sua app,após 1hr inativa
Minha app no Heroku




      e agora?
Minha app no Heroku
    use unicorn!!
Minha app no Heroku
     config/unicorn.rb



         Procfile
Minha app no Heroku


   Assets Pipeline!
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
Minha app no Heroku


   Versão do Ruby
Minha app no Heroku
      Versão do Ruby

Bundle 1.2.0.pre.1
ruby '1.9.3' Gemfile
Minha app no Heroku


      Versões
Minha app no Heroku


   heroku releases
Minha app no Heroku


     Time Zone
Minha app no Heroku


heroku config:add TZ='America/Recife'
Minha app no Heroku


Colocando em Manutenção
Minha app no Heroku
 heroku maintenance:on

heroku config:add
MAINTENANCE_PAGE_URL=url
Dicas de Escalabilidade
Tenha backup/restore automatico

gem 'oink'

Monitore Actions lentas

Monitore suas actions mais acessadas

Use postgresql do heroku($9.00)

Use o maximo async possivel
Mais uma coisa!



       Buildpacks
Conclusão
Prós:
Start Rapido
Sem Infra
Custo baixo

Contras:
Latência
Upload Arquivos
Ambiente customizado
Obrigado!!




@brunoandradd

Heroku escalabilidade