Há muitos custos associados à criação na nuvem. Para a transcodificação de vídeo, temos custos de armazenamento, custos de instância de computação e, o mais importante, custos de saída. Os custos de saída são muitas vezes ignorados e podem causar um impacto significativo em seus resultados. O desafio surge quando você deseja distribuir conteúdo globalmente em todos os formatos corretos e, ao mesmo tempo, manter os custos baixos. Toda vez que os dados são acessados ou transferidos para fora da nuvem, seja por streaming de conteúdo de vídeo, download de arquivos ou veiculação de páginas da Web, as taxas de saída entram em jogo. Em uma escala global, esses custos se tornam um item de linha significativo.
Então, como podemos fornecer ativos para públicos em todo o mundo sem gastar muito? Esse é um desafio que muitas empresas enfrentam, mais recentemente por um de nossos clientes que é um provedor de conteúdo sob demanda e de TV baseado na Internet. Esse cliente é uma plataforma OTT (over-the-top) proeminente, especializada em fornecer canais de TV ao vivo, conteúdo sob demanda e serviços de catch-up TV para espectadores em todo o mundo. Eles investem muito em soluções escaláveis baseadas em nuvem para garantir experiências de streaming com o mínimo de buffering e latência, especialmente durante os períodos de pico de tráfego. Inicialmente, esse cliente recorreu às GPUs do Oracle Cloud e às instâncias doAWS VT1 para lidar com a transcodificação de vídeo. No entanto, esses provedores de nuvem tinham um preço alto, tanto que se tornaram financeiramente inviáveis para o cliente. Cada vez que o conteúdo de vídeo era transmitido, baixado ou servido aos usuários finais, eles incorriam em taxas de saída substanciais. Esses custos aumentaram rapidamente, especialmente devido ao seu público global e à necessidade de streaming de alta qualidade e baixa latência. Eles queriam maximizar o fluxo de transcodificação por VM para obter uma melhor relação custo/desempenho e, ao mesmo tempo, implantar seus vídeos transcodificados para os usuários a fim de fornecer conteúdo de baixa latência. No entanto, à medida que a base de usuários crescia e a distribuição de conteúdo era dimensionada globalmente, o ônus financeiro tornou-se insustentável.
Diante do aumento dos custos, o cliente precisava encontrar uma solução mais econômica sem sacrificar o desempenho ou a experiência do usuário. Isso levou a uma reavaliação completa de sua estratégia de transcodificação de vídeo e distribuição de conteúdo, sobre a qual falei anteriormente nesta postagem do blog. Eles buscaram alternativas que permitissem otimizar o número de fluxos de transcodificação por máquina virtual (VM), melhorando assim a relação custo-desempenho. Além disso, o objetivo era implementar vídeos transcodificados mais perto dos usuários para reduzir a latência e aprimorar ainda mais a experiência de visualização.
Os custos crescentes associados ao AWS VT1, principalmente nas taxas de saída para transferência do AWS , levaram a uma reavaliação da plataforma de distribuição de conteúdo de transcodificação de vídeo.
Os desafios da transcodificação de vídeo sob demanda
Imagine que você é um engenheiro de uma grande plataforma OTT, responsável pela transcodificação de vídeo para milhões de usuários. É uma tarefa assustadora que exige tanto conhecimento técnico quanto prudência financeira. Sua função é fundamental para garantir que os espectadores recebam fluxos de vídeo de alta qualidade e sem interrupções, independentemente de sua localização ou do dispositivo que estejam usando.
Todos os dias, você gerencia uma frota de máquinas virtuais (VMs) encarregadas do trabalho pesado de codificar o conteúdo de vídeo. Esse processo não se trata apenas de converter formatos de vídeo; trata-se de otimizar para diferentes resoluções, taxas de bits e codecs para garantir que o conteúdo seja acessível e tenha uma ótima aparência em várias telas, de smartphones a TVs 4K. O desafio é manter essas VMs em execução com eficiência para lidar com o fluxo constante de dados de vídeo recebidos, evitando gargalos e minimizando a latência.
Também é preciso ter em mente que a transcodificação de vídeo consome muitos recursos. Cada vídeo deve ser processado em vários formatos e qualidades para acomodar diferentes condições de rede e recursos do dispositivo. Isso requer um poder computacional significativo, o que se traduz em altos custos de CPU, GPU e recursos de memória. Como engenheiro, você monitora constantemente esses recursos, equilibrando a carga em várias VMs para evitar a utilização excessiva e garantir o desempenho ideal.
Além das demandas computacionais, há outro aspecto crítico a ser considerado: os custos de saída de dados. Toda vez que um vídeo é transmitido, baixado ou transferido para uma rede de distribuição de conteúdo (CDN), sua empresa incorre em taxas de saída. Esse custo geralmente se baseia no volume de dados transferidos e pode variar dependendo de fatores como o destino dos dados, a distância percorrida e a largura de banda consumida. Essas taxas podem aumentar rapidamente, especialmente quando se lida com grandes volumes de conteúdo de alta definição transmitido para um público global. O gerenciamento desses custos é essencial para manter os resultados financeiros de sua empresa.
Para enfrentar esses desafios, você precisa de uma estratégia que maximize a eficiência da sua infraestrutura de transcodificação e, ao mesmo tempo, mantenha os custos sob controle. Para isso, você precisa otimizar a utilização da VM e garantir que cada VM seja usada em todo o seu potencial sem ser sobrecarregada. Isso se traduz em transcodificação de mais fluxos por VM. Você também precisa escolher o provedor de nuvem certo. Diferentes provedores de nuvem oferecem modelos de preços e recursos de desempenho variados. É fundamental avaliar essas opções para encontrar um provedor que ofereça o melhor equilíbrio entre custo e desempenho. Também é necessário implementar estratégias para reduzir as taxas de saída, como armazenar em cache o conteúdo acessado com frequência mais próximo dos usuários finais, usar CDNs de forma eficaz e considerar soluções alternativas de armazenamento em nuvem com custos de saída mais baixos. Por fim, você precisa explorar instâncias de computação econômicas, como a Linode, que pode oferecer preços previsíveis e melhores índices de custo-desempenho em comparação com os provedores de nuvem tradicionais.
Em essência, sua função como engenheiro é garantir que sua infraestrutura de transcodificação de vídeo seja robusta, dimensionável e econômica. Isso envolve um equilíbrio constante entre a otimização do desempenho técnico e o gerenciamento das restrições financeiras. Ao implementar uma estratégia cuidadosa e aproveitar as ferramentas e tecnologias certas, você pode atender às demandas de milhões de usuários e, ao mesmo tempo, proteger os resultados financeiros da sua empresa.
Análise de custo para transcodificação de vídeo
Vamos dar uma olhada em uma análise de custo detalhada comparando a transcodificação de vídeo usando instâncias Linode dedicadas de 64 GB com instâncias AWS EC2 VT1 vt1.6xlarge, considerando os custos de saída e a relação custo-desempenho total.
Vamos supor que um provedor de streaming precise transcodificar 100 horas de conteúdo de vídeo por mês. Cada arquivo de vídeo tem um tamanho médio de 1 GB, e o provedor deseja transcodificar para três formatos de saída diferentes para oferecer suporte a vários dispositivos e resoluções. Também vamos supor que são necessárias 2 horas para transcodificar 1 hora de conteúdo de vídeo em ambos os provedores e que cada um deles precisa de 50 instâncias.
Custo por instância de CPU dedicada | Custo total para 50 instâncias | |
Instância de Linode dedicada de 64 GB | US$ 0,864/hora | 50 instâncias * US$ 0,864/hora * 200 horas = US$ 8.640/mês |
AWS instância vt1.6xlarge | US$ 1,30/hora | 50 instâncias * US$ 1,30/hora * 200 horas = US$ 13.000/mês |
Essa comparação de custos ilustra a economia significativa obtida com a migração para as VMs dedicadas da Linode. Nessa análise, o uso de Linode Dedicated Instances para transcodificação de vídeo é 33% mais barato do que o uso de AWS VT1. Além dos custos de instância mais baixos, a Akamai também oferece uma alocação significativa de saída gratuita quando os clientes optam por instâncias do Akamai Compute, reduzindo ainda mais os custos gerais de saída em comparação com AWS. Você não só consegue fazer a transcodificação de vídeo por um custo menor, mas também obtém custos de saída zero ao transcodificar com a Akamai e distribuir o conteúdo com nossa CDN. Se um cliente usa a CDN da Akamai para transferir vídeos transcodificados de e para Pontos de Presença (PoPs), os custos associados são efetivamente eliminados. Ao utilizar nossos recursos de computação para transcodificação, os clientes podem desfrutar de despesas mínimas de saída, garantindo uma solução econômica para suas necessidades de transferência de dados.
Solução: Migração para instâncias de Linode dedicadas
Vamos dar uma olhada em como esse cliente OTT migrou de instâncias AWS EC2 VT1 para instâncias Linode dedicadas de 64 GB. Eles usaram o Linode Object Storage para fazer upload dos vídeos e, em seguida, conectaram-no ao Linode Kubernetes Engine, que realizou a transcodificação do vídeo. Quando a transcodificação foi concluída, os vídeos de saída foram colocados em um bucket de saída e, em seguida, distribuídos com a CDN da Akamai. Vamos nos aprofundar nas etapas abaixo de como as VMs dedicadas de 64 GB da Linode fizeram com que esse processo de transcodificação de vídeo ocorresse sem problemas e de forma econômica.
Etapa 1: Ingestão e armazenamento de conteúdo
Primeiro, a Linode faz a ingestão dos vídeos brutos ao vivo ou sob demanda. Esses vídeos são carregados em um armazenamento de objetos local e dedicado, o Linode Object Storage, projetado especificamente para lidar com o conteúdo recebido. Esse bucket funciona como um repositório de vídeos brutos que aguardam processamento. Aqui, os metadados associados a cada vídeo, como título, descrição e registros de data e hora, também podem ser armazenados junto com os arquivos de vídeo. Quando um vídeo é carregado para esse bucket, o pipeline de processamento de vídeo é iniciado.
Etapa 2: Inicialização do fluxo de trabalho de transcodificação
Depois que os vídeos brutos são carregados no bucket da Linode, as VMs de transcodificação entram em ação. Essas VMs dedicadas são configuradas para monitorar continuamente o bucket, procurando novos vídeos que exijam processamento. Ao detectar um novo vídeo, o software de transcodificação (nesse caso, o cliente usou o Capella) é acionado para iniciar o processo de transcodificação. Durante esse processo de transcodificação, os arquivos de vídeo brutos são convertidos em vários formatos e resoluções otimizados para diferentes dispositivos e larguras de banda. É aqui que o poder da transcodificação de vídeo na Linode entra em ação. As VMs dedicadas da Linode aproveitam os recursos de processamento paralelo para lidar com eficiência com várias tarefas de transcodificação simultaneamente, garantindo o processamento oportuno dos vídeos recebidos.
Etapa 3: Armazenamento de saída
À medida que o software de transcodificação processa os vídeos brutos, as saídas transcodificadas são geradas e armazenadas em um bucket de saída do Linode (ou o mesmo bucket em uma pasta diferente). Esses vídeos transcodificados agora estão prontos para serem entregues aos usuários finais, tendo sido transformados em formatos compatíveis com uma ampla gama de dispositivos e plataformas de streaming. Como bônus, o site Object Storage da Linode garante alta disponibilidade e durabilidade dos vídeos transcodificados, com mecanismos de redundância e integridade de dados para proteger contra a perda de dados.
Etapa 4: Integração com CDN
Para melhorar o desempenho e a escalabilidade, esse cliente optou por integrar a CDN da Akamai em seu fluxo de trabalho de processamento de vídeo. A Akamai armazena em cache, distribui e controla o acesso à biblioteca de vídeos, entregando conteúdo aos usuários finais com baixa latência e alta taxa de transferência. Ao aproveitar o cache de borda e os recursos de distribuição global da Akamai, o cliente conseguiu otimizar a entrega de conteúdo servindo vídeos do local de borda mais próximo ao usuário final, reduzindo a latência e melhorando a experiência do usuário. Como bônus, não há cobrança de saída ao distribuir conteúdo com a CDN da Akamai porque o cliente usou a computação da Akamai para transcodificação.
Etapa 5: Gerenciamento e automação da infraestrutura
Para simplificar as operações e facilitar a escalabilidade, esse cliente usou a API de automação da Linode para gerenciar sua infraestrutura e implantar novas versões de código. A API de automação da Linode permite o provisionamento programável e a configuração de máquinas virtuais, volumes de armazenamento e recursos de rede, permitindo que a infraestrutura seja gerenciada de forma eficiente por meio de código. Ao usar a infraestrutura como código (IaC), esse cliente definiu seus requisitos de infraestrutura de forma declarativa usando código, automatizou tarefas repetitivas e garantiu a consistência entre os ambientes.
Considerações finais
Espero que essa explicação sobre os desafios da transcodificação de vídeo sob demanda, otimizando a utilização da VM e mantendo os custos de saída baixos, tenha ajudado a ilustrar uma solução para um problema que continua a crescer exponencialmente à medida que consumimos cada vez mais conteúdo de streaming de vídeo diariamente. Usar as instâncias dedicadas da Linode para transcodificação de vídeo acabou sendo 33% mais barato do que usar as instâncias do AWS VT1 no caso de uso específico. E lembre-se, quando você usa a Akamai para transcodificação de vídeo e usa nossa CDN para distribuição, seus custos de saída são eliminados.
Se quiser saber mais sobre como implementar isso por conta própria, leia este tutorial sobre Transcodificação de vídeo escalável na Linode, no qual você aprenderá a converter um arquivo mp4 em HLS com o Kubernetes e o Capella. Não se esqueça de se inscrever para obter US$ 100 em créditos gratuitos para concluir o tutorial. Você também pode ler nosso novo guia que o orienta na configuração da transcodificação ao vivo para streaming de UGC na Akamai.
Comentários