Servidor cloud para Ruby on Rails na Europa
Ruby on Rails continua sendo um dos frameworks web mais produtivos para criar aplicacoes full-stack. Sua filosofia de convencao sobre configuracao permite que pequenas equipes entreguem rapido. Mas o Rails precisa de um servidor real - uma maquina corretamente dimensionada, sempre ativa, que possa lidar com requisicoes, trabalhos em segundo plano e compilacao de assets. Para equipes que servem usuarios europeus, esse servidor deve estar na Europa.
Por que o hosting na UE importa para Ruby on Rails
As aplicacoes Rails sao full-stack por natureza. Elas servem HTML, gerenciam autenticacao, processam pagamentos, enviam e-mails e frequentemente gerenciam uploads de arquivos. Cada uma dessas operacoes envolve dados pessoais dos seus usuarios. Sob o GDPR, esses dados devem ser processados em infraestrutura dentro da UE se voce atende residentes da UE.
A latencia de rede e especialmente importante para o Rails porque seu ciclo de requisicoes e sincrono por padrao. Hospedar em Praga ou Vilnius oferece 5-20 ms para a maior parte da Europa Ocidental e Central, comparado a 100-150 ms de um servidor nos EUA.
Requisitos minimos do servidor
Rails e mais intensivo em recursos do que frameworks mais leves. A compilacao de assets e especialmente exigente.
- RAM - Minimo 2 GB para executar o Puma e a aplicacao Rails. A compilacao de assets pode atingir picos de 1,5-2 GB, entao 4 GB e fortemente recomendado para implantacoes em producao.
- CPU - Minimo 2 nucleos. O modelo multi-thread do Puma se beneficia do paralelismo real da CPU.
- Disco - Minimo 20 GB. SSD e necessario para desempenho aceitavel do banco de dados.
- Ruby - Versao 3.2 ou posterior. Ruby 3.3 oferece melhorias significativas de desempenho.
- PostgreSQL - Versao 15 ou posterior.
Configuracao recomendada DCXV
Os planos cloud VPS da DCXV comecam a partir de EUR 15/mes. Para implantacoes em producao com trabalhos em segundo plano, o plano de 2 nucleos / 4 GB RAM e o ponto de partida pratico.
Rails com Sidekiq executa dois processos: Puma (servidor web) e Sidekiq (trabalhos em segundo plano). Com 4 GB de RAM, voce pode executar o Puma com 2-3 workers, o Sidekiq com 5-10 threads e ainda ter espaco para o PostgreSQL.
Para aplicacoes maiores, hardware dedicado da DCXV esta disponivel a partir de EUR 49/mes. O suporte de engenheiros 24/7 esta incluido em todos os planos. Mais informacoes em https://dcxv.com/data-center#cloud
Guia de configuracao
# Instalar Ruby 3.3 via rbenv e dependencias do sistema
sudo apt update && sudo apt install -y git curl libpq-dev postgresql postgresql-contrib redis-server nginx
git clone https://github.com/rbenv/rbenv.git ~/.rbenv && echo 'eval "$(~/.rbenv/bin/rbenv init -)"' >> ~/.bashrc
~/.rbenv/bin/rbenv install 3.3.0 && ~/.rbenv/bin/rbenv global 3.3.0
# Instalar Bundler e gems
gem install bundler
cd /var/www/myapp && bundle install --deployment --without development test
# Compilar assets e executar migracoes
RAILS_ENV=production bundle exec rails assets:precompile
RAILS_ENV=production bundle exec rails db:migrate
# Iniciar Puma e Sidekiq com systemd
sudo systemctl enable puma sidekiq && sudo systemctl start puma sidekiq Expectativas de desempenho
Uma aplicacao Rails em uma instancia DCXV de 2 nucleos / 4 GB em Praga:
- Tempo de resposta - 50-150 ms para renders tipicos de paginas HTML com consultas ao banco de dados. Assets estaticos via Nginx retornam em menos de 5 ms.
- Throughput - 100-300 requisicoes por segundo com Puma com 2 workers e 5 threads cada.
- Trabalhos em segundo plano - Sidekiq com 10 threads processa 200-500 trabalhos por minuto.
- Latencia de rede - Menos de 20 ms para Alemanha, Austria, Polonia e Republica Checa a partir de Praga.





