Ruby  »  Articoli  »  Rails 

Deployment e Ruby on Rails

di: Calogero Lo Leggio     22 Aprile 2008

Il deployment è quella serie di operazioni e procedure che sono necessarie per "mettere in produzione", ovvero rendere disponibile, un sistema, una rete, un insieme di software etc. È una delle fasi finali del ciclo di vita del software, che si presenta quando viene conclusa una sessione di sviluppo (il rilascio di una nuova release ad esempio). In questa fase bisogna predisporre tutto l'ambiente (cosiddetto "ambiente di produzione") perché tutto funzioni correttamente: quindi si procede all'installazione del nuovo software e compiono operazioni come l'aggiornamento di altre applicazioni o dei database.

In questo articolo ci concentreremo sul deployment di applicazioni Ruby on Rails, analizzando le varie strategie che si possono adottare per implementare una soluzione stabile ed affidabile sulla quale far eseguire le nostre applicazioni.

Ruby on Rails (da ora in poi solo Rails) ci ha abituato ad una semplicità ed immediatezza che pochi framework riescono ad offrire, ad esempio l'avvio di un'applicazione Rails è banale, basta il comando:

# script/server

lanciato nella directory radice della nostra applicazione. L'applicazione parte con tanto di Web server integrato (webrick o mongrel se presente).

Questo è un modo molto semplice per provare le nostre applicazioni: non abbiamo bisogno di configurare alcun Web server per lo sviluppo e non abbiamo problemi di permessi. Il rovescio della medaglia in questo caso consiste nelle prestazioni scadenti, soprattutto se si utilizza webrick come Web server.

Il motivo, grossolanamente, è dato dal fatto che webrick, soprattutto se in modalità 'development', ricarica buona parte dell'applicazione ad ogni richiesta, causando un notevole calo di prestazioni.

Per ovviare a questo problema si possono intraprendere principalmente due strade:

  • utilizzare mongrel (che opzionalmente può essere affiancato ad un Web server, per migliorare ulteriormente le prestazioni)
  • utilizzare un Web server con fast cgi

In questo articolo utilizziamo mongrel affiancato da apache 2 (con il modulo mod_proxy_balancer) per il bilanciamento del carico, perchè è stata adottata con soddisfazione da praticamente tutta la comunità Rails.

Nota: è stata rilasciata una versione di mod_Rails dai ragazzi di www.phusion.nl, nel momento in cui scriviamo è ancora un esperimento, ma chissà! Magari finalmente un degno concorrente di mod_php, visto che mod_ruby non ha riscosso molto successo.

Guide Ruby

Guida ActiveSupport

Una panoramica sulle funzionalità più importanti di ActiveSupport:...

Guida Ruby On Rails 2

Scoprire le novità di Ruby on Rails 2, memorizzare i dati con...

Guida Ruby e il Web

Un percorso alla scoperta delle potenzialità offerte da Ruby nella...

Altre guide

Newsletter @Ruby

Ogni mercoledì, direttamente nella tua e-mail: articoli, guide e tutorial su Ruby e Ruby on Rails .

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Nessun corso previsto

Nessun corso previsto