General
Karin Breitman, professora da PUC, comenta a computação em nuvem
A cloud, hoje, é uma realidade. Já existem várias ofertas de serviço de guarda de arquivos online, tais como o Dropbox.com, que usa a nuvem Amazon S3, e outros como Box.net, Mozy, Sugarsync e ZumoDrive. O próprio GMail é correio eletrônico na nuvem.
A DIGITAL entrevistou uma das maiores feras nacionais em cloud, a professora Karin Breitman, do Departamento de Informática do Centro Técnico Científico da PUC (CTC/PUC-Rio) e Diretora de Publicações da SBC. A entrevista na íntegra está em catalisando.com/karin. Karin recebeu o prêmio Microsoft Research /Software Engineering Innovation Foundation (SEIF) Awards 2010 e foi a única brasileira dos 12 selecionados entre mais de 80 projetos que concorriam ao prêmio ( bit.ly/premiokarin). Como Coordenadora da Engenharia de Computação, ela se dedica a Ciência Aplicada. O título de seu projeto vencedor, traduzido, é "Engenharia de software baseado em rede: integrando elasticidade no projeto inicial".
Qual é conceito desse prêmio que você recebeu?
É um prêmio para desenvolver pesquisa em cloud. Já temos aqui na PUC-Rio alguns projetos em andamento. Tenho dois orientados, Marcello Azambuja e Rafael Pereira, que trabalham na Globo.com e que fizeram dois aplicativos usando cloud para resolver duas questões que eles têm lá. A primeira delas é sobre compressão de vídeo, objeto do trabalho do Rafael. O site disponibiliza cerca de 500 minutos de vídeo por dia, que precisa ser exibido em diversas plataformas - iPhone, Android, Blackberry etc. Isso gera uma necessidade de processamento monumental. Diante disso, ou a empresa compra novos servidores, ou trata o material na nuvem.
A outra questão tem a ver com a nossa incapacidade de prever, no ambiente de internet, volumes de acesso e de contribuições externas. O que antes era regulado pela proximidade ou pela dificuldade, hoje não tem mais essas restrições.
Estamos construindo sistemas cuja demanda é impossível adivinhar. Esse é justamente o trabalho do Marcello, aplicado ao sistema de inscrição do Big Brother Brasil.
Para substituir o antigo processo de entrega de vídeos por meio de videocassetes, o BBB usa um método bem diferente. O candidato filma em uma câmera digital simples ou mesmo no celular. No site, ele envia o arquivo de vídeo via rede, em quase qualquer formato, digita alguns metadados e pronto. Em termos de processamento, o trabalho da emissora é bem grande. Todos os vídeos são convertidos para um formato único de modo a agilizar o trabalho dos juízes.
Além disso, todos os vídeos escolhidos precisam ser arquivados. Só que, como sabemos, brasileiro deixa tudo para a última hora. Assim, cerca de 60% das submissões de vídeos ao BBB são feitas nos últimos dias do prazo. Isso cria a necessidade de processar rapidamente um volume gigantesco de vídeos para entregá-los aos juízes em tempo hábil.
Na última edição do BBB, diante dessa explosão de volumes, foi preciso comprar vários servidores para conseguir digerir a massa de vídeos submetidos. Só que, depois de feita a seleção, não havia mais o que fazer com aquelas máquinas.
O novo sistema baseado na nuvem será usado na próxima edição do BBB e já está sendo utilizada no "Eu Repórter", uma experiência bem sucedida em UGC ("User Generated Content" - conteúdo gerado pelo usuário).
É esse o tema de seu artigo recente?
Sim, exatamente. Escrevemos um artigo para a revista "Computer" intitulado "When TV Dies, Will It Go to the Cloud?" ( scr.bi/whentvdies ). Com a crescente participação do usuário enviando vídeos, que são arquivos bem pesados, uma aplicação precisa estar preparada para receber essa enorme massa de material.
Esses sistemas que vocês desenvolveram na PUC-Rio já são conhecidos nos círculos acadêmico e empresarial?
Começamos fazendo várias apresentações do nosso sistema em eventos no exterior. E agora, até os caras da Amazon já estão vindo para o Brasil, pois nossos projetos já são um case da empresa.
Já existe lá fora mais gente usando a nuvem para vídeo?
Muita gente já usa ( bit.ly/map-app ) a nuvem da Amazon e outras para processamento de vídeo, fotos e outras aplicações. O Hulu.com é outro exemplo, no caso de armazenamento. A Netflix.com é outro exemplo de uso da nuvem da Amazon para armazenamento de vídeo e, no caso deles, tem um peso especial a questão da proximidade física entre o servidor e quem requisitou o material, já que não se pode desprezar o pequeno aumento no tempo de resposta em função da distância.
Esses dois trabalhos orientados por você têm em comum o vídeo como aplicação. É proposital?
Não, simplesmente calhou. Eram problemas reais que precisavam ser resolvidos, e aqui nós fazemos pesquisa aplicada. As aplicações dessa tecnologia vão desde pegar um grande problema e dividi-lo em pedacinhos, como é o caso do processamento de vídeo, até pegar um problema pequeno e que pode se multiplicar de maneira imprevisível.
O Serpro, por exemplo, está interessado numa apresentação nossa no CONSEGI, o 3º Congresso Internacional de Software Livre e Governo Eletrônico. Eles têm interesse desde o nosso caso do BBB até a aplicação em voto eletrônico e no volumoso processamento da Caixa Econômica Federal e do Imposto de Renda. Eles têm um projeto grande de nuvem para o governo.
E não é à toa que o tema dessa conferência vai ser justamente cloud. Eles têm uma necessidade enorme de armazenamento na nuvem, especialmente para implementar a política de dados governamentais abertos. E tudo isso precisa ser guardado em "local" diferente daquele onde ficam as verdadeiras bases de dados do governo. Eles necessitam disso também para fazer processamento virtual nos âmbitos municipal, estadual e federal. Em termos de economia, a tecnologia de nuvem chegou num ótimo momento para o governo, pois não faz mais sentido uma pequena prefeitura empatar dinheiro em um sistema físico de computadores quando pode apelar para o processamento na nuvem.
E de que trata especificamente o seu trabalho vencedor do prêmio da Microsoft?
Nesse trabalho eu falo do futuro da tecnologia de nuvem. Eu vejo duas oportunidades nesse setor. A primeira delas é atual e tem a ver com agilidade. De um lado temos os provedores de nuvem que já estão todos arrumados. Os grandes players nós já sabemos quem são - a Amazon, que é grande e é a líder, por enquanto; a Rackspace , que é o segundo maior; a Microsoft, que só agora está entrando no jogo; no Brasil, temos a Alog e a Tecla , que são do mesmo grupo; e a Unisys e a IBM, que também atuam aqui no país. Em suma, no final das contas esse mercado provavelmente vai ficar na mão de cinco ou seis fornecedores. Aliás, o pessoal da Amazon está vindo ao Brasil mês que vem, para prospectar o mercado.
A segunda oportunidade tem a ver com o fator custo, que é um dos que mais pesa no fim das contas. É inacreditável como é mais barato trabalhar na nuvem. O que ainda é difícil é configurar, pois muita coisa ainda é feita "na mão", em telas de terminal, num ambiente pouco amigável. Ainda há muito espaço para automatização e melhoramentos nessa interface.
E como está o mercado de profissionais nessa área de nuvem? Já temos um bom material humano pronto para prestar serviços no setor?
O importante é formar os estudantes encorajando-os a abrir pequenas empresas, que seriam incubadas, e que prestariam esse serviço de configuração e operação para clientes e firmas ainda sem experiência em nuvem. Grandes clientes poderiam ser o governo e muitas empresas privadas. Estamos com falta de profissionais nessa área. Essa carência é um dos temas que eu pretendo abordar nessa apresentação da CONSEGI.
Como será o futuro da nuvem nos próximos anos?
Daqui a uns cinco anos, essa ideia já terá estourado. Ninguém vai se lembrar que hoje se economizava muito dinheiro usando a nuvem. Também não lembrarão que era algo difícil de configurar. Minha pesquisa a longo prazo visa a entender como isso vai mudar a prática de desenvolvimento de software. Como é que a gente desenvolve e pensa num software? Como é a análise estruturada de um software que pode ir para a nuvem, crescendo ou diminuindo à medida que precisar?
Você pretende se associar a outros pesquisadores nesse trabalho?
Sim, existem alguns outros pesquisadores pensando nessas questões. E todos pensamos naquilo que queremos fazer nessa área, imaginando que tudo é possível. São horizontes incríveis que se abrem, e a cloud é apenas um passinho em direção a isso. Você sonha, a gente tenta fazer.
Quebrando um problemão em probleminhas menores
A codificação rápida de vídeos baseia-se na arquitetura Split&Merge, desenvolvida pela PUC-Rio.
Na primeira fase, a de "split", o vídeo é dividido em chunks (pedaços) que são processados paralelamente, depois mesclados, e o conjunto é comprimido. Cada chunk corresponde a uma marcação temporal de início e fim, o que torna o processo mais rápido e eficiente.
O tamanho de cada chunk é sempre maior ou igual ao tamanho do GOP (group of pictures) , ou seja, maior do que a distância entre os key-frames do vídeo, de modo que não haja uma redução na eficiência da compressão.
Um algoritmo específico decide o tamanho otimizado de cada chunk, de acordo com o tamanho de entrada. As trilhas de áudio e vídeo são codificadas em separado, o que permite aplicar diferentes perfis de codificação, que são escolhidos para cada processamento, juntamente com o formato de saída. O provisionamento de recursos é feito dinamicamente na nuvem, de acordo com a quantidade de fragmentos a serem processados.
Na segunda fase, chamada "merge", os chunks de vídeo são ordenados para compor a sequência lógica do vídeo. Em seguida são mesclados. O áudio é mesclado e remixado ao vídeo. Em seguida, o arquivo final é reconstruído, reconstituindo o vídeo inteiro já processado.
O processo transcorre utilizando o CloudCrowd, um framework baseado em Ruby e Sinatra, que realiza o processamento de tarefas de maneira paralela e distribuída. O resultado é a redução drástica da duração do processo de codificação de vídeo.
Na produção diária da Globo.com, por exemplo, em que são codificados cerca de 500 minutos de vídeo diariamente, o novo procedimento permite que esse custo diário fique em US$ 56,26, utilizando a plataforma de nuvem da Amazon (EC2 e S3).
Para ilustrar a redução de custo e tempo de processamento, pode-se considerar o vídeo de uma partida de futebol, por exemplo, a final da Copa do Mundo. Pelo método convencional, o processamento demoraria 12 horas. Com a técnica S&M, leva apenas dois minutos, ao custo de US$ 1.
A monstruosa torrente de vídeos do Big Brother Brasil
Para desenvolver um sistema que irá receber uma quantidade não prevista de contribuições de material, é preciso que ele esteja preparado para qualquer volume.
Com isso em mente, a equipe da PUC-Rio bolou uma arquitetura de sistemas abertos e públicos de submissão de material baseados na cloud.
Como sabemos, as câmeras digitais popularizaram a produção doméstica de fotos e vídeos, permitindo ao cidadão produzir mídia com muita facilidade. Além disso, tornam-se mais comuns aplicações cuja entrada seja material em vídeo.
Receber, processar e codificar o conteúdo em vídeo é um trabalho bastante caro. Fora isso, é bastante difícil estimar de antemão quantos recursos serão necessários.
A equipe da PUC-Rio encarou o case do Big Brother Brasil, que é transmitido em flashes pela TV aberta, mas continuamente ao vivo pela TV a cabo em modalidade pay-per-view. São cerca de 80 milhões de espectadores na TV. Os candidatos enviam ao programa mais de 200 mil vídeos com suas performances. Cada submissão é composta de informações em texto e o vídeo propriamente dito. A nuvem da Amazon Web Services (EC2, S3 e SQS) é usada para armazenar o material e codificar os vídeos.
Usando a metodologia desenvolvida na PUC, o custo para processar cem mil vídeos na nuvem é de apenas US$ 506,10.
No futuro, um universo ainda maior de aplicativos irá rodar na cloud, mas o ideal é que esses futuros sistemas sejam desenvolvidos do zero já pensando na nuvem. Devem ser sistemas modulares e já devem antever tanto quanto possível mudanças e evoluções nos sistemas de nuvem.
O Globo, Carlos Alberto Teixeira, 12 de julho de 2010