Há muitos custos associados à construção na nuvem. Para a transcodificação de vídeo, temos custos de armazenamento, custos de instância de computação e, mais importante, custos de saída. Os custos de saída são muitas vezes ignorados e podem ter um impacto significativo nos seus resultados. O desafio surge quando se pretende distribuir conteúdos globalmente em todos os formatos correctos, mantendo os custos baixos. Sempre que os dados são acedidos ou transferidos para fora da nuvem, quer se trate de streaming de conteúdos de vídeo, transferência de ficheiros ou fornecimento de páginas Web, as taxas de saída entram em jogo. Numa escala global, estes custos tornam-se um item de linha significativo.
Então, como é que fornecemos activos a audiências de todo o mundo sem gastar muito dinheiro? Este é um desafio que muitas empresas enfrentam, mais recentemente por um dos nossos clientes que é um fornecedor de conteúdos de televisão e a pedido baseado na Internet. Este cliente é uma plataforma over-the-top (OTT) proeminente, especializada no fornecimento de canais de TV em direto, conteúdos a pedido e serviços de catch-up TV a espectadores de 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 buffer e latência, especialmente durante os períodos de pico de tráfego. Inicialmente, este cliente recorreu a GPUs Oracle Cloud e a instânciasAWS VT1 para tratar da 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, descarregado ou servido aos utilizadores finais, o cliente incorria 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. Queriam maximizar o fluxo de transcodificação por VM para obter uma melhor relação custo/desempenho, ao mesmo tempo que implementavam os vídeos transcodificados aos utilizadores para fornecer conteúdo de baixa latência. No entanto, à medida que a sua base de utilizadores crescia e a distribuição de conteúdos se expandia globalmente, os encargos financeiros tornaram-se insustentáveis.
Face a estes custos crescentes, o cliente precisava de encontrar uma solução mais económica sem sacrificar o desempenho ou a experiência do utilizador. Isto levou a uma reavaliação completa da sua estratégia de transcodificação de vídeo e distribuição de conteúdos, sobre a qual já falei anteriormente nesta publicação do blogue. Procuraram alternativas que lhes 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, pretendiam implementar vídeos transcodificados mais perto dos seus utilizadores para reduzir a latência e melhorar ainda mais a experiência de visualização.
Os custos crescentes associados ao AWS VT1 - particularmente nas taxas de saída para transferência para fora 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 a pedido
Imagine que é um engenheiro de uma grande plataforma OTT, responsável pela transcodificação de vídeo para milhões de utilizadores. É uma tarefa assustadora que exige conhecimentos técnicos e prudência financeira. O seu papel é fundamental para garantir que os espectadores recebem fluxos de vídeo de alta qualidade e sem falhas, independentemente da sua localização ou do dispositivo que estão a utilizar.
Todos os dias, gere uma frota de máquinas virtuais (VMs) encarregadas do trabalho pesado de codificação de conteúdos de vídeo. Este processo não se resume à conversão de formatos de vídeo, mas sim à otimização para diferentes resoluções, taxas de bits e codecs para garantir que o conteúdo é acessível e tem um excelente aspeto em vários ecrãs, desde smartphones a televisores 4K. O desafio é manter essas VMs em execução de forma eficiente para lidar com o fluxo constante de dados de vídeo de entrada, 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 capacidades dos dispositivos. Isso requer um poder computacional significativo, o que se traduz em altos custos de CPU, GPU e recursos de memória. Como engenheiro, está constantemente a monitorizar estes recursos, equilibrando a carga em várias VMs para evitar a sobreutilização e garantir um desempenho ótimo.
Para além das exigências computacionais, há outro aspeto crítico a considerar: os custos de saída de dados. Sempre que um vídeo é transmitido, descarregado ou transferido para uma rede de distribuição de conteúdos (CDN), a sua empresa incorre em taxas de saída. Este custo baseia-se normalmente no volume de dados transferidos e pode variar em função de factores como o destino dos dados, a distância percorrida e a largura de banda consumida. Estas taxas podem aumentar rapidamente, especialmente quando se trata de grandes volumes de conteúdos de alta definição transmitidos para um público global. Gerir estes custos é essencial para manter os resultados da sua empresa.
Para enfrentar estes desafios, é necessária uma estratégia que maximize a eficiência da sua infraestrutura de transcodificação, mantendo os custos sob controlo. Para isso, é necessário otimizar a utilização da VM e garantir que cada VM é utilizada em todo o seu potencial sem ser sobrecarregada. Isto traduz-se na transcodificação de mais fluxos por VM. Também é preciso escolher o provedor de nuvem certo. Diferentes fornecedores de serviços na nuvem oferecem diferentes modelos de preços e capacidades de desempenho. É crucial avaliar essas opções para encontrar um fornecedor 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 o armazenamento em cache de conteúdos frequentemente acedidos mais perto dos utilizadores finais, utilizando CDNs de forma eficaz e considerando soluções alternativas de armazenamento em nuvem com custos de saída mais baixos. Por último, é necessário explorar instâncias de computação económicas, como a Linode, que pode oferecer preços previsíveis e melhores rácios de custo-desempenho em comparação com os fornecedores tradicionais de serviços em nuvem.
Essencialmente, a sua função como engenheiro é garantir que a sua infraestrutura de transcodificação de vídeo é robusta, escalável e económica. Isso envolve um equilíbrio constante entre a otimização do desempenho técnico e o gerenciamento de restrições financeiras. Através da implementação de uma estratégia ponderada e da utilização das ferramentas e tecnologias certas, é possível satisfazer as exigências de milhões de utilizadores e, ao mesmo tempo, salvaguardar os resultados da sua empresa.
Análise de custos para transcodificação de vídeo
Vejamos uma análise de custos detalhada que compara a transcodificação de vídeo utilizando 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 fornecedor de streaming precisa de transcodificar 100 horas de conteúdo de vídeo por mês. Cada ficheiro de vídeo tem um tamanho médio de 1 GB, e o fornecedor pretende transcodificar para três formatos de saída diferentes para suportar vários dispositivos e resoluções. Também assumiremos que são necessárias 2 horas para transcodificar 1 hora de conteúdo de vídeo em ambos os fornecedores 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 Linode dedicada de 64 GB | $0.864/hora | 50 instâncias * $0,864/hora * 200 horas = $8.640/mês |
AWS vt1.6xlarge instance | $1.30/hora | 50 instâncias * $1,30/hora * 200 horas = $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 instâncias dedicadas da Linode para transcodificação de vídeo é 33% mais barato do que o uso de AWS VT1. Além de 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: Migrando 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 carregar os vídeos e, em seguida, conectaram-no ao Linode Kubernetes Engine, que realizou a transcodificação de 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 acontecesse sem problemas e de maneira econômica.
Etapa 1: Ingestão e armazenamento de conteúdos
Primeiro, a Linode ingere os 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 atua como um repositório para vídeos brutos que aguardam processamento. Aqui, os metadados associados a cada vídeo, como o título, a descrição e os carimbos de data/hora, também podem ser armazenados juntamente com os ficheiros 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 do Linode, as VMs de transcodificação entram em ação. Essas VMs dedicadas são configuradas para monitorar continuamente o bucket, procurando por novos vídeos que exijam processamento. Ao detetar um novo vídeo, o software de transcodificação (neste 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 eficientemente com várias tarefas de transcodificação simultaneamente, garantindo o processamento oportuno dos vídeos recebidos.
Etapa 3: Armazenamento da saída
À medida que o software de transcodificação processa os vídeos brutos, as saídas transcodificadas são geradas e armazenadas num bucket Linode de saída (ou o mesmo bucket numa pasta diferente). Esses vídeos transcodificados estão agora 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 um bónus, o 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.
Passo 4: Integração CDN
Para um melhor desempenho e escalabilidade, este cliente optou por integrar a CDN da Akamai no seu fluxo de trabalho de processamento de vídeo. A Akamai armazena em cache, distribui e controla o acesso à biblioteca de vídeo, entregando conteúdo aos utilizadores 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 do usuário final, reduzindo a latência e melhorando a experiência do usuário. Como um 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: Gestão e automatizaçã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 ambientes.
Considerações finais
Espero que esta explicação dos desafios da transcodificação de vídeo a pedido, optimizando 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 vídeo em streaming diariamente. Usar as instâncias dedicadas da Linode para transcodificação de vídeo acabou sendo 33% mais barato do que usar instâncias 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 você gostaria de aprender mais sobre como implementar isso sozinho, leia este tutorial sobre Transcodificação de vídeo escalável no Linode, onde você aprenderá como converter um arquivo mp4 em HLS com Kubernetes e Capella. Certifique-se de se inscrever para obter $ 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 UGC Streaming na Akamai.
Comentários