Salve a tutti,
ho sempre lavoricchiato con i server rps, vps e dedicati ma non ho mai affrontato il seguente problema: mi si propone di aiutare un gruppo di amici sulla trentina a mettere su un server per una applicazione che potrà avere, secondo una stima di mercato, anche un milione di iscritti e fino a 10k di persone connesse simultaneamente.
Ovviamente l'inizio è tutta una cosa diversa ma passare da 100 iscritti a 10.000 iscritti potrebbe essere questione di giorni e passare da 10k iscritti a 100k iscritti di settimane, con le relative conseguenze sul numero di persone simultaneamente online. Ovviamente questo pone un limite all'umanità della cosa: montare tutto su un vps attendendo l'arrivo degli utenti potrebbe risultare fatale perchè potrebbbero non esserci le forze di migrare il tutto in server più potenti senza perdere preziosi utenti insoddisfatti del servizio.
Il prezzo diciamo che non è un problema ma, per praticità e soprattutto all'inizio, diciamo che potremmo attestarci sui 50-100? mensili di spesa, a salire a seconda del numero di utenti iscritti e simultanei.
Dato che per far girare l'applicazione sarà necessario istanziare 4 macchine (virtuali per noi), non sarà un problema domani spostare tali macchine virtuali su altrettante macchine fisiche, naturalmente al costo di raddoppiare prima e quadruplicare poi i costi di gestione.
Per ora il traffico è un incognita, ma su un conto di massima con queste cifre (50-100?/mese) non dovrebbe essere un problema rientrare nei limiti di traffico normalmente previsti per queste cifre.
Quello che vorrei cercare di capire insieme a voi, o quantomeno avere qualche consiglio da voi per riuscire a decidere meglio, solo le seguenti cose:
- Dato che l'applicazione prevede di essere tradotta in molte lingue, fra le quali il cinese, il server di cui abbiamo bisogno deve essere raggiungibile con tempi di latenza accettabili da qualsiasi parte del mondo. Esiste un provider capace di fornire servizi simili o conviene iniziare a pensare alla replicazione geografica?
- L'idea di scalabilità "a server" usando le macchine virtuali è praticabile oppure si portano solo via risorse dalle macchine utilizzate?
- Qualcuno di voi ha esperienza nel domimio Google App Engine? Mi è sembrato che abbiano proposte interessanti ma non riesco a capire se siano o meno confacenti alle esigenze di un progetto dai numeri tendenti all'alto come questi.
- Una macchina con quattro core, 8 gb di ram, usando MySQL (probabilmente cluster) quante query simultanee è in grado di reggere secondo la vostra esperienza?
- Se doveste scegliere voi un provider per questo tipo di applicazione, cosa scegliereste ? (in caso di replicazione geografica, anche più di uno ovviamente)
- Secondo voi quanto potrebbe essere una stima di massima, sia di spesa mensile che di necessità di hardware, per un'applicazione con 1M iscritti e da 1k a 10k di utenti connessi in simultanea durante la giornata?
So che la problematica è grossa e ovviamente non pretendo risposte puntuali (non avrei preteso niente nemmeno se avessi fatto domande sulla somma o sulla moltiplicazione ovviamente). Mi piacerebbe ragionare con gli iscritti di questo forum su un'ipotesi del genere.
Grazie a tutti, Ebolo.