Novo servidor para atender novos desafios

14/06/2012

Alguns meses atrás, experimentamos problemas de instabilidade em nossa infraestrutura de streaming. Com isso em mente, iniciamos uma coleta de feedback para tentar estabelecer os problemas mais importantes do ponto de vista do usuário final. O resultado da coleta de feedback e análise técnica no servidor, deixou claro que nossos problemas estavam relacionados a perda de performance no servidor de streaming.

De cloud computing para servidor dedicado

Quando utilizam a Eventials, nossos usuários acabam por associar sua imagem e credibilidade com nossa plataforma. Neste contexto, instabilidade e perda de performance na transmissão são problemas críticos.

O streaming de video é um processo computacionalmente caro, que demanda um servidor de alta performance. Os pricinpais recursos de hardware necessários para uma transmissão de boa qualidade são: taxa de IO de disco, taxa de IO de rede e quantidade de memória disponível.

A maior parte de nossos problemas de instabilidade e performance, particularmente os relacionados a taxa de IO de disco, estavam ligados ao fato de nossos servidores estarem baseados em cloud computing, que fica longe do ideal para este tipo de aplicação.

Juntamente com a equipe da Locaweb, resolvemos migrar nosso servidor de streaming para um HP Blade Server dedicado, contento: 16 cores, 24 GB RAM, 2 discos SAS de 600 GB em RAID 0 e duas placas de rede Gigabit ligadas em bound.

O resultado não poderia ser melhor, este servidor já se encontra em produção por mais de 3 meses e a melhora na performance e qualidade da nossa plataforma ficou clara, 100% de uptime!.

Adaptive streaming e transcoding

Grande parte dos usuários que consomem videos ao vivo e sob demanda na Eventials, possuem uma largura de banda que vai de regular a péssimo, o que torna quase impossível para a maior parte destes usuários assistir uma transmissão de video. A solução ideal para este problema é adaptar a qualidade do video sendo consumido de acordo com a largura de banda do usuário.

Nossa plataforma de streaming é baseada no software de streaming Wowza, que possui suporte a receber uma transmissão ao vivo e sob demanda gerar n* "streams" de saída de qualidade e dimensão variadas (transcoding). Sendo assim, cada "stream" gerado terá um consumo de banda diferente.

Com o servidor de streaming modificado para gerar "streams" com diferentes tamanhos, podemos facilmente adaptar nosso player para consumir o melhor "stream" possível de acordo com a banda do usuário assistindo (Adaptive streaming), permitindo que, mesmo usuários com péssimas conexões possam assistir a transmissões ao vivo e/ou sob demanda.

iPhone, iPad, Android....

Com uma frequência incrível, nossos usuários tem requisitado acesso a Eventials em seus dispositivos móveis, especialmente no iPad. Como nossa transmissão era baseada no formato FLV e a maior parte dos dispositivos móveis não suporta Flash/FLV, não era possível, assistir a uma transmissão de um dispositivo móvel sem suporte a Flash.

A saída para esse problema é encodar a transmissão em um formato de video que dispositivos móveis possam executar. Felizmente, a Adobe adicionou recentemente suporte para encoding de video em H264 e áudio em Speex ao Flash. O Speex é muito menos difundido que o AAC, então convertemos Speex para AAC no processo de transcoding do Wowza. Finalmente áudio e video são empacotados em um aquivo container (mp4) e enviados para o cliente consumir.

H264 e AAC são atualmente os formatos mais bem suportados pelos dispositivos móveis, permitindo assim que um navegador mobile com suporte a tag de video HTML5 possa tocar vídeos ao vivo e sob demanda via Eventials.

Nas próximas semanas estaremos anunciando o streaming adaptative e a transmissão para dispositivos móveis como beta para todos os usuários da Eventials, fique ligado!

Victor Godoy Poluceno
CTO

Nenhum comentário:

Postar um comentário