2011-10-12 16 views
5

Ho una domanda relativa all'hosting per un'applicazione di binari a traffico elevato. Il fatto è che ho 3/4 anni di esperienza con le applicazioni di Ruby on Rails ma non ho mai avuto un sito Web con traffico elevato prima. Sono davvero entusiasta perché questo è il "livello successivo" per me e il mio collega. Il fatto è che non abbiamo esperienza con un'applicazione di rotaia per gestire "traffico elevato", in primo luogo permettimi di definire "traffico elevato" in questo caso.Domande di hosting per un'applicazione di binari di traffico "alta"

Stiamo sviluppando un'applicazione per i binari per uno dei principali fornitori di telecomunicazioni olandesi e il ca. i visitatori al giorno saranno circa 400.000 utenti. Stiamo programmando in ruby ​​1.9.2 e Rails 3.1. Stiamo usando un dispositivo per la gestione dell'autenticazione. Ma stiamo cercando una parte affidabile per ospitare questa applicazione. Stiamo guardando Heroku ma non ho la minima idea di cosa ho bisogno e di quanti dipendenti, dyno e/o database dedicato ho bisogno. Abbiamo bisogno di film in streaming, e stiamo progettando di ospitarli su un bucket amazon s3.

Quindi la cosa è che sto cercando consigli su Heroku e/o altre feste professionali e affidabili. Ci sono cose che devo prendere in considerazione riguardo l'applicazione delle rotaie?

Grazie!

risposta

9

È abbastanza facile elaborarlo approssimativamente in termini di dinamiche.

Un banco di prova è a thread singolo, quindi se la pagina richiede 200 ms per renderizzare è possibile eseguire il rendering di 5 pagine al secondo. Hai bisogno di capire quante pagine al secondo quei 400.000 utenti faranno. Quindi sai quante pagine al secondo vengono richieste e cosa può gestire un singolo dinamometro. Quindi aumenterai semplicemente il tuo conteggio del dino fino a quando non incontrerai le richieste degli utenti per secondo.

ad esempio 1 banco @ 200ms = 5 pagine al secondo 2 dynos @ 200ms = 10 pagine al secondo

ecc ecc E 'solo una figura parco palla come ci stanno per essere altri fattori come le prestazioni DB, ecc, ma assicurati che Heroku sia adatto a questo tipo di scenario, dal momento che è così semplice che puoi aggiungere più dinos per aumentare tramite put.

È necessario utilizzare i lavoratori per qualsiasi evento di lunga durata, ad esempio l'invio di e-mail, ecc. In cui c'è una parte terza che potrebbe impiegare del tempo per rispondere e gestire le code se l'applicazione li utilizza.

Una volta che si passa oltre il database da 20 GB, è necessario utilizzare un database dedicato e dal client sembra che il database iniziale da $ 200 al mese non li farà sudare in termini di costi di hosting.

Mi sono perso qualcosa? Se tornassi da me,

+0

con 1 banco di testo intendi un web o un banco di lavoro? E cosa fa un dyno operaio? Posso vedere questo come processi di caricamento di graffette e manipolazione di foto rmagick/imagemagick? –

+1

Quindi è un po 'di confusione. Un tempo erano i dynos (per il web) e gli operai (per i lavori in background). Sul nuovo stack 'Cedar' hai solo processi. Un lavoratore dovrebbe essere utilizzato per tutto ciò che può essere eseguito in background o è probabile che richieda molto tempo. Se non lo fai, cose come il ridimensionamento delle immagini nella stessa richiesta della pagina web significherebbe che dyno (o processo web) non è in grado di elaborare altre cose mentre è occupato. Quindi nelle richieste in arrivo verrebbero messi in coda e alla fine scaduti se non ricevono una risposta entro 30 secondi. –

+0

Grazie per il tuo aiuto! Ho un'altra domanda riguardante la sicurezza. Ci sono cose a cui devo pensare? Devo rendere l'ID casuale e imprevedibile? E quale sarebbe il modo migliore per farlo ?! –