Fiquem atentos: Mongrel
Posted on September 27, 2006
Estou no capítulo sobre Deployment de Rails em ambiente de produção. Afinal, qual a vantagem de se desenvolver um grande aplicativo, totalmente Ajax … se não sabemos como colocá-lo para o uso de nossos usuários?
The Usual Suspects são Apache2 + FastCGI, LightTPD + FastCGI. Não há muitas outras opções. WEBRick é um servidor competente para nossos testes durante o desenvolvimento mas dificilmente serve para produção.
Temos dispatch.cgi, o que significa CGI. Acredito que este suporte exista apenas para o último caso, talvez para algo próximo ao Dia do Apocalipse. Nah, CGI não é opção, esqueçam.
Mas Apache tem o mod_ruby. Também não, é um projeto pouco atualizado, instável e jamais serviria para produção.
Também temos ouvido falar de SCGI, uma simplificação do FastCGI, mas ainda é muito novo. Falta amadurecer para receber a responsabilidade de nossa produção.
Bom, então só pode ser Apache2 + FCGI. Também não. Infelizmente o projeto mod_fastcgi estava quase abandonado, tem vários problemas de deixar processos zumbis sobrando, defuntos. Não desejo esse tipo de problema para ninguém.
Chegamos ao LightTPD + FCGI, que é a opção recomendada pelo próprio David Hansson e é usado por todos os seus produtos na 37signals. De fato, Lighty vem sendo muito bem desenvolvido, tem performance e robustez quase comparáveis ao Apache e o melhor: tem um excelente suporte a FCGI. Para ambiente *nix talvez seja mesmo o ideal.
Mas e ambientes Windows? Lighty é compilado usando Cygwin e ainda é um estágio muito experimental. Não tem suporte para se instalar como um Windows Service, dependendo de produtos de terceiros. Há pouca maturidade nisso.
Mas felizmente, Zed Shaw, o criador de um suporte ao SCGI para Rails trouxe uma alternativa muito mais atraente: Mongrel. Ele é uma biblioteca e um servidor HTTP totalmente feito em Ruby. Para aqueles que não fugiram das aulas de compiladores no curso de Ciências da Computação, seu processador de HTTP foi feito com Ragel.
“Mas WEBRick também é feito em Ruby”. Acreditem, não analisei ainda para saber a mágica, mas Zed Shaw fez um milagre. Sim, o interpretador Ruby talvez seja um dos mais lentos, mesmo assim Mongrel é muito bom, e com as capacidades de cache do Rails, ele é a melhor solução hoje. Funciona muito bem em ambiente unix e também tem suporte muito bom para Windows. Pode ser instalado via RubyGems e ainda se instala como Windows Service.
Com suporte para cluster com Mongrel_Cluster, é ainda mais simples de escalar. Tanto Apache quanto Lighty tem bons suportes a proxy reverso e load balancing, o que facilita mais ainda colocar os velhos conhecidos na linha de frente e Mongrel no backend, servindo Rails. Acredito que este seja o melhor denominador comum de todas as soluções de produção.
Prestem atenção ao trabalho de Zed Shaw, ainda vem novidades por aí. Sabendo que muitos brasileiros se vêem obrigados a lidar com ambientes Windows em seus clientes, esta é uma excelente notícia a todos.
blog comments powered by Disqus
Archives
- February 12(2)
- December 11(1)
- November 11(4)
- October 11(6)
- September 11(5)
- August 11(1)
- July 11(5)
- May 11(4)
- April 11(11)
- March 11(4)
- February 11(3)
- January 11(4)
- December 10(9)
- November 10(2)
- October 10(10)
- September 10(4)
- August 10(6)
- July 10(14)
- June 10(16)
- May 10(8)
- April 10(14)
- March 10(9)
- February 10(6)
- January 10(14)
- December 09(10)
- November 09(10)
- October 09(7)
- September 09(19)
- August 09(4)
- July 09(12)
- June 09(7)
- May 09(12)
- April 09(11)
- March 09(9)
- February 09(9)
- January 09(12)
- December 08(14)
- November 08(20)
- October 08(15)
- September 08(18)
- August 08(25)
- July 08(13)
- June 08(21)
- May 08(29)
- April 08(27)
- March 08(12)
- February 08(32)
- January 08(31)
- December 07(27)
- November 07(30)
- October 07(25)
- September 07(28)
- August 07(16)
- July 07(15)
- June 07(16)
- May 07(7)
- April 07(13)
- March 07(8)
- February 07(9)
- January 07(24)
- December 06(17)
- November 06(17)
- October 06(15)
- September 06(38)




