segunda-feira, 4 de novembro de 2013

Introdução

A denominação cloud computing chegou ao conhecimento de muita gente em 2008, mas tudo indica que ouviremos este termo ainda por um bom tempo. Também conhecido no Brasil como computação nas nuvens ou computação em nuvem, cloud computing se refere, essencialmente, à ideia de utilizarmos, em qualquer lugar e independente de plataforma, as mais variadas aplicações por meio da internet com a mesma facilidade de tê-las instaladas em nossos próprios computadores.

Entendendo a cloud computing (computação nas nuvens)

Estamos habituados a armazenar arquivos e dados dos mais variados tipos e a utilizar aplicações de maneira on premise, isto é, instaladas em nossos próprios computadores. No ambiente corporativo, este cenário é apenas um pouco diferente, já que nele é mais fácil encontrar aplicações disponíveis em servidores que podem ser acessadas por qualquer terminal autorizado por meio de uma rede.
A principal vantagem deste modelo está no fato de ser possível, pelo menos na maioria das vezes, utilizar as aplicações mesmo sem acesso à internet ou à rede. Em outras palavras, é possível usar estes recursos de maneira off-line. Entretanto, todos os dados gerados estão restritos a este computador, exceto quando compartilhados em rede, coisa que não é muito comum no ambiente doméstico. Mesmo no ambiente corporativo, esta situação pode gerar algumas limitações, como a necessidade de se ter uma licença de um determinado software para cada computador, por exemplo.
A evolução constante da tecnologia computacional e das telecomunicações está fazendo com que o acesso à internet se torne cada vez mais amplo e cada vez mais rápido. Em países mais desenvolvidos, como Japão, Alemanha e Estados Unidos, é possível ter acesso rápido à internet pagando-se muito pouco. Esta tendência cria a condição perfeita para a popularização da cloud computing, fazendo com que o conceito se torne conhecido no mundo todo, inclusive no Brasil.
Com a cloud computing, muitos aplicativos, assim como arquivos e outros dados relacionados, não precisam mais estar instalados ou armazenados no computador do usuário ou em um servidor próximo. Este conteúdo passa a ficar disponível nas nuvens, isto é, na internet. Ao fornecedor da aplicação cabe todas as tarefas de desenvolvimento, armazenamento, manutenção, atualização, backup, escalonamento, etc. O usuário não precisa se preocupar com nenhum destes aspectos, apenas com acessar e utilizar.
Um exemplo prático desta nova realidade é o Google Docs, serviço onde os usuários podem editar textos, fazer planilhas, elaborar apresentações de slides, armazenar arquivos, entre outros, tudo pela internet, sem necessidade de ter programas como Microsoft Office ou OpenOffice.org instalados em suas máquinas. O que o usuário precisa fazer é apenas abrir o navegador de internet e acessar o endereço do Google Docs para começar a trabalhar, não importando qual o sistema operacional ou o computador utilizado para este fim. Neste caso, o único cuidado que o usuário deve ter é o de utilizar um navegador de internet compatível, o que é o caso da maioria dos browsers da atualidade.

Algumas características da cloud computing

Cloud computing - computação nas nuvensTal como já informado, uma das vantagens da cloud computing é a possibilidade de se utilizar aplicações diretamente da internet, sem que estas estejam instaladas no computador do usuário. Mas, há outras significativos benefícios:
- Na maioria dos casos, o usuário pode acessar determinadas aplicações independente do seu sistema operacional ou de hardware;
- O usuário não precisa se preocupar com a estrutura para executar a aplicação: hardware, procedimentos de backup, controle de segurança, manutenção, entre outros, ficam a cargo do fornecedor do serviço;
- Compartilhamento de dados e trabalho colaborativo se tornam mais fáceis, uma vez que todos os usuários acessam as aplicações e os dados do mesmo lugar: a "nuvem". Muitas aplicações do tipo já são elaboradas considerando estas possibilidades;
- Dependendo do fornecedor, o usuário pode contar com alta disponibilidade, já que se um servidor parar de funcionar, por exemplo, os demais que fazem parte da estrutura continuam a oferecer o serviço;
- O usuário pode contar com melhor controle de gastos. Muitas aplicações em cloud computing são gratuitas e, quando é necessário pagar, o usuário só o fará em relação aos recursos que usar ou ao tempo de utilização. Não é, portanto, necessário pagar por uma licença integral de uso, tal como acontece no modelo tradicional de fornecimento de software;
- Dependendo da aplicação, o usuário pode precisar instalar um programa cliente em seu computador. Mas, neste caso, todo ou a maior parte do processamento (e até mesmo do armazenamento de dados) fica por conta das "nuvens".
Note que, independente da aplicação, com a cloud computing o usuário não necessita conhecer toda a estrutura que há por trás, ou seja, ele não precisa saber quantos servidores executam determinada ferramenta, quais as configurações de hardware utilizadas, como o escalonamento é feito, onde está a localização física do data center, enfim. O que importa ao usuário é saber que a aplicação está disponível nas nuvens, não importa de que forma.

Exemplos de aplicações em cloud computing

Os termos cloud computing e computação nas nuvens são relativamente recentes, como você já sabe, mas se analisarmos bem, veremos que a ideia não é, necessariamente, nova. Serviços de e-mail, como Gmail e Yahoo! Mail; discos virtuais na internet, como Dropbox; sites de armazenamento e compartilhamento de fotos ou vídeos, como Flickre YouTube. Todos são exemplos de aplicações que, de certa forma, estão dentro do conceito de computação nas nuvens.
Note que todos estes serviços não são executados no computador do usuário, mas este pode acessá-los de qualquer lugar, muitas vezes sem necessidade de instalar aplicativos em sua máquina ou de pagar licenças de software. No máximo, paga-se um valor periódico pelo uso do serviço ou pela contratação de recursos adicionais, como maior capacidade de armazenamento de dados, por exemplo.
Abaixo, uma breve lista de serviços que incorporam claramente o conceito de cloud computing:
- Google Apps: este é um pacote de serviços que o Google oferece que conta com aplicativos de edição de texto, planilhas e apresentações (Google Docs), ferramenta de agenda (Google Calendar), comunicador instantâneo integrado (Google Talk), e-mail com o domínio próprio (por exemplo, contato@infowester.com), entre outros. Todos estes recursos são processados pelo Google - o cliente precisa apenas criar as contas dos usuários e efetuar algumas configurações. O Google Apps oferece pacotes gratuitos e pagos, de acordo com o número de usuários. Um dos maiores clientes do Google Apps é a Procter & Gamble, que contratou os serviços para mais de 130 mil colaboradores;
- Amazon: a Amazon é um dos maiores serviços de comércio eletrônico do mundo. Para suportar o volume de vendas no período de Natal, a empresa montou uma superestrutura de processamento e armazenamento de dados, que acaba ficando ociosa na maior parte do ano. Foi a partir daí que a companhia teve a ideia de "alugar" estes recursos, o que acabou resultando em serviços como o Simple Storage Solution (S3) para armazenamento de dados e Elastic Compute Cloud (EC2) para uso de máquinas virtuais. É possível saber mais sobre as soluções oferecidas pela Amazon nesta página;
- Aprex: brasileiro, o Aprex oferece um conjunto de ferramentas para uso profissional, como calendário, gerenciador de contatos, lista de tarefas, disco virtual, blog, serviço de e-mail marketing, apresentações, entre outros. Tudo é feito pela Web e, no caso de empresas, é possível até mesmo inserir logotipo e alterar o padrão de cores das páginas. Há opções de contas gratuitas e pagas.

Nuvem privada (private cloud)

Até agora, tratamos a computação nas nuvens como um sistema composto de duas partes: o provedor da solução e o utilizador, que pode ser uma pessoa, uma empresa ou qualquer outra organização. Podemos entender este contexto como um esquema de nuvem pública. No entanto, especialmente no que diz respeito ao segmento corporativo, é possível também o uso do que se conhece como nuvem privada.
Do ponto de vista do usuário, a nuvem privada (private cloud) oferece praticamente os mesmos benefícios da nuvem pública. A diferença está, essencialmente, nos "bastidores", uma vez que os equipamentos e sistemas utilizados para constituir a nuvem estão dentro da infraestrutura da própria corporação.
Em outras palavras, a empresa faz uso de uma nuvem particular, construída e mantida dentro de seus domínios. Mas o conceito vai mais além: a nuvem privada também considera a cultura corporativa, de forma que políticas, objetivos e outros aspectos inerentes às atividades da companhia sejam respeitados.
A necessidade de segurança e privacidade é um dos motivos que levam uma organização a adotar uma nuvem privada. Em serviços de terceiros, cláusulas contratuais e sistemas de proteção são os recursos oferecidos para evitar acesso não autorizado ou compartilhamento indevido de dados. Mesmo assim, uma empresa pode ter dados críticos por demais para permitir que outra companhia responda pela proteção e disponibilização destas informações. Ou, então, a proteção oferecida pode simplesmente não ser suficiente. Em situações como estas é que o uso de uma nuvem privada se mostra adequado.
Uma nuvem privada também pode oferecer a vantagem de ser "moldada" com precisão às necessidades da companhia, especialmente em relação a empresas de grande porte. Isso porque o acesso à nuvem pode ser melhor controlado, assim como a disponibilização de recursos pode ser direcionada de maneira mais eficiente, aspecto que pode impactar diretamente na rotina corporativa.
Empresas como Microsoft, IBM e HP oferecem soluções para nuvens privadas. As entidades interessadas, no entanto, devem contar com profissionais ou mesmo consultoria especializada na criação e na manutenção da nuvem, afinal, uma implementação mal executada pode interferir negativamente no negócio.
Os custos de equipamentos, sistemas e profissionais da nuvem privada poderão ser elevados no início. Por outro lado, os benefícios obtidos a médio e longo prazo, como ampla disponibilidade, agilidade de processos e os já mencionados aspectos de segurança compensarão os gastos, especialmente se a implementação for otimizada com virtualização, padronização de serviços, entre outros.

Nuvem híbrida (hybrid cloud)

Para a flexibilização de operações e até mesmo para maior controle sobre os custos, as organizações podem optar também pela adoção de nuvens híbridas. Nelas, determinadas aplicações são direcionadas às nuvens públicas, enquanto que outras, normalmente mais críticas, permanecem sob a responsabilidade de sua nuvem privada. Pode haver também recursos que funcionam em sistemas locais (on premise), complementando o que está nas nuvens.
Perceba que nuvens públicas e privadas não são modelos incompatíveis entre si. Não é preciso abrir mão de um tipo para usufruir do outro. Pode-se aproveitar o "melhor dos dois mundos", razão pela qual as nuvens híbridas (hybrid cloud) são uma tendência muito forte nas corporações.
A implementação de uma nuvem híbrida pode ser feita tanto para atender a uma demanda contínua, quanto para dar conta de uma necessidade temporária. Por exemplo, uma instituição financeira pode integrar à sua nuvem privada um serviço público capaz de atender a uma nova exigência tributária. Ou então, uma rede de lojas pode adotar uma solução híbrida por um curto período para atender ao aumento das vendas em uma época festiva.
É claro que a eficácia de uma nuvem híbrida depende da qualidade da sua implementação. É necessário considerar aspectos de segurança, monitoramento, comunicação, treinamento, entre outros. Este planejamento é importante para avaliar inclusive se a solução híbrida vale a pena. Quando o tempo necessário para a implementação é muito grande ou quando há grandes volumes de dados a serem transferidos para os recursos públicos, por exemplo, seu uso pode não ser viável.

Finalizando

É claro que ainda há muita coisa por fazer. Por exemplo, a simples ideia de determinadas informações ficarem armazenadas em computadores de terceiros (no caso, os fornecedores de serviço), mesmo com documentos garantindo a privacidade e o sigilo, preocupam pessoas e, principalmente, empresas, motivo pelo qual este ponto precisa ser melhor estudado. Além disso, há outras questões, como o problema da dependência de acesso à internet: o que fazer quando a conexão cair? Algumas companhias já trabalham em formas de sincronizar aplicações off-line com on-line, mas tecnologias para isso ainda precisam evoluir bastante.Na verdade, qualquer tentativa de definir o que é cloud computing pode não ser 100% precisa. Isso porque as ideias por trás da noção de computação nas nuvens são muito novas e as opiniões de especialistas em computação ainda divergem. Mas a noção básica é a que foi explicada neste artigo.
De qualquer forma, o futuro aponta para esse caminho. Além das mencionadas empresas neste artigo, companhias como Dell, Intel, Oracle e Microsoft já estão trabalhando nas mais variadas soluções para cloud computing. Esta última, por exemplo, já até anunciou o Azure, uma plataforma própria para a execução de aplicações nas "nuvens".