Computação em Nuvem, Devo me Preocupar?

Vamos imaginar que você é um executivo de uma grande corporação, onde suas responsabilidades específicas incluem garantir que todos os seus funcionários executem o trabalho com equipamentos e softwares adequados. Com o passar dos anos, tanto o software como o hardware ficam obsoletos e a compra de computadores para todos não é suficiente. Além disso, é necessário comprar ou atualizar as licenças de software para permitir maior produtividade aos seus colaboradores. Sempre que se tem uma nova contratação, é necessário comprar mais software ou certificar-se que a licença do software atual permite que outro usuário acesse o sistema e aplicativos.

Por que ao invés de instalar um pacote de software para cada computador não se pode simplesmente carregar uma aplicação? Por que não permitir que os colaboradores façam um login e busquem tudo o que precisam em um serviço baseado na Web, que hospeda todos os programas que o usuário precisaria para o seu trabalho? Por que não pensar em acessar máquinas remotas, de alta capacidade e de propriedade de outra empresa, desde e-mail, programas de processamento de texto, bem como programas de análise de dados complexos?

Pronto, chegamos ao ponto crucial para entender a ideia do que se chama de computação em nuvem, e que está modificando a indústria da computação por inteiro.

Neste novo cenário, é possível lembrar e avaliar como a computação tem se desenvolvido no decorrer dos anos, e a figura 1 apresenta esta evolução, considerando seis fases.

 

Evolução dos sistemas computacionais.
Figura 1 – Evolução dos sistemas computacionais (fonte: Borko Furht. Handbook of Cloud Computing. Springer, 2010).

 

Em um sistema de computação em nuvem, há uma mudança significativa na carga de trabalho. Computadores locais já não têm que fazer todo o trabalho pesado quando se trata de aplicativos em execução. A rede de computadores que compõem a nuvem lida com eles, criando custos locais de hardware e software cada vez menores, uma vez que existe queda nas demandas no lado do usuário. A única coisa que o computador do usuário precisa é ser capaz de executar software e a interface do sistema de computação em nuvem, que pode ser tão simples como um navegador de Internet, onde a rede da nuvem cuida do resto.

Há uma boa chance de que você já tenha usado alguma forma de computação em nuvem. Se você tem uma conta de e-mail com um serviço de e-mail baseado na Web, como Hotmail, Yahoo! Mail ou Gmail, então você já teve ou tem alguma experiência com a computação em nuvem. Em vez de executar um programa de e-mail no seu computador, você efetua o login em uma conta de e-mail Web remotamente. O software e armazenamento para a sua conta não existe no seu computador – o serviço é no computador da nuvem.

 

Arquitetura da Computação em Nuvem

Embora a computação em nuvem seja um campo emergente da ciência da computação, a ideia já existe há alguns anos. É chamado de computação em nuvem porque os dados e aplicações existem em uma “nuvem” de servidores Web que estão alocados em algum lugar, não necessariamente, de conhecimento do usuário.

Quando se fala de um sistema de computação em nuvem, é útil dividi-lo em duas seções: front-end e back-end. Eles se conectam uns com os outros por meio de uma rede, geralmente a Internet. O front-end é o lado do usuário do computador, ou cliente enquanto o back-end é a seção ou a “nuvem” do sistema.

A extremidade front-end inclui o computador (ou rede de computadores) do cliente bem como os aplicativos necessários para acessar o sistema de computação em nuvem onde nem todos os sistemas de computação em nuvem têm a mesma interface do usuário. Por exemplo, sistemas de serviços como programas de e-mail baseado na Web ou mesmo navegadores Web existentes, como o Internet Explorer ou Firefox tem diferentes interfaces com o usuário. Outros sistemas têm aplicações únicas que oferecem acesso à rede para os clientes.

 

Dispositivos e suas interfaces ligados a nuvem
Figura 2 – Dispositivos e suas interfaces ligados a nuvem (fonte: http://www.quatro.com/profile/cloud.asp).

 

Vale lembrar que uma das maiores vantagens da nuvem, na maioria das vezes, é a possibilidade de utilizar os processadores em plena capacidade. Algo que não acontece no caso corporativo, o que significa que existe um grande poder de processamento, não utilizado, que está indo para o lixo. Obviamente, é possível “enganar” um servidor físico em pensar que é, na verdade, vários servidores, cada um rodando com seu próprio sistema operacional independente. A técnica é chamada de virtualização de servidores. Ao maximizar a saída de servidores individuais, a virtualização de servidores reduz a necessidade de mais máquinas físicas, o que faz com que a nuvem possa gerenciar muito melhor este espaço do que uma empresa comum, uma vez que estes espaços podem ser compartilhados, em um local seguro, lógica e fisicamente.

No back-end existem diversos computadores, servidores e sistemas de armazenamento de dados que criam a “nuvem” de serviços de computação. Em teoria, um sistema de computação em nuvem poderia incluir praticamente qualquer programa de computador que se possa imaginar, desde processamento de dados para os jogos de vídeo até complexos sistemas de controle gerencial. Normalmente, cada aplicação tem seu próprio servidor dedicado.

 

Grids, Clouds e Utilities, quantas opções… E agora?

A computação em nuvem está intimamente relacionado com grid computacional e computação utilitária. Em um sistema de computação em grid, computadores em rede são capazes de acessar e usar os recursos de todos os outros computadores na rede, mas em sistemas de computação em nuvem, a ideia é que normalmente só se aplique na extremidade back-end da rede. Utility computing é um modelo de negócio em que uma empresa paga outra empresa para o acesso a aplicativos de computador ou de armazenamento de dados.

Se uma empresa de computação em nuvem tem diversos clientes, é provável que haja uma grande procura por muito espaço de armazenamento por todas as empresas. Sistemas de computação em nuvem precisam de pelo menos o dobro do número de dispositivos de armazenamento de que necessita para manter todas as informações de seus clientes armazenados, uma vez que esses dispositivos, como todos os computadores, podem ocasionalmente danificar. Um sistema de computação em nuvem deve fazer uma cópia de todas as informações dos seus clientes e armazená-lo em outros dispositivos. As cópias permitem que o servidor central acesse as máquinas de backup para recuperar dados que de outro modo seriam inacessíveis, de forma a manter uma redundância dos dados.

 

Aplicações de Computação em Nuvem

Um servidor central administra o sistema, monitorando o tráfego de cliente e demandas para garantir que tudo corra bem. Segue-se um conjunto de regras chamadas protocolos e usa-se um tipo especial de software chamado middleware, proporcionando que computadores em rede se comuniquem uns com os outros.

As aplicações de computação em nuvem são praticamente ilimitadas. Uma vez com o middleware correto, um sistema de computação em nuvem poderia executar todos os programas que um computador normal poderia executar.

Por que alguém iria querer contar com outro sistema de computador para executar programas e armazenar dados? Seguem apenas algumas razões.

  • Os clientes seriam capazes de acessar seus aplicativos e dados de qualquer lugar a qualquer momento. Eles poderiam acessar o sistema de computação em nuvem usando qualquer computador ligado à Internet.
  • Os dados não se limitam a uma unidade de disco rígido no computador de um usuário ou da rede interna da corporação. Neste caso, diminuem-se os custos de hardware.
  • Sistemas de computação em nuvem reduziriam a necessidade de hardware avançado no lado do cliente. Não é necessário comprar o computador mais rápido com mais memória, porque o sistema de nuvem iria cuidar dessas necessidades. Em vez disso, pode-se adquirir um terminal de computador de baixo custo. O terminal poderia incluir um monitor, dispositivos de entrada, como um teclado e mouse, e apenas ter a capacidade de processamento suficiente para executar o middleware necessário para se conectar ao sistema de nuvem.
  • Não seria necessário um disco rígido grande, porque se armazenaria todas as informações em um computador remoto.
  • As empresas que dependem de computadores tem que ter certeza que existe o software certo no lugar certo para alcançar as metas. Sistemas de computação em nuvem permitem a essas organizações o acesso de toda a empresa para aplicações de computador. As empresas não têm que comprar um conjunto de licenças de software ou software para todos os funcionários. Em vez disso, a empresa poderia pagar uma taxa “taxímetro” para uma empresa de computação em nuvem.
  • Servidores e dispositivos de armazenamento digital ocupam espaço. Algumas empresas alugam espaço físico para armazenar servidores e bancos de dados. Por outro lado, a computação em nuvem dá a essas empresas a opção de armazenar dados sobre hardware em outra empresa, eliminando a necessidade de espaço físico no front-end.
  • As corporações poderiam economizar dinheiro em suporte de TI. Um hardware simplificado seria, em teoria, um problema pequeno, considerando a heterogeneidade da rede e seus sistemas operacionais.
  • Se o back-end do sistema de computação em nuvem é um sistema de computação em grid, então o cliente pode tirar proveito do poder de processamento de toda a rede. Muitas vezes, os cientistas e pesquisadores trabalham com cálculos tão complexos que levaria anos para computadores individuais concluí-los. Em um sistema de computação em grid, o cliente pode enviar o cálculo para a nuvem para o processamento. O sistema de nuvem iria explorar o poder de processamento de todos os computadores disponíveis no back-end, acelerando significativamente o cálculo.

Na computação em nuvem, as empresas vendem serviços:

  • Plataforma como Serviço (PaaS)

Os ambientes estão prontos para usar, sem a preocupação com a manutenção, atualização de sistema operacional, configuração das ferramentas de segurança e gestão dos servidores cloud.

  • Infraestrutura como Serviço (IaaS)

O usuário cria, configura e administra seus servidores, e escolhe as linguagens de programação de sua preferência para atender aos requisitos técnicos do negócio.

  • Software como Serviço (SaaS)

Representa o maior mercado de cloud e ainda estão crescendo rapidamente. SaaS utiliza a Web para fornecer aplicativos que são gerenciados por um fornecedor terceiro e cuja interface é acessada por parte dos clientes. A maioria dos aplicativos de SaaS pode ser executado diretamente de um navegador Web sem a necessidade de downloads ou instalações, embora alguns exigem pequenos plug-ins.

 

Preocupações de Cloud Computing

Embora os benefícios da computação em nuvem pareçam ser convincentes, existem quais problemas em potencial?

Talvez as maiores preocupações sobre a computação em nuvem sejam a segurança e privacidade. A ideia de entregar dados importantes para outra empresa preocupa. Executivos de empresas podem hesitar em tirar proveito de um sistema de computação em nuvem porque eles não podem manter informações de chaves dentro da sua empresa.

O contra-argumento a esta posição é que as empresas que oferecem serviços de computação em nuvem vivem e morrem por suas reputações.  As empresas de computação em nuvem devem ter medidas de segurança confiáveis ​​no local, caso contrário, o serviço perde a confiabilidade. É de extrema importância e interesse destas empresas empregar as técnicas mais avançadas para proteger os dados de seus clientes.

Como é que a computação em nuvem pode afetar outros setores? Há uma crescente preocupação na indústria de TI sobre como a computação em nuvem poderia afetar o negócio de manutenção e reparação de computadores, uma vez que, se as empresas passarem a usar sistemas de computador simplificados, eles terão menos necessidades de TI. (Alguns especialistas da indústria acreditam que a necessidade de empregos de TI vai migrar para o back-end do sistema de computação em nuvem.)

Outra área de pesquisa na comunidade de ciência da computação é a computação autonômica. Um sistema de computação autônomo é autogestão, o que significa que o sistema monitora a si mesmo e toma medidas para prevenir ou reparar problemas.

Atualmente, a computação autonômica é principalmente teórica, mas, se computação autônoma tornar-se uma realidade, poderia eliminar a necessidade de muitos postos de trabalho de manutenção de TI, o que por um lado pode ser bom mas, por outro pode ser um problema.

Privacidade é outra questão. Se um cliente pode entrar a partir de qualquer local para acessar dados e aplicativos, é possível que a privacidade do cliente possa ser comprometida. Empresas de computação em nuvem terão que encontrar maneiras de proteger a privacidade do cliente com mecanismos de criptografia e autenticação. Uma maneira é a utilização de técnicas de autenticação, tais como nomes de usuário e senhas. Outra é empregar um formato de autorização onde cada usuário pode acessar somente os dados e aplicativos relevantes para o seu trabalho.

 

Conclusão:

Algumas perguntas sobre a computação em nuvem são mais filosóficas. O sistema de computação em nuvem, que fornece o espaço de armazenamento real, ele é próprio? É possível para uma empresa de computação em nuvem negar o acesso do cliente aos dados desse cliente, quando, por exemplo, deixa de pagar pelo serviço? Se eu posso ter o acesso a nuvem, um usuário malicioso também pode? Como meus dados serão protegidos? Várias empresas, escritórios de advocacia e universidades estão debatendo estas e outras questões sobre a natureza da computação em nuvem.

 

Bibliografia

Borko Furht. Handbook of Cloud Computing. Springer, 2010.

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *