Rails em Produção
Ruby on Rails continua sendo um dos frameworks mais produtivos para desenvolvimento web. Basecamp, Shopify e GitHub rodam Rails em escala. Na nuvem, a configuração correta faz toda a diferença.
Stack de Produção
- Web Server: Puma com workers multi-threaded (min 2, max 5 threads por worker).
- Background Jobs: Sidekiq com Redis para processamento assíncrono.
- Database: PostgreSQL com PgBouncer para connection pooling.
- Cache: Redis para fragment caching e Russian doll caching.
- Asset Pipeline: Propshaft ou importmap-rails para assets modernos.
Configuração Puma
O número de workers deve ser igual ao número de CPU cores. Threads por worker: 5 é um bom padrão. Para deploy: preload_app! para copy-on-write memory savings.
Sidekiq
Sidekiq processa background jobs com threads Ruby + Redis. Configure concurrency baseado na RAM disponível (cada thread usa ~50MB). Use filas separadas para jobs de prioridades diferentes.
Dicas de Performance
- JIT (YJIT) no Ruby 3.3+ melhora performance em 15-25%
- Bootsnap para reduzir tempo de boot em 50%
- Bullet gem para detectar N+1 queries automaticamente
- rack-mini-profiler para profiling em desenvolvimento
Conclusão
Rails na nuvem é rápido e escalável quando bem configurado. A combinação Puma + Sidekiq + Redis é imbatível.
Nenhum comentário ainda. Seja o primeiro a comentar!