Vantagens e Desafios

A computação em nuvem possui uma série de vantagens e desafios que precisam ser analisados. Por ser um paradigma relativamente novo, ela ainda possui problemas significativos a serem resolvidos e oportunidades a serem consideradas. A seguir, esse cenário é descrito.

Vantagens

Uma vantagem direta da computação em nuvem é a possibilidade de acesso aos dados a partir de qualquer lugar, desde que haja uma conexão de boa qualidade com a Internet. Os usuários não ficam presos a uma infraestrutura física porque os seus dados e aplicativos são acessados através de serviços. Além disso, graças ao modelo pay-per-use, o usuário só paga por aquilo que consome, não havendo gastos excessivos e consumos desnecessários de recursos. Isso é possível graças à escalabilidade dos recursos em uma nuvem. A escalabilidade, por sua vez, ainda é um desafio nesse novo paradigma, e será mais bem descrita na próxima subseção.

Outra vantagem que também pode ser obtida a partir da escalabilidade é a minimização dos riscos de infraestrutura. Uma empresa, por exemplo, não precisa comprar muitos recursos físicos, como servidores, para desenvolver uma aplicação que pode ser ou não ser bem-sucedida. Uma nuvem híbrida também pode ser utilizada para que os riscos de infraestrutura sejam minimizados. A responsabilidade da infraestrutura passa a ser dos prestadores de infraestrutura, e não mais do usuário [SUN 2009a].

Desafios

Como a computação em nuvem é um modelo novo, há ainda uma série de desafios a serem enfrentados, como a segurança, a escalabilidade, a interoperabilidade, a confiabilidade e a disponibilidade. Estes desafios são mostrados a seguir.

Segurança

Um dos maiores desafios a serem enfrentados pela computação em nuvem é a segurança. Nesse novo modelo de computação, o data center armazena informações que os usuários tradicionalmente armazenariam em seus próprios computadores. Além disso, esses usuários desconhecem tanto a localização exata de seus dados quanto a fonte dos dados que estão armazenados junto aos deles [KAUFMAN 2009]. Assim, a proteção da privacidade dos usuários e a integridade das informações devem ser consideradas pelos prestadores de infraestrutura e de serviços [DIKAIAKOS et al. 2009].

Atualmente, as nuvens públicas são mais comuns do que as nuvens privadas. Essa característica aumenta consideravelmente a exposição dos dados a ataques [ARMBRUST et al. 2009]. Esses dados, por sua vez, podem ser procedentes de fontes públicas, nos quais as preocupações de segurança são mínimas, ou podem ser privados e conter informações extremamente sigilosas, como registros médicos e números de identidade.

De maneira a criar um ambiente seguro mínimo, garantindo, assim, a confidencialidade e a integridade dos dados, as seguintes capacidades devem ser oferecidas em uma nuvem [KAUFMAN 2009]:

  • um esquema de criptografia, de forma a assegurar que o ambiente de armazenamento proteja os dados;
  • um controle de acesso rigoroso, de forma a prevenir o acesso não autorizado aos dados;
  • um sistema de gravação de cópias de segurança e um armazenamento seguro dessas cópias.

Essas três capacidades, contudo, podem não ser suficientes para proteger os dados nas nuvens. Em relação à criptografia, surge a questão de quem fica responsável pelo gerenciamento das chaves, por exemplo. Com isso, é necessário que novos mecanismos de proteção de dados sejam investigados, para que a privacidade e a segurança dos usuários sejam garantidas [DIKAIAKOS et al. 2009].

No modelo da computação em nuvem, os usuários ficam dependentes da tecnologia oferecida por outros indivíduos ou empresas [WEBER 2008]. Portanto, o próprio modelo produz uma grande sensação de insegurança, o que pode acabar afastando os usuários de usá-lo. Porém, é importante considerar que questões de segurança como essas são difíceis de medir. Por exemplo, criptografar os dados antes de colocá-los em uma nuvem pode ser até mesmo mais seguro que deixar os dados sem criptografia em um sistema de armazenamento local [ARMBRUST et al. 2009].

Escalabilidade

A escalabilidade é uma característica fundamental na computação em nuvem. As aplicações desenvolvidas para uma nuvem precisam ser escaláveis, de forma que os recursos utilizados possam ser ampliados ou reduzidos de acordo com a demanda. Para que isso seja possível, as aplicações e os seus dados devem ser flexíveis (ou "elásticos") o suficiente. Porém, tornar as aplicações e os dados “elásticos” pode não ser tão simples assim, dependendo da implementação [SUN 2009a].

Além das aplicações e dos seus dados serem escaláveis, essa escalabilidade também deve ser realizada rapidamente; ou seja, a resposta das aplicações à demanda dos recursos não pode demorar. Essa particularidade é essencial, visto que, na computação em nuvem, trabalha-se com o modelo pay-per-use e, conseqüentemente, é importante evitar que os usuários desperdicem dinheiro [ARMBRUST et al. 2009].

Interoperabilidade

A interoperabilidade diz respeito à capacidade dos usuários de executar os seus programas e os seus dados em diferentes nuvens e plataformas. Isso permite, por exemplo, que as aplicações não fiquem restritas a somente uma nuvem. Essa é uma característica amplamente desejável no ambiente da computação em nuvem. Ultimamente, muitas aplicações têm sido desenvolvidas considerando esse fator. Porém, ainda há a necessidade da implementação de padrões e interfaces para que essa portabilidade seja possível [DIKAIAKOS et al. 2009].

A ausência, em geral, dessa característica acaba prejudicando a adoção da computação em nuvem por parte de muitas organizações [ARMBRUST et al. 2009]. Os usuários têm a preocupação de não conseguirem retirar seus dados e seus programas de uma nuvem e colocá-los em outra com relativa facilidade, havendo a sensação de que os dados ficam presos em uma determinada nuvem.

Confiabilidade

Um sistema é dito confiável se ele não falha com freqüência e, mais importante, se ele não perde os dados ao falhar [SUN 2009a]. As aplicações desenvolvidas para a computação em nuvem devem ser confiáveis, ou seja, elas devem possuir uma arquitetura que permita que os dados permaneçam intactos mesmo que haja falhas ou erros em um ou mais servidores ou máquinas virtuais sobre os quais essas aplicações estão decompostas. Essa característica está associada à realização de cópias de segurança dos dados. O armazenamento dessas cópias deve ser feito em local seguro para que, caso haja alguma falha nas aplicações e elas percam os dados, estes, ou pelo menos uma parte deles, possam ser recuperados.

Disponibilidade

Os usuários da computação em nuvem possuem uma grande preocupação com a questão da disponibilidade dos serviços. Eles esperam que as aplicações estejam sempre disponíveis, ou seja, em execução durante todo o tempo, principalmente nos momentos necessários [SUN 2009a]. Porém, há exemplos de serviços que já ficaram indisponíveis por um determinado período, como o Gmail, que, em 08/11/2008, ficou fora do ar por, aproximadamente, uma hora e meia [ARMBRUST et al. 2009].

Esse tipo de problema pode ser prejudicial aos usuários quando os mesmos possuem um ponto único de falha, ou seja, uma única nuvem com as suas aplicações e os seus dados. Portanto, uma alternativa é ter mais de um prestador e, conseqüentemente, mais de uma nuvem, o que permite aos usuários executar seus programas em uma nuvem enquanto a outra apresenta problemas técnicos [ARMBRUST et al. 2009]. Porém, essa alternativa pode não ser tão simples assim quando uma aplicação não funciona corretamente em outras nuvens. Como já visto anteriormente, a interoperabilidade ainda é um desafio a ser enfrentado.