Sto inviando grandi quantità di dati sensibilmente?

5

Sto per progettare un servizio di conversione video, che è scalabile dal lato della conversione.

L'architettura è la seguente:

  • Pagina web per il caricamento di video
  • Al termine, un messaggio viene inviato a uno dei numerosi server di ridimensionamento
  • Il server individua il video, lo salva su disco e lo converte in diversi formati e risoluzioni
  • Il server di ridimensionamento carica l'output su un server di contenuto e restituisce i messaggi di conferma della conversione.

La messaggistica è qualcosa che ho coperto, ma in questo momento sto trasferendo tramite FTP e mi chiedo se c'è un modo migliore? c'è qualcosa di più veloce o più affidabile? Tutti i server si troveranno nello stesso switch gigabit o switch confinante, quindi è previsto un trasferimento rapido.

EDIT:
La domanda va sul server < - > lato server delle cose. I server sono collocati nella stessa LAN, quindi non ci si aspetta che la sicurezza dell'interconnessione sia il problema principale.

    
posta Sofus Albertsen 14.11.2012 - 15:31
fonte

4 risposte

2

Userò server autonomi. Ogni server ospita il frontend di caricamento, l'encoder e il servizio di download. In questo modo non devi trasferire file in giro. Per ridimensionare, aggiungi semplicemente più server: sembra che tu non abbia ostacoli a farlo.

Ricerca se puoi eseguire lo streaming del processo; inizia a codificare il file mentre è ancora in fase di caricamento, scarica il risultato mentre è ancora in fase di codifica. Ciò non ridurrà il costo di nessuna delle operazioni, ma l'utente finale percepirà un vantaggio significativo.

Offri alternative al caricamento HTTP se i tuoi file sono grandi. Se il caricamento si arresta per qualsiasi motivo, l'utente deve riavviare il caricamento da zero.

    
risposta data 14.11.2012 - 21:11
fonte
1

Invece di inviare i file ai server, ti suggerisco di utilizzare una partizione sul server che è montata su tutti i server. Quindi non dobbiamo affatto spostare il file.

    
risposta data 14.11.2012 - 15:35
fonte
1

"Pagina web per caricamento video" caricherà effettivamente il video sul server web. Questo è solo il modo in cui funziona HTTPS e un modulo HTML con un caricamento di file. Assicurati di impostare il giusto tipo di contenuto sul tag del modulo correttamente per un file. Non è possibile inviare altri parametri al server con la stessa richiesta di un caricamento di file a causa dello stesso parametro del tipo di contenuto. Un grosso problema potrebbero essere persone con file di grandi dimensioni e / o Internet lenti che mantengono la connessione HTTP aperta per 15 minuti o più. Gli ISP della maggior parte delle persone hanno una velocità di upload massima di 500 Kbps (bit / sec, non byte / sec) o qualcosa di veramente basso. Le connessioni lunghe ti rendono un bersaglio per gli attacchi DOS.

Se vuoi che il file finisca in un posto diverso dal tuo server web, scriverai codice sul lato server. La tua applicazione web dovrà collegarla / trasmetterla in quella posizione diversa.

L'FTP è leggermente più veloce di HTTP, forse il 5-10% massimo, ma penso che la mia esperienza dimostri che è più vicino all'1%. FTP potrebbe essere migliore per il trasferimento di 2 o più file contemporaneamente, non lo so. Penso che tutti i browser moderni supportino FTP in modo nativo e HTTP. Per utilizzare un altro protocollo come suggerito da qualcuno, è necessario il codice lato server. Userò HTTP per il tuo primo passaggio.

Qualcuno ha sollevato un buon punto sulla crittografia. Lo desideri se qualcuno invierà video confidenziali o non pubblici. Rallenterà un po 'le cose, ma probabilmente non così tanto. HTTPS con un certificato lato server si prenderà cura di questo se ne hai bisogno.

Quando si trasferiscono file di grandi dimensioni, è necessario utilizzare un protocollo che assicuri che non vengano utilizzati dal destinatario fino al completamento della copia. Forse tocchi un altro file o invii un messaggio di "trasferimento completo di myFile2321.avi". La compressione di file di grandi dimensioni e la loro decompressione dopo il trasferimento è spesso più veloce di copiarli su una rete o su Internet. Se paghi per banda larga potrebbe essere anche più economico.

Quindi, tutto sommato, questi sono alcuni dettagli su cui riflettere e alcuni suggerimenti. Non vedo nulla di sbagliato nel tuo piano generale. Dai un'occhiata a come YouTube fa questo, perché penso che già facciano tutto ciò che stai pianificando, solo in un contesto diverso o per un motivo diverso.

    
risposta data 15.11.2012 - 04:44
fonte
0

Un'altra opzione: considera l'utilizzo di un'area di archiviazione condivisa a cui tutti i server possono accedere.

Per questo, è necessario utilizzare un file system distribuito . Ce ne sono diversi tra cui scegliere (NFS, SMB, ecc.) - quale è la migliore sarebbe un'altra domanda: -).

Ovviamente, se si utilizza questa route, fare attenzione ad avere un meccanismo di blocco per evitare che due server lavorino sullo stesso file.

    
risposta data 15.11.2012 - 11:11
fonte

Leggi altre domande sui tag