Deploy Rails was(Re: [ruby-it] Re: Re: Hosting Ruby on Rails
Gratuito ed Italiano)
Nicholas Wieland
n.wieland a tochunky.org
Ven 24 Ago 2007 15:13:24 CEST
[L]ash ha scritto:
> Il giorno Wed, 22 Aug 2007 13:03:24 +0200
> "Michele Franzin" <michele.franzin a gmail.com> ha scritto:
>
>> potresti spiegarmi meglio ?
>>
>
> avere un modulo stile mod_php o mod_python; python ha dei framework ma
> nessuno di questi ha bisogno di un server dedicato.
Tipo Zope ? :D
Ma che framework hai visto ? :)
Io ho usato Zope per una vita, e non c'è proprio pericolo che qualcuno
vada in produzione con mod_python, non esiste. Si usa sempre un proxy.
> Ora ruby ha mod_ruby ma in pratica vedo(leggo) che non è utilizzabile;
> e anche se lo fosse caricare ogni volta rails mi sembra di aver capito
> che darebbe performance bassissimisse causa linguaggio e framework
> (non ancora quantificato quanto uno e quanto l'altro ma imho ruby ha la
> sua buona fetta)
Come ti è già stato detto, usa fastcgi/scgi, potresti configurare il
webserver in addirittura 10 minuti.
Per quali motivi (tecnici) vuoi una soluzione pessima come un mod_* ?
mod_php è nato secoli fa quando l'IPC su unix poteva essere considerato
un overhead e i server erano 1/10 di quello che sono oggi, e tutt'ora è
l'unico modulo Apache universalmente adottato, mod_python ha rivisto un
po' la luce con Django, prima era il nulla cosmico.
Embeddare un interprete dentro un processo http significa usare per ogni
processo *molta* più memoria del necessario, e ha delle limitazioni sia
a livello di sicurezza (e, permettimi, se parliamo di sicurezza con PHP
c'e' da piangere), sia a livello di deployment - prova a sbattere una
applicazione in una sandbox (diciamo, una jail FreeBSD) e a farla
funzionare, vedrai che divertimento, o a farlo _veramente_ scalare senza
per-user runners (metodo ampiamente adottato da PHP, ovviamente) :)
Se la tua applicazione è piccola, come il mio blog, sbattilo su
Apache/Lighty con SCGI, è una soluzione che offre parecchi vantaggi e
performance decenti, oltre ad essere a mio parere più stabile che
FastCGI, e non necessita certamente di un server dedicato - pago il mio
provider 6$ al mese, ma che macchina dedicata :p
Se il software diventa grosso, proxy + n istanze di mongrel, e riesci a
scalarlo quanto vuoi.
Zooppa, per la cronaca, è rimasto in piedi per 4 mesi su una virtual
machine (!!!) usando Lighttpd + n istanze di Lighttpd + FastCGI. Ora è
su 3 macchine, una che fa proxy, una che fa girare n istanze di mongrel,
una che fa girare il DB. Quando eravamo sulla VM abbiamo *quasi* (:D)
retto il carico di un link dalla hp di Alice (aka 11 req/sec).
Rails non è leggero, ma per quello che da in più di PHP direi che non è
nemmeno esagerato. Chiedere che un linguaggio ad oggetti puro con
particolari proprieta' di metaprogrammazione sia veloce quanto un
linguaggio con un object model sballato, nessun supporto per la
metaprogrammazione e una libreria praticamente puramente procedurale non
è molto scaltro, vien da se che è molto difficile realizzare un prodigio
tecnico di questo tipo. Certo, Ruby è ultramigliorabile (un interprete
alla Python sarebbe bello, arriverà con YARV), ma se paragonato a PHP
ora come ora è praticamente speculare - anzi, ti ricordo che PHP è
tipizzato debolmente ...
Se hai altri dubbi chiedi, io mi sono rovinato la vita con questa cacca :D
HTH,
ngw
Maggiori informazioni sulla lista
Ml