Domanda

Ho usato Mongrel dritto, ho usato i cluster Mongrel dietro Apache, ho guardato Thin e sto diventando molto incuriosito da Passenger. Ho anche guardato Nginx. Ho esaminato la risonanza magnetica, Ruby Enterprise Edition, Rubinius e JRuby. Ci sono molte opzioni, ognuna delle quali afferma di essere il nuovo Santo Graal.

Qual è la migliore opzione disponibile per una distribuzione completamente nuova e aggiornata? Le uniche ipotesi sono queste:

  • L'app è basata su Rails 2.2. (So ??che 2.2 non è stato ancora completamente rilasciato, ma nemmeno questa distribuzione.)
  • Il server è basato su Linux. Probabilmente Ubuntu Hardy, ma in realtà, qualunque cosa funzioni meglio in questo caso.
  • Le rotaie dovranno essere completamente funzionali e probabilmente parlare con un database MySQL.
  • Tutto il resto è negoziabile.

Dati questi vincoli particolarmente ampi, quale combinazione di software produrrà il miglior risultato, in termini di concorrenza e bassi costi generali?

Mi sto avvicinando ad Apache con il "lavoratore" mpm e Passenger + Ruby Enterprise Edition, semplicemente perché offre stabilità immediata e semplicità di installazione e manutenzione.

È probabile che io stia particolarmente meglio con un'altra opzione?

È stato utile?

Soluzione

Sono passato da Mongrel Cluster a Passenger due settimane fa (Debian Linux Server). Non ho guardato indietro per un secondo. Il passeggero è probabilmente il modo più semplice per mettere in funzione il tuo nuovo server. Anche le prestazioni e l'affidabilità sono ragionevoli.

Personalmente, mi piace passare il tempo a lavorare su nuovi entusiasmanti progetti Rails piuttosto che occuparmi di problemi di implementazione: Passenger mi consente di fare esattamente questo. Tuttavia, Mongrel o qualcos'altro potrebbe essere preferibile se hai dei requisiti speciali di tipo (non si applica alla maggior parte dei prodotti).

Altri suggerimenti

Questa mattina DHH parla proprio di questo argomento sul suo blog:

  

Ma in qualche modo il messaggio di Passenger è stato un po 'lento per affondare. Ci sono già un sacco di grandi siti che lo scappano. Compresi Shopify, MTV, Geni, Yammer, e tra poco passeremo alla prima lista Ta-da, quindi si spera che il resto della suite dei 37 segnali rapidamente dopo.

     

Quindi, mentre ci sono ancora motivi per eseguire la propria configurazione multi-tier personalizzata di pezzi configurati manualmente, proprio come ci sono persone che si allontanano da mod_php per i loro particolari, penso che alla fine abbiamo optato per una risposta predefinita. Qualcosa che non richiede di pensare davvero alla prima distribuzione della tua applicazione Rails. Qualcosa che funziona fuori dagli schemi. Anche se quella casella è un host condiviso!

http: //www.loudthinking .com / posts / 30-mito-1-rails-è-difficile da implementare

Tobias Lütke sul tema del passaggio da Shopify (milioni di richieste / giorno) a Passeggero:

  

Tutto ciò significa che la quantità totale di memoria utilizzata da Shopify durante le normali operazioni è passata da una media di 9 GB a una media di 5 GB. Abbiamo uniformemente distribuito i risparmi tra più processi Shopify e più spazio memcached che ha spostato il nostro tempo medio di risposta da 210ms a 130ms mentre il traffico è cresciuto del 30% negli ultimi mesi.

     

In conclusione: non vedo alcun motivo per scegliere una diversa strategia di distribuzione a questo punto. È semplice, completo, veloce e ben documentato.

http://blog.leetsoft.com/2008/11/15/passenger

Abbiamo usato il vecchio standard nginx - > stack ibrido negli ultimi 18 mesi, e sebbene non sia stato banale installarlo per la prima volta, si è dimostrato flessibile e ha gestito alcuni siti con traffico molto elevato per noi. Nginx in particolare è stato assolutamente solido e veloce, e se riesci a ottenere la memorizzazione nella cache della tua pagina per app puoi soddisfare molte richieste.

I bastardi bloccati sono stati un problema, quindi usiamo il monit per ucciderli quando si comportano male. Ancora una volta, non è stato del tutto semplice da configurare, ma a questo punto abbiamo utilizzato lo stesso processo su molti siti.

Non abbiamo ancora giocato con i passeggeri, quindi forse è più facile e più stabile, rimanderò agli altri soccorritori su quello, tutto quello che posso dire è che non c'è motivo per cui non puoi costruire un solido impilare con nginx e ibrido.

Siamo passati da NginX + Mongrel a Passenger.

Credo fermamente che Passenger sarà il nuovo standard per le rotaie, nonostante NginX e Mongrel siano supportati da alcune persone molto intelligenti. I recenti progressi in Passenger lo hanno davvero spinto in avanti.

La nostra attuale configurazione è qualcosa del genere:

Server Web

  • Ubuntu 8.04 LTS
  • Phusion Passenger su Apache2
  • MRI Ruby 1.8.6 e amici (modulo apt)
  • Ruby Gems 1.3.0 (installato dalla fonte)

Server di database

  • Centos 5
  • MySQL Cluster (siamo appena passati a questo, ma è promettente)

Dopo aver standardizzato l'esatta distribuzione Linux, siamo stati in grado di scrivere ricette Capitrano per aiutare la distribuzione (lievi variazioni nella configurazione sono state la fonte di MOLTE interruzioni del servizio) e altrimenti semplificano la nostra vita.

Dai un'occhiata a Litespeed . Puoi ottenere una versione gratuita che funziona su 1 cpu o pagare per ottenere più cpu. È un po 'costoso ma è solido come una roccia e gestisce i binari in modo brillante (cioè utilizza meno memoria ed è meno costoso per il monitoraggio e l'installazione). Eseguo un'enorme quantità di app e non manca un colpo.

Siamo anche passati da Mongrel a mod_passenger e abbiamo trovato la stabilità notevolmente migliorata con questo sforzo richiesto per l'installazione e la manutenzione. Buona scelta.

Un altro pezzo d'oro:

La gemma Slicehost di Josh Peek è ricca di ricette Capistrano che sono molto più semplici e molto più organizzate di Deprec . Nulla di ciò è specifico per Slicehost, neanche.

Sto ospitando le mie nuove app con Apache2 e Passenger su Ubuntu Hardy. Sembra l'opzione più semplice e migliore per la maggior parte degli scenari. Mi sono appena iscritto a Slicehost.com a tale scopo. Sembrano ottenere buone recensioni e hanno i prezzi più competitivi degli host di prima classe.

Non posso ancora sostenerli perché sono un nuovo cliente, ma il set di guide e la gamma di opzioni di supporto è impressionante.

Quello che non stai menzionando è quanto è grande e popolare sarà / sarà la tua app. Questi criteri potrebbero influire sul processo decisionale.

Capistrano + Deprec per aver effettivamente impostato il mio stack su Ubuntu e gestito fisicamente la distribuzione.

Nginx inoltra ai cluser Mongrel per l'architettura del server. Non è la più recente tecnica all'avanguardia, ma funziona bene, sta diventando ben documentata ed è molto, molto performante anche quando si lavora su piccoli VPS. Supponendo che tu non abbia interrotto l'applicazione, puoi Slashdot un Slicehost VPS da 128 MB e continua a tornare per altro.

Detto questo: la prima volta c'erano un lotto di gotcha, finché non ho capito come funzionava davvero Nginx. Dopodiché è incredibile - come un piccolo Apachelet con un leggero accento russo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top