I costi associati alla costruzione nel cloud sono molti. Per la transcodifica video, abbiamo costi di archiviazione, costi di istanza di calcolo e, soprattutto, costi di uscita. I costi di uscita sono spesso trascurati e possono avere un impatto significativo sui profitti. La sfida si presenta quando si vuole distribuire i contenuti a livello globale in tutti i formati giusti mantenendo i costi bassi. Ogni volta che si accede ai dati o li si trasferisce fuori dal cloud, che si tratti di contenuti video in streaming, di scaricare file o di servire pagine web, entrano in gioco i costi di uscita. Su scala globale, questi costi diventano una voce significativa.
Come fare, quindi, a distribuire risorse al pubblico di tutto il mondo senza spendere troppo? Si tratta di una sfida che molte aziende devono affrontare, e che di recente è stata affrontata da uno dei nostri clienti, un fornitore di contenuti televisivi e on-demand basato su Internet. Questo cliente è un'importante piattaforma over-the-top (OTT) specializzata nella fornitura di canali televisivi in diretta, contenuti on-demand e servizi di catch-up TV agli spettatori di tutto il mondo. L'azienda investe molto in soluzioni scalabili basate sul cloud per garantire esperienze di streaming con buffering e latenza minimi, soprattutto durante i picchi di traffico. Inizialmente questo cliente si era rivolto alle GPU di Oracle Cloud e alle istanze VT1 diAWS per gestire la transcodifica video. Tuttavia, questi fornitori di cloud hanno comportato un prezzo elevato, tanto da diventare finanziariamente non sostenibile per il cliente. Ogni volta che i contenuti video venivano trasmessi in streaming, scaricati o serviti agli utenti finali, il cliente doveva sostenere ingenti spese di uscita. Questi costi si sono accumulati rapidamente, soprattutto se si considera il loro pubblico globale e la necessità di uno streaming di alta qualità e a bassa latenza. L'azienda voleva massimizzare il flusso di transcodifica per macchina virtuale per ottenere un miglior rapporto costo/prestazioni, distribuendo al contempo i video transcodificati agli utenti per fornire contenuti a bassa latenza. Tuttavia, con la crescita della base di utenti e la distribuzione dei contenuti a livello globale, l'onere finanziario è diventato insostenibile.
Di fronte a questi costi crescenti, il cliente aveva bisogno di trovare una soluzione più conveniente senza sacrificare le prestazioni o l'esperienza dell'utente. Ciò ha portato a una profonda rivalutazione della strategia di transcodifica video e di distribuzione dei contenuti, di cui ho già parlato in questo blog post. L'azienda cercava alternative che le consentissero di ottimizzare il numero di flussi di transcodifica per macchina virtuale (VM), migliorando così il rapporto costo/prestazioni. Inoltre, volevano distribuire i video transcodificati più vicino ai loro utenti per ridurre la latenza e migliorare ulteriormente l'esperienza di visione.
L'aumento dei costi associati a AWS VT1 - in particolare per quanto riguarda le tariffe di uscita da AWS - ha indotto a rivalutare la piattaforma di distribuzione dei contenuti di transcodifica video.
Le sfide della transcodifica dei video on demand
Immaginate di essere un ingegnere di una grande piattaforma OTT, responsabile della transcodifica video per milioni di utenti. Si tratta di un compito arduo che richiede sia competenze tecniche che prudenza finanziaria. Il vostro ruolo è fondamentale per garantire che gli spettatori ricevano flussi video di alta qualità e senza interruzioni, indipendentemente dalla loro posizione o dal dispositivo utilizzato.
Ogni giorno gestite una flotta di macchine virtuali (VM) con il compito di codificare i contenuti video. Non si tratta solo di convertire i formati video, ma anche di ottimizzare le diverse risoluzioni, i bitrate e i codec per garantire che i contenuti siano accessibili e vengano visualizzati su diversi schermi, dagli smartphone ai televisori 4K. La sfida consiste nel far funzionare queste macchine virtuali in modo efficiente per gestire il flusso costante di dati video in entrata, evitando colli di bottiglia e riducendo al minimo la latenza.
Dobbiamo anche tenere presente che la transcodifica video richiede molte risorse. Ogni video deve essere elaborato in più formati e qualità per adattarsi alle diverse condizioni di rete e alle capacità dei dispositivi. Ciò richiede una notevole potenza di calcolo, che si traduce in costi elevati per le risorse di CPU, GPU e memoria. In qualità di ingegneri, dovete monitorare costantemente queste risorse, bilanciando il carico su più macchine virtuali per evitare un utilizzo eccessivo e garantire prestazioni ottimali.
Oltre alle richieste di calcolo, c'è un altro aspetto critico da considerare: i costi di uscita dei dati. Ogni volta che un video viene trasmesso in streaming, scaricato o trasferito a una rete di distribuzione di contenuti (CDN), l'azienda deve sostenere dei costi di uscita. Questo costo si basa in genere sul volume di dati trasferiti e può variare in base a fattori quali la destinazione dei dati, la distanza percorsa e la larghezza di banda consumata. Questi costi possono aumentare rapidamente, soprattutto quando si tratta di grandi volumi di contenuti ad alta definizione trasmessi in streaming a un pubblico globale. La gestione di questi costi è essenziale per mantenere i profitti dell'azienda.
Per affrontare queste sfide, è necessaria una strategia che massimizzi l'efficienza dell'infrastruttura di transcodifica, mantenendo i costi sotto controllo. A tal fine, è necessario ottimizzare l'utilizzo delle macchine virtuali e garantire che ogni macchina virtuale sia utilizzata al massimo delle sue potenzialità senza essere sovraccaricata. Ciò si traduce nella transcodifica di un maggior numero di flussi per VM. È inoltre necessario scegliere il giusto provider di cloud. I diversi fornitori di cloud offrono diversi modelli di prezzo e capacità di prestazioni. È fondamentale valutare queste opzioni per trovare un provider che offra il miglior equilibrio tra costi e prestazioni. È inoltre necessario implementare strategie per ridurre le tariffe di uscita, come la memorizzazione nella cache dei contenuti di frequente accesso più vicini agli utenti finali, l'utilizzo efficace delle CDN e la considerazione di soluzioni alternative di archiviazione in cloud con costi di uscita inferiori. Infine, è necessario esplorare istanze di calcolo economicamente vantaggiose, come Linode, che possono offrire prezzi prevedibili e migliori rapporti costo-prestazioni rispetto ai fornitori di cloud tradizionali.
In sostanza, il vostro ruolo di ingegneri è quello di garantire che la vostra infrastruttura di transcodifica video sia robusta, scalabile e conveniente. Ciò comporta un costante bilanciamento tra l'ottimizzazione delle prestazioni tecniche e la gestione dei vincoli finanziari. Implementando una strategia ponderata e sfruttando gli strumenti e le tecnologie giuste, è possibile soddisfare le richieste di milioni di utenti salvaguardando i profitti dell'azienda.
Analisi dei costi per la transcodifica video
Vediamo un'analisi dettagliata dei costi che confronta la transcodifica video utilizzando istanze Linode dedicate da 64 GB rispetto alle istanze AWS EC2 VT1 vt1.6xlarge, considerando sia i costi di uscita che il rapporto costo-prestazioni totale.
Supponiamo che un provider di streaming abbia bisogno di transcodificare 100 ore di contenuti video al mese. Ogni file video ha una dimensione media di 1 GB e il provider vuole transcodificare in tre diversi formati di output per supportare vari dispositivi e risoluzioni. Supponiamo inoltre che ci vogliano 2 ore per transcodificare 1 ora di contenuto video su entrambi i provider e che ciascuno di essi abbia bisogno di 50 istanze.
Costo per istanza di CPU dedicata | Costo totale per 50 istanze | |
Istanza Linode dedicata da 64 GB | 0,864 dollari/ora | 50 istanze * 0,864 dollari/ora * 200 ore = 8.640 dollari/mese |
AWS istanza vt1.6xlarge | 1,30 dollari/ora | 50 istanze * 1,30$/ora * 200 ore = 13.000$/mese |
Questo confronto dei costi illustra i notevoli risparmi ottenuti con la migrazione alle macchine virtuali dedicate di Linode. In questa analisi, l'utilizzo di istanze dedicate Linode per la transcodifica video è più economico del 33% rispetto all'utilizzo di AWS VT1. Oltre ai costi di istanza più bassi, Akamai offre anche un'allocazione significativa di egress gratuito quando i clienti optano per le istanze Akamai Compute, riducendo ulteriormente i costi complessivi di egress rispetto a AWS. Non solo si ottiene la transcodifica video a un costo inferiore, ma anche zero costi di egress quando si transcodifica con Akamai e si distribuisce il contenuto con il nostro CDN. Se un cliente utilizza il CDN Akamai per trasferire i video transcodificati da e verso i Point of Presence (PoP), i costi associati vengono effettivamente eliminati. Utilizzando le nostre risorse di calcolo per la transcodifica, i clienti possono beneficiare di spese di uscita minime, garantendo una soluzione conveniente per le loro esigenze di trasferimento dati.
Soluzione: Migrazione a istanze Linode dedicate
Vediamo come questo cliente OTT ha migrato da AWS istanze EC2 VT1 a istanze Linode dedicate da 64 GB. Hanno usato Linode Object Storage per caricare i video e poi li hanno collegati a Linode Kubernetes Engine che ha eseguito la transcodifica video. Una volta completata la transcodifica, i video in uscita sono stati inseriti in un bucket di output e quindi distribuiti con il CDN di Akamai. Vediamo di seguito come le macchine virtuali dedicate da 64 GB di Linode hanno reso possibile questo processo di transcodifica video in modo fluido e conveniente.
Fase 1: Ingestione e archiviazione dei contenuti
In primo luogo, Linode riceve i video grezzi dal vivo o on-demand. Questi video vengono caricati in un object store locale dedicato, Linode Object Storage, appositamente progettato per gestire i contenuti in arrivo. Questo bucket funge da deposito per i video grezzi in attesa di elaborazione. Qui, insieme ai file video, possono essere memorizzati anche i metadati associati a ciascun video, come titolo, descrizione e timestamp. Quando un video viene caricato in questo bucket, inizia la pipeline di elaborazione dei video.
Fase 2: Inizializzazione del flusso di lavoro di transcodifica
Una volta caricati i video grezzi sul bucket Linode, entrano in gioco le macchine virtuali di transcodifica. Queste macchine virtuali dedicate sono configurate in modo da monitorare continuamente il bucket, scansionando i nuovi video che richiedono l'elaborazione. Quando viene rilevato un nuovo video, il software di transcodifica (in questo caso, il cliente ha utilizzato Capella) viene attivato per avviare il processo di transcodifica. Durante il processo di transcodifica, i file video grezzi vengono convertiti in vari formati e risoluzioni ottimizzati per diversi dispositivi e larghezze di banda. È qui che entra in gioco la potenza della transcodifica video su Linode. Le macchine virtuali Linode dedicate sfruttano le capacità di elaborazione parallela per gestire in modo efficiente più attività di transcodifica simultaneamente, garantendo un'elaborazione tempestiva dei video in arrivo.
Fase 3: Memorizzazione dell'output
Mentre il software di transcodifica elabora i video grezzi, i risultati transcodificati vengono generati e memorizzati in un bucket Linode di uscita (o nello stesso bucket in una cartella diversa). Questi video transcodificati sono ora pronti per essere consegnati agli utenti finali, essendo stati trasformati in formati compatibili con un'ampia gamma di dispositivi e piattaforme di streaming. Inoltre, Object Storage di Linode garantisce un'elevata disponibilità e durata dei video transcodificati, con meccanismi di ridondanza e integrità dei dati per salvaguardarli dalla perdita di dati.
Passo 4: Integrazione CDN
Per migliorare le prestazioni e la scalabilità, questo cliente ha scelto di integrare la CDN di Akamai nel suo flusso di elaborazione video. Akamai memorizza nella cache, distribuisce e controlla l'accesso alla libreria video, consegnando i contenuti agli utenti finali con bassa latenza ed elevato throughput. Sfruttando le capacità di caching edge e di distribuzione globale di Akamai, il cliente ha potuto ottimizzare la distribuzione dei contenuti servendo i video dalla posizione edge più vicina all'utente finale, riducendo la latenza e migliorando l'esperienza dell'utente. Inoltre, la distribuzione di contenuti con la CDN di Akamai non comporta costi di uscita perché il cliente ha utilizzato il calcolo di Akamai per la transcodifica.
Fase 5: Gestione e automazione dell'infrastruttura
Per semplificare le operazioni e facilitare la scalabilità, questo cliente ha utilizzato l'API di automazione Linode per gestire l'infrastruttura e distribuire nuove versioni di codice. L'API di automazione di Linode consente il provisioning e la configurazione programmabile di macchine virtuali, volumi di archiviazione e risorse di rete, permettendo di gestire l'infrastruttura in modo efficiente attraverso il codice. Utilizzando l'infrastruttura come codice (IaC), questo cliente ha definito i requisiti dell'infrastruttura in modo dichiarativo utilizzando il codice, automatizzando le attività ripetitive e garantendo la coerenza tra gli ambienti.
Pensieri finali
Spero che questa spiegazione delle sfide poste dalla transcodifica video on-demand, dall'ottimizzazione dell'utilizzo delle macchine virtuali e dal mantenimento dei costi di uscita, abbia contribuito a illustrare una soluzione a un problema che continua a crescere in modo esponenziale, dato che ogni giorno consumiamo sempre più contenuti video in streaming. L'uso delle istanze dedicate di Linode per la transcodifica video si è rivelato più economico del 33% rispetto all'uso delle istanze AWS VT1 nel caso specifico. E ricordate, quando utilizzate Akamai per la transcodifica video e usate il nostro CDN per la distribuzione, i costi di uscita vengono eliminati.
Se volete saperne di più su come implementare questo sistema, leggete questo tutorial sulla Transcodifica video scalabile su Linode, dove imparerete a convertire un file mp4 in HLS con Kubernetes e Capella. Assicuratevi di iscrivervi per ottenere 100 dollari di crediti gratuiti per completare l'esercitazione. Potete anche leggere la nostra nuova guida che vi spiega come impostare la transcodifica live per lo streaming UGC su Akamai.
Commenti