Grid x Nuvem

Um grid é um sistema que coordena recursos que não estão sujeitos a um controle centralizado, usando protocolos e interfaces de maneira a garantir um nível elevado de qualidade de serviço [FOSTER 2002]. Dessa forma, a computação nas nuvens e a computação em grid compartilham alguns objetivos similares, como reduzir os custos de computação e aumentar a flexibilidade ao usar hardware operado por terceiros. Porém, apesar do que pode parecer, elas diferem em alguns pontos cruciais, os quais devem ser claramente esclarecidos. Alguns desses pontos mais importantes são apresentados a seguir [VAQUERO et al. 2009].

  • Alocação dos recursos: enquanto a computação em grid realiza um compartilhamento por igual dos recursos entre os usuários, a computação nas nuvens só aloca um recurso a um determinado usuário caso ele queira usá-lo; logo, isso sugere a idéia de que o recurso é totalmente dedicado àquele usuário; além disso, não ocorre propriamente um compartilhamento de recursos na computação nas nuvens, devido ao isolamento realizado através da virtualização;
  • Virtualização: ambos realizam a virtualização de dados e aplicativos, escondendo a heterogeneidade dos recursos existentes; todavia, a computação nas nuvens também possui a virtualização dos recursos de hardware (o conceito de virtualização será mais bem explicado na próxima seção);
  • Plataformas e dependências: as nuvens permitem que os usuários usem softwares independentes de um determinado domínio; ou seja, os softwares rodam em ambientes customizados, e não padronizados; os grids, ao contrário, só aceitam aplicações que sejam executáveis em seu sistema (aplicações que sejam “gridified”);
  • Escalabilidade: tanto os grids como as nuvens lidam com as questões de escalabilidade; nos grids, o usuário manualmente habilita a escalabilidade através do aumento do número de nós utilizados; nas nuvens, por outro lado, a escalabilidade é automática, requerendo uma reconfiguração que seja dinâmica.

Já existem algumas abordagens que combinam grids e nuvens em um mesmo sistema. Porém, na computação nas nuvens, o elevado nível de abstração para o usuário permite a existência de somente um conjunto limitado de recursos explícitos, o que pode restringir consideravelmente a capacidade dos grids [VAQUERO et al. 2009].