Sito pesante larghezza di banda ... utilizzare la co-posizione?


11

Sto lavorando a un sito Web che probabilmente sarà molto pesante in termini di larghezza di banda. Una delle principali funzionalità del sito quando è in uso attivo è in grado di generare fino a 1 Mbps per una singola sessione. Fortunatamente, una volta che gli utenti superano il nuovo fattore giocattolo, l'uso di questa funzione sarà probabilmente dell'1-5% o meno (probabilmente molto meno) del tempo di sessione.

Tuttavia, è probabile che i nuovi utenti giochino un po 'con questa funzione, specialmente all'avvio. Sono molto preoccupato per l'uso della larghezza di banda.

Questo è più o meno un mercato di nicchia, quindi non avrò mai bisogno di passare a livelli folli come YouTube. Tuttavia, è del tutto possibile che sia un paio di terabyte / mese.

La co-location è la mia migliore opzione? Quali servizi di larghezza di banda a buon mercato (colocation / hosted / cloud / qualunque cosa) ci sono là fuori?


Quanta larghezza di banda stiamo effettivamente parlando (picchi), che determina il tuo livello di impegno, che influenza fortemente se un colo è una buona idea o meno (dato che la fatturazione delle piastrelle al 95% è abbastanza comune)
Tim Post

1
Okay, penso di essere incline a fissare un limite rigido a 10 Mbps. Posso avere una fase beta limitata. Comincerei con tutto questo, e passerei agli account con anteprima limitata se venissi sommerso. Dovrebbe funzionare.
darron,

Molto curioso che tipo di contenuto dinamico stai generando che richiede 1 Mbps per il download! Video live? Ad ogni modo potresti voler dare un'occhiata a questa domanda correlata: serverfault.com/questions/148629
Greg Bray

Risposte:


6

Molto dipenderà da quante sessioni simultanee ti aspetti. Se è probabile che ci siano più sessioni simultanee, avrai bisogno di qualcosa che ti garantisca una connessione a 100 Mbit, 1 Gbit se ti aspetti più di 50.

Dipenderà anche dal tipo di resilienza richiesto: se è necessario disporre di garanzie di uptime e altri SLA e / o sistemi di failover da assumere in caso di problemi (perché il progetto è abbastanza importante per un breve periodo di inattività per essere imbarazzante) allora le tue opzioni sono più limitate e i tuoi costi saranno più alti.

Se riesci a separare i dati di grandi dimensioni dal resto dell'app, non è necessario spostare tutto in una nuova soluzione di hosting. Ad esempio, se gli articoli a larghezza di banda elevata sono file video, potresti noleggiare un server dedicato con una buona larghezza di banda da qualche parte e ospitarli su questo - puoi ottenere server su buoni host con larghezza di banda decente e connessioni a 100mbit + sorprendentemente a buon mercato in questi giorni (pago $ 50 / mese per un server di piccole dimensioni con un collegamento a 10 Mbit che potrei saturare in entrambe le direzioni 24 ore su 24, 7 giorni su 7, se necessario, quindi un collegamento a 100 Mbit con un server più robusto collegato non sarà costoso a meno che non siano necessari tempi di attività garantiti e altri SLA e / o server gestione dal provider di hosting). Se il server serve solo file statici (anche di grandi dimensioni) non è necessario un gran numero di macchine in termini di CPU e RAM, ma solo unità veloci e larghezza di banda. Potrebbe anche valere la pena esaminare soluzioni ospitate "cloud" o una rete di distribuzione dei contenuti - potrebbero essere più facili da ridimensionare se si sottovaluta la larghezza di banda necessaria in teoria molto più resilienti (quindi si potrebbe ottenere una garanzia di uptime decente con risarcimento se non rispettano tale SLA). Mantenere separata l'azione di hogging della larghezza di banda in questi modi ha l'ulteriore vantaggio che se la funzionalità di larghezza di banda elevata attira abbastanza attenzione da farlo strisciare che non bloccherà tutte le altre funzionalità allo stesso tempo.


Nessun contratto di servizio, nessun pazzo tempo di attività. Attualmente utilizza una buona quantità di CPU / RAM per sessione. Tuttavia, una singola scatola robusta dovrebbe gestire un buon numero di sessioni simultanee.
darron,

1

Puramente storicamente:
ai tempi dei giochi di Facebook, le persone erano tutte coinvolte in MMO basati su browser, in formato testo.

Uno relativamente nuovo era Ogame. Era pesantemente grafico e un sistema cartografico di 9 volte 999 pagine (9 universi con 999 settori con spazio per 15 pianeti ciascuno e ogni pianeta poteva avere una luna).

La quantità di utenti che hanno aderito era folle e la quantità di traffico ancora di più.

Quindi cosa hanno fatto per risolverlo? Hanno iniziato a utilizzare un sistema di template PHP e hanno permesso agli utenti di ospitare da soli le immagini e i file CSS. Tutto quello che dovevi fare era fare clic su una casella di controllo e inserire il percorso assoluto nella cartella di base. Vorranno salvarlo nel loro database, utilizzare l' <base>elemento HTML e il sistema di template imposta l'URI da http: // percorso / a / immagine su file: /// percorso / a / immagine

Dopodiché, tutti i collegamenti img potrebbero rimanere gli stessi. Non è stato necessario scaricare nulla perché gli utenti lo avevano già. Significa un caricamento della pagina più rapido per l'utente (che significa migliori recensioni sui prodotti) e un utilizzo della larghezza di banda inferiore per l'azienda che ospita il sito.

E come bonus aggiuntivo, l'hanno venduto come "ti fanno sfondi e immagini personalizzati, non siamo bravi ragazzi per avervi permesso di farlo?"


1

Abbiamo un sito ad alto traffico e molte immagini sono caricate su ogni pagina. Abbiamo server dedicati ma abbiamo deciso di mettere le immagini su Amazon S3 . Sembra che tu stia parlando di file video o di qualche altro tipo di file di grandi dimensioni che penso si applicherebbe ancora qui. Ecco alcuni pro e contro (per noi)

Professionisti

  • Meno spazio su disco necessario sui nostri server
  • Meno larghezza di banda per i nostri server
  • I nostri file di registro sono notevolmente più piccoli
  • Possiamo facilmente integrarlo con Amazon CloudFront per rendere il caricamento ancora più veloce per i visitatori

Contro

  • Costa un po 'di più. Potremmo risparmiare un po 'di denaro disponendolo sui nostri server
  • Meno controllo su di loro (Amazon) che scende ... fortunatamente per noi, non scendono davvero. :)

Altri pensieri

Se non stai parlando di file multimediali o download di file di grandi dimensioni, la mia risposta e molte altre potrebbero non avere senso. Dacci qualche dettaglio in più e faremo del nostro meglio per aiutarti.


0

Un colo può effettivamente avere più senso, se può giustificare il commit minimo (di solito 5mb) con la fatturazione del 95 ° percentile. Ciò significa che non pagherà mai il 5% dei picchi, il che finisce per essere più economico di una CDN di terze parti. È difficile da dire, dobbiamo davvero vedere esattamente quanto sta usando.
Tim Post

Il mio utilizzo sarà contenuto quasi interamente dinamico, con un ingombro di CPU / memoria elevato per sessione. Dopo aver giocato con lo strumento di stima dei prezzi AWS, sembra essere molto più economico andare con la colocation.
darron,

Ah, immaginavo che i pezzi pesanti della larghezza di banda sarebbero stati dei media che potevi mettere su un CDN, sembra che avessi presunto che fosse sbagliato. Tuttavia, se si dispone di blocchi dinamici che vengono elaborati in modo prevedibile (un insieme finito di possibili "blocchi" di dati), è comunque possibile inserire tutto ciò in un CDN. Smetterò di provare a indovinare sulla tua app ora. :-)
artlung

0

A seconda dello stato / paese di destinazione (o del mondo) utilizzerei molte soluzioni di cluster ("Cloud") su posizioni diverse (le reti di ubicazione dovrebbero essere sottoposte a peering ;-)). Da un lato hai il pieno controllo sulla tua CDN, ma sull'altro sito hai molto da fare (come il monitoraggio, la cura dell'infrastruttura hardware e software e molti altri).

Quindi soluzioni "gestite" come AWS o qualcosa del genere. Esistono molti provider di CDN / Cloud che offrono una vasta gamma di funzionalità.

OFFTOPIC: Dai un'occhiata a Puppet [1] :-)

[1] http://www.puppetlabs.com/


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.