Rails nas Nuvens

1,850 views
1,815 views

Published on

Palestra ministrada no RubyConfBR em 03/11/2011.

Tópicos abordados:
- Ferramentas: RVM, Phusion Passenger, Nginx, Apache, Ubuntu Server, Chef, Capistrano, MySQL
- Serviços: Locaweb Cloud Server Pro, UOL CLOUD, Amazon EC2, Linode, Heroku

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,850
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rails nas Nuvens

  1. 1. Rails nas Nuvens @sauloarruda Imagem: http://www.flickr.com/photos/jan2you/2646026559/sizes/z/in/photostream/
  2. 2. by “Saulo Arruda”• Sócio e um dos fundadores da• 29 anos• Pai de 2 filhas• 12 anos de código e cabelos brancos• Programador, DevOP, cantora, atriz, modelo...
  3. 3. O que temos?• Ferramentas• Serviços• Práticas• E agora?
  4. 4. http://www.flickr.com/photos/harapekodoggybag/6029300410/sizes/l/in/photostream/Ferramentas
  5. 5. Ferramentas• Ruby 1.9+ com RVM• Phusion Passenger (modrails)• Nginx ou Apache• Ubuntu Server• Chef e Capistrano• MySQL• JMeter e Apache AB
  6. 6. Ruby 1.9+ com RVM• Facilita atualização do Ruby• Melhora gerenciamento de gems• Um servidor para várias aplicações
  7. 7. Phusion Passenger• Setup simples• Boa performance• Bom gerenciamento• Funciona com Nginx ou Apache
  8. 8. Nginx• Rápido com baixo consumo de memória• Configuração simples• Módulos interessantes
  9. 9. Apache• Maior suporte da comunidade• Integração mais simples com outras tecnologias (ex. PHP)• Muitas opções de módulos
  10. 10. Ubuntu Server• Excelente compatibilidade• Fácil administração• Suporte de longo prazo 10.4 LTS - até 2015
  11. 11. Chef• Automatização de configuração de infra• Hosted Chef!• Configurar servidor com código Ruby :P
  12. 12. Capistrano• Deploy automatizado• Etapas: pull, bundle, migrate, assets, restart, etc.• Gerenciamento de configurações e recursos
  13. 13. MySQL• Boa performance e fácil gerenciamento• Muito simples de replicar• Boa integração com Ruby
  14. 14. JMeter• Teste de Performance• Fácil construção de planos de testes• Execução simultânea em várias máquinas
  15. 15. Apache AB• Medição de Threshold• Bom para testar concorrência• Configuração simples, ideal para páginas com grande volume de acesso
  16. 16. http://www.flickr.com/photos/49587000@N07/6151142127/sizes/l/in/photostream/Serviços
  17. 17. Serviços• Brasil • Locaweb Cloud Server Pro • UOL CLOUD• Mundo • Amazon EC2 • Linode • Heroku • Engine Yard
  18. 18. Locaweb Cloud Server Pro• Simples virtualização• Possibilidade de upgrade• Templates (novo recurso)• R$ 199,00 por 2 GB + 2 vCPUs
  19. 19. UOL CLOUD• Também Simples Virtualização• Igual possibilidade de upgrade• Não tem templates• R$ 119,00 por 2GB + 2vCPU
  20. 20. Amazon EC2• Melhor preço + Free Tier• Mais opções de serviços• Excelente gerenciamento• ~R$ 80,00 por 1,7GB + 2vCPU (reserved)
  21. 21. Linode• Simples virtualização mas muito eficiente• Setup simplificado• Preço competitivo• ~ R$ 140,00 por 2GB
  22. 22. Heroku• Faz tudo pra você: App Server + Database• Continuos Delivery simplificado• Serviços adicionais (add-ons)• US$ 35,00 por dyno + US$ 15,00 por 20GB de database
  23. 23. Engine Yard• Faz tudo pra você: App Server + Database• Continuos Delivery simplificado• Deploy simplificado• ~R$ 300,00 por 1,7GB + 2vCPU
  24. 24. http://www.flickr.com/photos/49587000@N07/6151720918/sizes/l/in/photostream/Práticas
  25. 25. Práticas• Configuração do servidor• Deploy contínuo• Replicação• Backup• Testar carga e performance• Alta disponibilidade
  26. 26. Cenário
  27. 27. Configuração do Servidor• Automatizar a configuração com Chef: • Instalar RVM e Ruby • Instalar Nginx/Apache • Instalar MySQL • Outras configs (segurança, backup, replicação, load balancer, etc) • Primeiro Deploy
  28. 28. Deploy Contínuo• Deploy com Capistrano • Configurar Git/SVN • Configurar cap no projeto • Permissões e tarefas • Configurar nós
  29. 29. Replicação• Replicação do MySQL• Replicação de Arquivos (rsync)• Uso de S3• Uso de CDN
  30. 30. Backup• RDiff • Sincronização de arquivos com versionamento• Bacula • Solução mais evoluída• MySQL Dump
  31. 31. Testar carga e performance• Detectar pontos fracos• Oportunidades de otimização• Simulação de horários de pico• Medição de tempo de resposta• Medição do consumo de recursos
  32. 32. Alta Disponibilidade• Load Balancer• Monitorar e subir instâncias automaticamente• Memcache• Cluster de MySQL• Sistema de Filas• NoSQL
  33. 33. http://www.flickr.com/photos/49587000@N07/5968744585/sizes/l/in/photostream/E agora?
  34. 34. E agora?• Quando usar Cloud Computing • Começar rápido • Escalar rápido • Baixo custo para iniciar • Gerenciamento simplificado
  35. 35. E agora?• Quando NÃO usar Cloud Computing • Muito uso de Disco • Cloud pode ter performance variável • Pode ser mais barato para grande volume
  36. 36. http://www.flickr.com/photos/49587000@N07/6033777706/sizes/l/in/photostream/Obrigado!
  37. 37. Perguntas?• Saulo Arruda • Twitter: @sauloarruda • Email: saulo@jera.com.br • Blog: http://sauloarruda.eti.br

×