Hospedando frustrações – Sam Soffes
Postado em
Ultimamente tenho lutado com uma boa hospedagem. Aqui estão três histórias sobre algumas coisas que tentei. (Pule para o final da postagem se quiser apenas minha conclusão e não se importa com as histórias.)
Heroku
Eu amo Heroku. Eu fiz um screencast sobre como eles são incríveis há alguns meses. Desde então, mudei todos os meus aplicativos pessoais e todos os aplicativos da Tasteful Works para o Heroku. Eles têm sido ótimos até recentemente.
Tenho duas grandes reclamações (e uma pequena) com o Heroku.
SSL
Estávamos usando SNI SSL para a Tasteful Works Store há algum tempo com grande sucesso. Percebemos que o Google Chrome (assim como o IE 6, com o qual realmente não me importo) não oferece suporte a SNI SSL.
O Chrome realmente grita com você quando você acessa um site usando SNI SSL.

Para contornar isso, você tem que pagar US$ 100 por mês (US$ 95 a mais que o SNI). Isso é uma merda. Heroku é incrível porque é acessível e fácil. Finalmente decidimos engolir tudo e pagar US $ 95 extras por mês. Depois de pagar, eles disseram que levaria de 1 a 2 dias úteis para configurá-lo. Isso é uma merda. Depois de pagar todo esse dinheiro, temos que esperar. Fiquei chateado para dizer o mínimo. Eles configuraram em 8 horas, mas ainda assim.
O motivo do alto preço é o funcionamento do SSL. Basicamente, eles geram outra instância do Amazon EC2 de US$ 70/mês para filtrar todas as suas solicitações em sua grade de roteamento. Isto é necessário porque o SSL exige que um certificado use sempre o mesmo IP. Compreensível, mas de onde vêm os US$ 30 extras ou por que as pessoas não podem compartilhar não faz sentido para mim.
HTTPS
Outra coisa recentemente frustrante com o Heroku é como as variáveis de ambiente SSL funcionam. rack.url_scheme está definido para http ou https dependendo do seu pedido. Muitas peças de Rack dependem disso. Conjuntos Heroku HTTP_X_FORWARDED_PROTO para https se for uma solicitação HTTPS ou omitir completamente essa variável se for uma solicitação HTTP.
Isso não é grande coisa, mas me causou alguns problemas. Eu corrigi o Refraction para funcionar corretamente no Heroku e tudo ficou feliz.
Heroku me disse no IRC que isso ocorre porque as solicitações enviadas internamente são enviadas usando HTTP e apenas HTTPS é usado para as solicitações que chegam à grade de roteamento. Tudo bem e tudo, mas gostaria que eles informassem os aplicativos HTTPS de uma forma mais padronizada.
Empacotador
Eu sei que eles estão trabalhando para melhorar o suporte do Bundler, mas é um pouco doloroso agora. Você não pode usar gems de um repositório git e sempre que ele agrupa seu aplicativo, ele instala todas as suas gems, não apenas as necessárias para o ambiente atual. Então, se você é como eu e tem muitas joias de teste, isso leva uma eternidade.
Nuvem de pátio de máquinas
Alguns dos funcionários da Engine Yard viram meus tweets frustrados do Heroku (o que me faz rir porque eles procuram clientes frustrados do Heroku). Eles me ofereceram duas semanas grátis no Engine Yard Cloud, o que achei muito legal.
Depois de conferir, fiquei muito decepcionado. Tentei configurar o Markdownr em seu serviço. Depois de mexer nele por mais de uma hora, desisti. Markdownr é provavelmente um dos aplicativos Rails mais simples. (Você pode ver o código no GitHub.) Ele usa apenas uma gem além do Rails e não usa banco de dados.
Você deve adicionar todas as joias necessárias em seu portal da web. Isso parece tão idiota. Eu gostaria que ele usasse o Bundler (especialmente porque os caras que o escreveram trabalham na Engine Yard). Nunca consegui iniciar meu aplicativo. Ficava dizendo que a gema i18n não foi encontrada. Achei que isso poderia ser devido ao uso de uma versão de pré-lançamento do Rails, então instalei todos separadamente e ainda não funcionou.
Mandei um e-mail para eles e eles disseram: “Desculpe, parece que a nuvem não é para você”. Se não funciona com os aplicativos mais simples, com o que pode funcionar? O preço também é um pouco alto. (eu também sei um bom amigo que teve uma experiência horrível com eles.)
Nuvem Rackspace
Alguns amigos disseram que gostaram do Rackspace Cloudentão pensei em dar uma olhada, já que estou um pouco chateado com o Heroku por todo o lixo SSL e o Engine Yard Cloud simplesmente me decepcionou. Eu verifiquei o site deles (que não é muito bonito) para obter mais informações, mas não tive vontade de ler um site de marketing mal planejado. No topo da página estava escrito “Ligue para nós”, então pensei: por que não? Fiquei curioso para saber se alguém responderia às 23h.
Um cara do suporte atendeu depois de apenas um toque. Eu já estava impressionado. Se o suporte deles for tão fácil de contatar (desde que seja às 23h), isso é realmente incrível. Eu disse a ele que tinha algumas dúvidas gerais sobre a plataforma deles e ele foi muito gentil e respondeu a todas as minhas perguntas.
Eu escolheria totalmente o Rackspace Cloud em vez de qualquer outro serviço do tipo VPS. Eles parecem realmente incríveis.
Considerações Finais
Dito isso, o Heroku ainda é a plataforma mais fácil para hospedar uma aplicação Rails. O Engine Yard Cloud é completamente inútil. O Rackspace Cloud é muito legal, mas não quero gerenciar um servidor.
Dito isso, continuaremos no Heroku e pagaremos US$ 95 extras por mês pelo SSL.
