terça-feira, 28 de julho de 2009

Padronização da Cloud - Computação na nuvem ou nas nuvens?

Padronização não é um tema inédito na área da computação distribuída. Em grades computacionais, por exemplo, discutiu-se bastante a necessidade de um padrão das várias tecnologias para que a metáfora da computação fornecida como energia elétrica se tornasse realidade. Alguns esforços, como o da Open Grid Forum (OGF), foram feitos para tal, porém sem muito sucesso.

Como já é característico na ciência da computação, cada grupo de pesquisa ou empresa geralmente cria seu próprio mundo e não há muita preocupação em criar um universo comum em que esses mundos se relacionem. Em Cloud Computing não é diferente. Apesar de ser algo novo, já se nota a nuvem sendo particionada entre diferentes empresas, tecnologias, interfaces, funcionalidades. No artigo The Wrong Cloud, da Maya Design, os autores criticam essa divisão da nuvem: "Today’s so-called cloud isn’t really a cloud at all. It’s a bunch of corporate dirigibles painted to look like clouds. You can tell they’re fake because they all have logos on them. Real clouds don’t have logos".

A idéia da nuvem como algo transparente para o usuário, onde processamento é obtido de forma fácil e elástica, é dificultada pela falta de padronização, resultando em uma depedência de tecnologias que são específicas para cada nuvem. Isto torna a aplicação dependente do provedor, impossibilitando uma fácil migração de um provedor para outro, além da interoperabilidade entre eles.

Para tentar amenizar o problema de padronização da nuvem, foi desenvolvida a libcloud, uma biblioteca para clientes de nuvens computacionais que fornece uma interface única para vários provedores de cloud computing. O projeto ainda é recente e as funcionalidades ainda são bastante limitadas. Porém, uma vantagem é que o projeto é open-source, tornando mais fácil a expansão das funcionalidades e dos provedores suportados.

Talvez uma biblioteca como esta não seja a melhor solução para os problemas de padronização das nuvens computacionais. Um dos motivos é a limitação das funcionalidades dos provedores que surge ao se criar uma interface única para todos eles. Talvez uma padronização adotada por todos os provedores seja a solução ideal, mas experiências passadas mostram que essa não é uma tarefa simples. Como o ideal parece longe de ser alcançado, fica ai a dica de uma biblioteca que tenta "colar" várias nuvens, aumentando um pouco a ilusão de que a computação é feita na nuvem e não nas nuvens.

Um comentário:

  1. Olá Marcos, particularmente acho que o termo mais adequado em nossa língua é "computação em nuvem". O termo não é novo na área de redes e sistemas distribuídos, mas a percepção e concepção do seu significado sofreram mudanças. Para minha surpresa, tenho visto que ainda não há consenso sobre o conceito e a cada paper que leio de algum grupo de pesquisa, percebo que essa nova concepção está "emergindo" e "em construção" pela comunidade. Um fato é que 'a nuvem' certamente proverá um pool de recursos compartilhados através de uma arquitetura orientada a serviços e que dependerá muito mais de plataformas orientadas a sistemas multiagentes e serviços semânticos do que imaginamos hoje. O melhor da festa é que a revolução da cloud, está somente começando. Parabéns ao grupo do LSD.
    Abraços, Roberio.

    ResponderExcluir