VidaGeek.net

Linux, Open-source, Programação e Produtividade

FISL 10: Scaling Rails

Na segunda palestra que assisti (na verdade terceira, mas a primeira não conta porque, infelizmente, dormi :P), Sylvestre Mergulhão deu continuidade à palestra do Fabio Akita e falou sobre escalabilidade utilizando Rails no site RedeParede, um site de classificados com versões para toda a América Latina.

Sylvestre começou falando da performance do site e o sistema de indexação do Google (o Googlebot). Falou que o Googlebot afetava perceptivelmente a performance do site quando estava indexando e era responsável por aproximadamente metade das requisições. Levantou também algumas teorias sobre o Googlebot (parte que achei mais interessante na palestra):

  1. Sitemap em XML => mais visitas
  2. Rank também é determinado por capacidade do site de receber visitas
  3. Queda de serviço => menos indexação por um bom tempo
  4. Mais atualizações => mais indexação

Depois disso, Mergulhão falou um pouco sobre a estrutura física dos servidores do site. São seis máquinas atrás de um balanceador de carga, cada uma com cinco instâncias rodando atrás do NGINX. Falou também um pouco do memcached, utilizado para fazer cache de qualquer string, que está sendo utilizado em massa pelo site. Segundo ele, é uma biblioteca fácil de usar, apesar de pouca documentação. Deu também exemplos de configuração e de uso. Falou mais um pouco sobre problemas com caching (página muda de acordo com usuário) e sobre outros tipos de caching: de página (falou que era melhor usar o cache de HTTP com ETags), de ações (muito interessante: permite guardar o resultado de uma ação no cache; dobrou a capacidade de processamento do servidor deles) e de fragmentos (para guardar pedaços de páginas).

Por fim, falou um pouco sobre o ganho de performance e de tempo de desenvolvimento (por não ter que usar mais SQL) com o uso do Sphinx.

O começo da palestra foi interessante, mas minha impressão final é de que o palestrante não ficou muito feliz com o resultado da migração do site, antes em PHP, para Rails. Outro comentário que posso fazer é que já trabalhei num projeto em Rails com Sphinx e a equipe não gostou muito; acabamos mudando para o Solr.

Posts Relacionados:

  • FISL 9.0: Entrando nos trilhos - Introdução a Ruby on Rails
  • Rails Vs Java e PHP
  • FISL 10: Agilidade e Qualidade de Projetos com Ruby on Rails
  • Inscrição de Caravanas para o FISL 8
  • FISL 8.0
  • FISL 10: Seaside versus Rails
  • Rails Summit
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    Ontem, Fabio Akita deu uma palestra no FISL 10 sobre Ruby on Rails. Foi uma palestra lotada e divertida.

    A palestra começou com uma breve introdução ao arcabouço, um outline da palestra. O Fabio falou de como surgiu o arcabouço, qual era seu objetivo inicial, falou das atuais versões de Ruby, de Rails e do JRuby e da importância da comunidade para o projeto.

    Em seguida, na parte mais divertida da palestra, o Akita mostrou alguns dados sobre a performance da máquina virtual de Ruby. Mostrou, por exemplo, o ganho de velocidade da versão 1.8 para a versão 1.9 da máquina virtual “padrão” de Ruby por meio de um jogo muito interessante chamado “Rubystein” que eu, pelo menos, não conhecia nessa versão… hehehe). O jogo, aliás, utiliza uma biblioteca para acessar o hardware diretamente para fazer o desenho 2D: Gosu.

    Depois da demostração de ganho de velocidade realmente impressionante da nova máquina virtual, falou um pouco da importância da comunidade para se aprender e divulgar Ruby on Rails. Citou, inclusive, alguns sites muito bons para ficar por dentro das últimas novidades sobre o projeto:

    Em seguida, Fabio falou de alguns recursos que já vem embutidos no Rails mas que nem todo mundo lembra, motivo pelo qual, segundo ele, algumas pessoas xingam Rails sem motivo. Dentre essas funcionalidades, vale destacar o suporte a autenticação HTTP básica, Atom, internacionalização (i18n para os íntimos), XML, JSON, e-mail e caching.

    Para terminar, o Akita fez uma demonstração de algumas funcionalidades incrementando o já famoso blog de 15 minutos. Criou uma área de administração com login, colocou caching, um editor de texto mais incrementado e suporte a upload de arquivos, para citar as mais legais.

    Enfim, aprendi algumas coisas novas com essa palestra; gostei! E acho que também agradou a quem não conhecia quase nada de Rails. Parabéns, Akita. Mas faltou alguma coisa de metodologias ágeis na palestra (pelo título).

    O código que ele mostrou na palestra está no GitHub e os slides, no SlideShare.

    Assim que der tempo falo sobre as outras três palestras que assisti ontem, apesar da visita do nosso presidente ter atrapalhado um pouco o andamento do evento…

    Posts Relacionados:

  • FISL 9.0: Entrando nos trilhos - Introdução a Ruby on Rails
  • Rails Vs Java e PHP
  • Rails Summit
  • Inscrição de Caravanas para o FISL 8
  • Ruby e Rails no Mundo Real
  • FISL 8.0
  • FISL 10: Primeiro dia, organização e dojo
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.

    Ao entrar na sala John Maddog Hall, uma das maiores desse FISL, 5 minutos antes do início da palestra, eu esperava muitas coisas, mas certamente não esperava encontrar uma sala de palestras completamente lotada, com até mesmo pessoas de pé para assistir o Fabrício falar.

    A motivação dessa palestra é algo também interessante: o palestrante sente que Rails acabou sendo o foco da trilha de Ruby e acha que a linguagem em si merecia mais destaque, embora mesmo sua palestra fale de Rails. A palestra ensinou Ruby básico, um pouco de rails e explicou que Ruby é baseado em Convention over configuration e usa MVC naturalmente - tudo isso demonstrado na construção de uma pequena aplicação funcional.

    Passando por a criação de uma página com formulário simples e padrão de Ruby on Rails e seguindo incrementalmente e de forma bastante natural - fazendo alterações à medida que erros foram aparecendo e resolvendo-os. Não sei se propositalmente ou acidentalmente, mas os incontáveis erros que apareceram durante a palestra foram até instrutivos, já que o palestrante mostrou o que causava cada um deles e como eram resolvidos.

    De passo em passo, de erro em erro e passando, eventualmente, pelo scaffold uma aplicação simples de perguntas com usuários. Apenas, uma pena, não deu tempo de terminar essa aplicação. A versão completa dessa aplicação pode ser vista clicando aqui: Aplicação de Perguntas.

    Posts Relacionados:

  • Rails Vs Java e PHP
  • FISL 10: Agilidade e Qualidade de Projetos com Ruby on Rails
  • Retrospectiva 2008
  • Rails Summit
  • Inscrição de Caravanas para o FISL 8
  • Ruby e Rails no Mundo Real
  • FISL 8.0
  • Acompanhe-nos por RSS, por Email ou via Twitter.
    Veja como ter um desconto no Dreamhost: um excelente servidor web.