SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a Heroku escalabilidade

12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com DockerWellington Silva
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!magnunleno
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Wallison Marra
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasVitor Mattos
 
Atualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xAtualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xRodrigo Urubatan
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETAlessandro Binhara
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucaoFernando Ike
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalargustavomtborges
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoArtur Felipe Sousa
 
TDC2016POA | Trilha IoT - Controlando AR Drone com PHP
TDC2016POA | Trilha IoT -  Controlando AR Drone com PHPTDC2016POA | Trilha IoT -  Controlando AR Drone com PHP
TDC2016POA | Trilha IoT - Controlando AR Drone com PHPtdc-globalcode
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoWeverton Timoteo
 

Similar a Heroku escalabilidade (20)

Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
 
12 factor app. Melhor com Docker
12 factor app. Melhor com Docker12 factor app. Melhor com Docker
12 factor app. Melhor com Docker
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
Python e suas aplicações
Python e suas aplicaçõesPython e suas aplicações
Python e suas aplicações
 
Python na Web
Python na WebPython na Web
Python na Web
 
Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis Docker 101 e Ambientes Imutáveis
Docker 101 e Ambientes Imutáveis
 
Smaller apk
Smaller apkSmaller apk
Smaller apk
 
BDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemasBDD: Torne viva a documentação de seus sistemas
BDD: Torne viva a documentação de seus sistemas
 
Ionic 3
Ionic 3Ionic 3
Ionic 3
 
Cygwin
CygwinCygwin
Cygwin
 
Atualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.xAtualizando rails do 2.x para 3.x
Atualizando rails do 2.x para 3.x
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Container revolucao
Container revolucaoContainer revolucao
Container revolucao
 
Docker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalarDocker Swarm - Sua aplicação pronta para escalar
Docker Swarm - Sua aplicação pronta para escalar
 
Django deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produçãoDjango deploy - Como servir aplicações Django em produção
Django deploy - Como servir aplicações Django em produção
 
Heroku
HerokuHeroku
Heroku
 
Plack
PlackPlack
Plack
 
TDC2016POA | Trilha IoT - Controlando AR Drone com PHP
TDC2016POA | Trilha IoT -  Controlando AR Drone com PHPTDC2016POA | Trilha IoT -  Controlando AR Drone com PHP
TDC2016POA | Trilha IoT - Controlando AR Drone com PHP
 
Como definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicaçãoComo definir a quantidade de workers para sua aplicação
Como definir a quantidade de workers para sua aplicação
 

Heroku escalabilidade