Home > Portuguese, Tech stuff > Bastidores do Benfica vs Nápoles

Bastidores do Benfica vs Nápoles

October 4th, 2008

Há umas semanas fez-se uma reunião histórica lá no trabalho, a primeira de uma série de tantas para começar a preparar um evento que na minha opinião entrará directo para a história dos momentos SAPO: a transmissão de um jogo de futebol importante ao vivo na Internet, neste caso o Benfica/Nápoles. A oportunidade fez parte de um pacote mais abrangente que incluiu o lançamento do canal Benfica, que como sabem é um exclusivo do Meo, com a sua primeira emissão ao vivo.

Decidiu-se também, que no caso da transmissão pela Internet, iríamos abrir o acesso não só aos nossos clientes mas também aos restantes clientes dos outros ISPs nacionais, e conseguimos ainda garantir direitos de transmissão para uma série de países, incluíndo alguns PALOPs. Perfeito, este projecto tinha todos os ingredientes para se tornar histórico no SAPO: escala, riscos, desafios e muita adrenalina. Foi daqueles raros projectos que consegue transformar um elefante como a PT numa startup cheia de gana, motivação e cooperação. Foi lindo.

Ora, para um evento extraordinário exigem-se medidas extraordinárias e quando a empresa está em absoluta sintonia as coisas tornam-se mais fáceis. Aparecem equipamentos de rede e servidores em duas semanas que demorariam meses a encomendar, fazem-se soluções engenhosas em flash que nunca tínhamos ponderado, ligam-se infra-estruturas de transmissão de sinal vídeo em poucos dias que estavam por um fio há meses, eu sei lá. Tudo normal acho eu, afinal de contas quando se tem cem projectos em mão é preciso estabelecer prioridades.

Depois houve uma reunião particularmente interessante, aquela em que tentámos estimar a audiência online. Como é que estimamos uma coisa que nunca foi feita, em condições que nunca existiram para um público alvo que é caracterizado por ser completamente incerto? Não estimamos, metemos o dedo no ar, multiplicamos por quatro e damos o nossos melhor. A palavra chave aqui é sobredimensionamento. Mas tínhamos alguns indicadores: ninguém consegue ver o jogo na televisão a não ser que seja cliente Meo, a palavra passa depressa na Internet e há Benfiquistas obstinados até dizer chega neste País (e fora dele também). As probabilidades de sermos surpreendidos por uma avalanche eram altas.

Então o que é que fizemos?

Primeiro usámos a infra-estrutura recente do SAPO Vídeos para fazer a transmissão. Reforçámos a farm com 16 novos servidores (yep) quad-core com 4 placas de rede cada um, 3 das quais em giga ethernet ligadas aos routers de saída 1 a quarta ligada ao backend. Ou seja, cada servidor estava pronto para debitar 3 Gigabit/s de streams para a Internet. E reforçamos o equipamento de rede (cisco) para aumentar a capacidade de switching e de portas. No total criámos uma plataforma capaz de debitar um total de cerca de 40 Gigabit/s de conteúdo vídeo. Poderoso, digo eu.

O streaming foi feito em flash (portabilidade foi um requisito absoluto e o flash está instalado em >98% dos computadores) usando o codec H.264 e com um perfil de qualidade (bit-rate e frame-rate) elevado o suficiente para se conseguir ver um jogo de futebol em full-screen em condições boas. Quem teve a oportunidade de experimentar deverá concordar que a qualidade de imagem era excepcional. Este perfil gastaria em média entre 200 a 300kbit/s mas tinha picos de 600Kbit/s. O servidor que usámos para fazer streaming foi o da Wowza, a correr em Linux, e que recomendamos vivamente.

Portanto usámos a estratégia clássica da engenharia, dissemos ao produto que estávamos prontos para 30.000 streams, preparámos-nos para os 50.000 e na prática chegamos aos > 60.000 streams. Isso até nos permitiu brincar com a imagem do evento e usar a metáfora do estádio da Luz que leva 65000(?) pessoas.

Não estão impressionados? Deviam estar.

A fonte do sinal de vídeo foi retirada directamente do headend do IPTV em Monsanto, com um plano B em Picoas usando directamente uma caixa Meo e ainda ponderámos um plano C a partir do Meo satélite, não fosse alguma coisa correr mesmo muito mal.

A malta da rede do acesso ADSL fez um levantamento exaustivo do grau de ocupação dos DSLAMs no País todo, identificámos os mais problemáticos e tomámos medidas de precaução com esses. Montámos um proceso com a equipa de operações e prevenção da PT Comunicações e tivemos informação em tempo real, online, do grau de ocupação da rede. A nossa estratégia, muito honestamente, seria a de informar no site o cliente que não poderia ver o jogo porque o seu DSLAM não tinha mais capacidade disponível. Felizmente só tivemos um alarme durante durante todo o jogo com um DSLAM em Vila Franca de Xira que chegou aos 70% de ocupação. Montaram-se também processos de atendimento a clientes, especialmente por causa do subscrições do Meo e do Meo Sat de última hora.

O site foi todo montado para ser estático com um único pedido dinâmico. Este pedido fazia duas coisas 1. obtinha a origem do IP (por causa dos direitos de transmissão para o estrangeiro) 2. Se o IP fosse nosso (PTC) interagia com o Radius (o sistema de autenticação dos clientes ADSL) para saber em que DSLAM se encontrava (ver parágrafo anterior para perceber).

As páginas e o player de flash foram todas servidas por 3 frontends dedicados a correr nginx. Esqueçam Apache, esqueçam lighttpd. Querem “extreme performance” e modularidade ao mesmo tempo? Dêem uma vista de olhos ao nginx. Não se deixem levar pelo aspecto cru da página, o autor é um senhor. O player de flash foi especialmente feito para esta emissão e trocava uma série de mensagens com outros elementos da página, cliente side. Por exemplo, se durante a emissão vissem uma repetição (aqueles vídeos do lado direito com as jogadas principais), o player pausava o stream (para poupar largura de banda), passava o vídeo da jogada e no fim retomava o stream sem o desligar (para o utilizador nao “perder o lugar”). Pretty clever.

Às 18h15 começou a emissão. Por essa altura já os blogs e fórums tinham feito o seu trabalho (apesar de só termos anunciado a transmissão na manhã do mesmo dia) e 15 minutos depois já estavam 9.000 marrecos pendurados na emissão. Foi o primeiro indicador de que isto ia ser grande. Às 19h15 estavam 30.000, às 20h15 (início do jogo) estavam 40.000 pessoas ligadas e muito pouco tempo depois ultrapassamos a marca das 60.000 streams.

Os servidores de streaming tinham dois soft-limits: 1. número máximo de ligações concorrentes para clientes ADSL SAPO/PT. 2. número máximo para outros clientes (outros ISPs e estrangeiro). O Vitor foi ajustando esses limites à medida que o jogo decorria, nas consolas dos 16 servidores.

A rede ADSL SAPO não foi um problema. De facto só tivemos um alarme durante o jogo e não foi sequer grave. A grande maioria dos nossos clientes tiveram condições para ver o jogo com boas condições sem percalços graves a assinalar.

Também tivemos um pequeno problema com o som. Em circunstâncias ainda não apuradas, alguns cliente ficaram sem som durante a emissão, nada que não se resolvesse com um reload da página (ou com a TSF) mas foi chato, especialmente porque o problema não se manifestou nem nos inúmeros testes que fizemos nem na simulação de carga de 2ª feira. É algo que ficámos de ver como trabalho para casa.

O que correu menos bem foi a transmissão para os restantes ISPs. Porquê? Muito simples, porque a maior parte das ligações de peering entre a PT (ou antiga Telepac) e esses mesmos ISPs bateram completamente no tecto, flat lines. O peering existe porque os ISPs preferem trocar tráfego nacional (teoricamente mais barato) entre eles do que gastarem os seus links internacionais para fazer o mesmo. Até aqui tudo bem, mas o que está mal, IMHO, é que estes links não estão de todos preparados para surpresas como esta porque a capacidade dos mesmos em condições normais já é, na maior dos parte dos casos, bem superior a 60%.

Eu nem quero discutir o modelo do peering que existe, o ponto não é esse. O meu ponto é apenas garantir-vos que o peering nacional simplesmente não está preparado para um evento desta magnitude. De resto nem o peering nem a Internet, é justo dizer. A única forma de garantir QoS numa transmissão ao vivo com exigências anormais é com um controlo total da infra-estrutura ponto a ponto, desde o sinal até à casa do cliente. Podemos discutir as tecnologias emergentes de P2P ou a utilização de CDNs, todas têm vantagens e desvantagens, mas no fim do dia mantenho o que disse.

Portanto, por volta 19h já o link de um outro grande ISP Português estava completamente saturado. E mal começou o jogo saturaram praticamente todos os outros que têm expressão nacional no mercado residencial. Muitos clientes desses ISPs conseguiram ver o jogo, uns com soluções e outros não conseguiam de todo.


(a linha vermelha é o limite físico da linha, a linha azul é o tráfego de saída)

É claro que o povo não quer saber destes detalhes para nada, nem os jornais, *especialmente* quando se trata de um jogo do Benfica. Vai daí que de entre inúmeros elogios, lá surge o comentário incisivo do Benfiquista insatisfeito. Da sua perspectiva, e percebo isso perfeitamente, o SAPO disse que dava mas afinal isto não funciona muito bem. E tirando os meios da especialidade, nem vale a pena tentar dar explicações à malta, porque só vai piorar. Até tivemos direito a cartoon no DN e tudo (o que só por si é motivo de orgulho, diga-se). É claro que disto tudo tiram-se conclusões para o futuro, também aprendemos umas coisas.

Dito isto, considerem-se informados. Segue-se agora alguma estatística, números, que é o que vocês querem:

- 16 servidores com 3Gb/s de capacidade e mais de 4500 streams em alta qualidade e H.264, cada um.
- Infra-estrutura de rede local capaz de debitar 40Gb/s.
- Ultrapassámos os 60.000 streams em simultâneo na segunda parte do jogo (não ultrapassamos antes porque fomos conservadores e fomos abrindo a torneira ao longo do tempo). Usámos Flash9 com H.264 e streaming em rtmp.
- Mais de 270.000 pessoas tentaram ver o jogo.
- Mais de 10.000 pessoas tentaram ver o jogo a partir do estrangeiro, a maior parte conseguiu, mas alguns não puderam por questões de direitos de transmissão. Tivemos um testemunho de um amigo que viu o jogo em Angola com uma placa móvel 3G. O país que mais acessos teve foi a Suiça.
- 36% das tentativas de ver o jogo vieram dos nossos clientes ADSL (com taxas de sucesso muito elevadas), 58% das tentativas vieram de outros ISPs nacionais (com algum sucesso mas mas também com alguns problemas) e 6% das tentativas vieram do estrangeiro.
- Debitámos mais de 9Gbit/s de tráfego adicional para dentro da nossa rede ADSL, debitámos mais de 10Gbit/s para os links de peering dos restantes ISPs (não conseguimos mais, pelo exposto).

Esta foi sem margem para dúvidas a maior transmissão ao vivo feita na Internet em Portugal com números dignos de eventos e audiências mundiais, e tendo em conta que foi um jogo do Benfica, eu diria que tudo o que vier a seguir são amendoins e que isto foi o teste extremo de uma infra-estrutura que decididamente não vamos desmontar.

Termino com um dos gráficos de tráfego, esclarecedor da dimensão que isto teve numa plataforma já de si produtora de quantidades massivas de tráfego, o SAPO Vídeos.

Acho que é esta a força do Benfica.

PS1: Eu sou Sportinguista!
PS2: Obrigado Vitor, Guilherme, Rui, Marco, Paulo e Alvim. Eu estou para aqui a falar mas foram vocês que montaram isto tudo.
PS3: Há videos dos bastidores durante o decorrer do jogo, das equipas do SAPO, da rede e das operações e das Pizzas. Fica o compromisso de os editar e de meter na Net.

Cross-posted no developers.sapo.pt

Portuguese, Tech stuff

  • Jiangliping0302
    Do you want to have a sports jersey that your favorite star wearing or once wore? Be scared away by the expensive cost on jerseys? Don’t worry! We have the 2010 World Cup Jersey, NFL Jerseys, MLB Jerseys, NHL Jerseys and NBA basketball jerseys on sale with at least 25% off. Once you order more, you may possibly able to get a discount on 45% off. Soccer, Hockey, Baseball, Basketball, American Football, there are always an ocean of fans on these games. Just like ladies are crazy for handbags, shoes and jewellery, almost every male guy has their interest with sports equipment. Isn’t it proud for you to have the jerseys you alwas dream about? Come on, big discount on this season. Get your NFL jerseys for September and your NBA jerseys for the coming season.
  • Para quando os videos dos bastidores disto celso?
  • Filipe M
    Interessante!
    Mas, porque não usaram Multicast?
  • Olavo Santos
    Boas.

    Em Portugal é sempre bom ver este tipo de iniciativas, especialmente descritas em termos técnicos para todos nós aprendermos.

    Parabéns!

    Mas... O problema não está no peering.

    Está na forma como vocês desenharam a vossa solução técnica. Funcionou para os vossos clientes, mas não para o resto da internet em portugal.

    O problema esteve portanto do vosso lado. E quem assim o argumentou esteve correcto. O problema foi do SAPO!

    Vocês, para não variar, continuam a ser muito pouco "neutrais".

    search: network neutrality

    Fizeram o approach a outros ISP's para minimizar à priori os problemas de tráfego? Falaram com eles para arranjar soluções? E eles, responderam?

    É que soluções, com o conhecimento que vocês demonstram, soluções existem. É preciso é vontade para as implementar.

    Já agora, por comparação, a CNN fez meses depois "1.3 million concurrent live streams" com o "obama inauguration speech". E funcionou!

    Best regards,

    @952, Nbk

    P.s. - E a boca do costume: O Sapo *não* é a internet. Stop acting like it is. ;-)
  • FT
    Acompanhe os jogos da Liga Sagres aqui -> www.futeboltuga.com
  • para kem n liga nada a futebol, aki fica a minha kestao:
    Toda essa disponibilidade de equipamento e mao de obra só aconteceu, pq era para um jogo do benfica, n foi?
  • Fizeram um excelente trabalho!
    Muitos parabéns e que iniciativas como esta se venham a repetir!
  • Carlos Gonçalves
    Parabéns amigos do SAPO. Embora usasse a concorrência (CABOVISAO) assisti ao jogo quase perfeitamente. O unico problema foi que tinha quase 15 seg de diferença para a TSF. Resolvi o problema desligando o rádio e ficando exclusivamente ligado ao SAPO. Repitam que o pessoal agradece.
  • Eu comecei a ver o jogo pelo SAPO a partir dos ~15 min da primeira parte em Ubuntu com o browser Firefox. Da primeira tentativa (que demorou algum tempo), recebi a mensagem (por sinal mt original), que o "estádio estava cheio" e lá consegui entrar depois de ter sido redireccionado automaticamente para outra conexão alternativa. No inicio até o som consegui ouvir mas foi por pouco tempo e como não tinha tempo para ver o jogo até ao fim... até nem me importei.
    Parabéns ao SAPO e mandem mais detalhes técnicos, mesmo que a maioria não faça ideia do que vocês estão a falar :-)
  • Parabéns

    Não só pela transmissão, mas também por esta magnifica explicação
  • Parabens pelo vosso esforço tecnologico e pessoal em cuidar que o evento era visto em boas condiçoes.
    As falhas que reportam tem a ver com as politicas "internet" dos ISP's do que com a vossa infraestrutura.
  • foi excelente da tua parte teres partilhado isto com o público em geral :-)
    Parabén pelo trabalho ... infelismente só consegui ver a primeira parte com excelente qualidade mas pelos vistos a culpa nem foi do sapo como explicaste

    cá aguardo os videos do backstage :-)

    PS: peço desculpa por ter feito o comentário noutro post q não tinha nada a ver :P
  • E menos covardes também!
  • BLA BLA BLA BLA
    COMMENT_DELETED
  • Excelente post. Acho sinceramente que falta muita partilha de como funcionam as coisas nos bastidores. Não que não tenha interesse, mas sim porque ou porque não temos tempo, ou porque trata-se de "corporate information".
    Obrigado pela partilha, é com este tipo de post que aprendemos e vemos as coisas com outros olhos.

    Já agora, não vi o jogo, não sou do Benfica, nem gosto de futebol, mas reconheço o trabalho brutal que tiveram ao montar este tipo de infraestruturas. Só isso merece os meus parabéns!
  • DarkUser089
    Ta td dito.

    Vivo na Suiça e fiquei bastante contente por poder ver o SLB msm sem ter possibilidades de ter a MEO. *ao menos legalmente ;)*

    Viusse perfeitamente, no meu portatil falhava o som mas no pc deu perfeitamente. Vi a emissao do Principio ao fim e so posso dar os meus parabens a Sapo por esse grande projecto q me safou a noite hehe ;)

    Abracos
  • Viva,

    Não teria sido melhor fazer a dstribuição de carga com um sistema tipo BitTorrent?

    Cumprimentos
  • Sérgio
    Parabéns a toda essa equipa! Eu vi em perfeitas condições. Espero que seja para durar. Força BENFICA!
  • Os meus parabéns! Não vi o jogo, nem na TV, nem pela Internet, mas com esses números, o que foi feito, e o resultado que teve, estão sem dúvida de parabéns. Fico à espera das novidades com o aproveitamento dessa infra-estrutura.

    Obrigado e um abraço!
  • Pedro Ribeiro
    Boas Celso,

    Post bastante interessante, em especial para mim que trabalho em R&D de MobileTV e IPTV.
    Chegaram a considerar a possibilidade de fazer multicast streaming, pelo menos dentro da vossa rede?
    (sim, pq o routing multicast entre ISPs é praticamente para esquecer). Dessa forma poderiam fornecer uma feed com um bitrate bastante mais elevado, sem comprometer os limites de tráfego na estrutura.

    Cheers!
  • Celso Martinho
    Tecnologia só, por favor.
  • Nuno
    Parabens ao autor que não se deixou levar pela clubite e comentou POR ESCRITO aquilo que tanta gente tem medo de afirmar em Portugal.
    Este simples facto de criar um canal tv pode ser a maior medida anti corrupção da história deste país.
    É um ataque a toda a teia de interesses que governa efectivamente Portugal.
    O que se seguirá agora ? depois deste enorme susto que é a Benfica Tv vem lá um "Apito Dourado" a sério para defender a máfia da bola ?
  • Parabéns a todos vocês pelo feito e mais um obrigado por partilhares!
  • Muitos parabéns... a todos vós, ao "Google" português.
    Realmente Portugal tem mostrado que quando se empenha numa determinada tarefa, a faz melhor que todos os outros.
    Ao terem ainda mais 2 planos de backup da emissão, mostram um enorme profissionalismo.
    Gostando desta matéria como gosto, (não do futebol mas sim dos "bastidores") acho que foi uma operação memorável.
    Parabéns uma vez mais ao Celso e a toda a equipa.
  • Jose
    Parece que as coisas não correram assim tão bem apesar da infraestrutura montada: http://fail.blogs.sapo.pt/1420.html
  • Com esta estrutura, acho que mais rapidamente o SAPO tinha razão para criar um canal de televisão do que o próprio Benfica.

    Ah, ou então aproveitavam-na para o SAPO torrentes :)
  • Arnaldo
    A iniciativa é boa, gostaria de saber se é apenas marketing do Benfica para chamar clientes ou é para continuar.

    A qualidade poderia ter sido mais reduzida, para suportar mais users online.

    Nem sei como pensavam em 30.000, quando era praticamente lógico que "todo mundo" iria querer ver o jogo.
  • h t r
    um dia vamos todos ter ipv6.. real multicast :)

    btw, congrats
  • xikkuh
    muitos parabens :) grande sucesso! tive pena que não consegui ver bem com a minha placa 3G mas penso q é porque a minha ligação é baixa.
  • Parabéns pela iniciativa! O SAPO está a pensar voltar a fazer transmissões do género, seja de futebol ou de outro tipo de conteúdos?
  • Mais um post excelente... é sempre bom ter um panorama do que se passa por trás das cenas.

    Mas para a próxima, podem experimentar programar isso tudo em Assembler, para ficar mais eficiente! ;)
    ehehe
  • Hugo
    O problema com o som também se passou comigo, mas só enquanto estive a usar o Mozilla Firefox, depois experimentei outro browser (Internet Explorer) e correu as mil maravilhas.
    Já agora parabéns e obrigado, porque estava a pensar que não ia poder assistir ao jogo e graças a vocês foi possível.
  • Fica bem claro que fizeram o que puderam. Já tive outros exemplos, de outras áreas do SAPO, que se trabalha dando tudo. E eu admiro-vos, a sério! São portugueses, são o maior projecto da web nacional.
blog comments powered by Disqus