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.
Neste texto, você entenderá melhor o assunto e será
apresentado aos conceitos relacionados.
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
Tal 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.
Software as a Service (SaaS)
Intimamente ligado à cloud computing está o conceito de
Software as a Service (SaaS) ou, em bom português,
Software como Serviço. Em sua essência, trata-se de
uma forma de trabalho onde o software é oferecido como serviço,
assim, o usuário não precisa adquirir licenças de
uso para instalação ou mesmo comprar computadores ou servidores
para executá-lo. Nesta modalidade, no máximo, paga-se um
valor periódico - como se fosse uma assinatura - somente pelos
recursos utilizados e/ou pelo tempo de uso.
Para entender melhor os benefícios do SaaS, suponha que uma empresa
que tem vinte funcionários necessita de um software para gerar
folhas de pagamento. Há várias soluções prontas
para isso no mercado, no entanto, a empresa terá que comprar licenças
de uso do software escolhido e, dependendo do caso, até mesmo hardware
para executá-lo. Muitas vezes, o preço da licença
ou mesmo dos equipamentos pode gerar um custo alto e não compatível
com a condição de porte pequeno da empresa.
Se, por outro lado, a empresa encontrar um fornecedor de software para
folhas de pagamento que trabalha com o modelo SaaS, a situação
pode ficar mais fácil: essa companhia poderá, por exemplo,
oferecer este serviço por meio de cloud computing e cobrar
apenas pelo número de usuários e/ou pelo tempo de uso.
Desta forma, a empresa interessada paga um valor baixo pelo uso da aplicação.
Além disso, hardware, instalação, atualização,
manutenção, entre outros, ficam por conta do fornecedor.
Também é importante levar em conta que o intervalo entre
a contratação do serviço e o início de sua
utilização é extremamente baixo, o que não
aconteceria se o software tivesse que ser instalado nos computadores do
cliente. Este só precisa se preocupar com o acesso ao serviço
(no caso, uma conexão à internet) ou, se necessário,
com a simples instalação de algum recurso mínimo,
como um plugin no navegador de internet de suas máquinas.
IBM e HP são dois exemplos de companhias que já oferecerem
soluções em SaaS:
HP
SaaS;
IBM
SaaS.
PaaS, DaaS, IaaS e TaaS
O mercado trabalha atualmente com conceitos derivados do SaaS,
utilizados por algumas companhias para diferenciar os seus serviços.
São eles:
- Platform as a Service (PaaS): Plataforma como Serviço.
Trata-se de um tipo de solução mais amplo para determinadas
aplicações, incluindo todos (ou quase todos) os recursos
necessários à operação, como armazenamento,
banco de dados, escalabilidade (aumento automático da capacidade
de armazenamento ou processamento), suporte a linguagens de programação,
segurança e assim por diante;
- Database as a Service (DaaS): Banco de Dados como Serviço.
O nome já deixa claro que esta modalidade é direcionada
ao fornecimento de serviços para armazenamento e acesso de volumes
de dados. A vantagem aqui é que o detentor da aplicação
conta com maior flexibilidade para expandir o banco de dados, compartilhar
as informações com outros sistemas, facilitar o acesso remoto
por usuários autorizados, entre outros;
- Infrastructure as a Service (IaaS): Infraestrutura como Serviço.
Parecido com o conceito de PaaS, mas aqui o foco é a estrutura
de hardware ou de máquinas virtuais, com o usuário tendo
inclusive acesso a recursos do sistema operacional;
- Testing as a Service (TaaS): Ensaio como Serviço. Oferece
um ambiente apropriado para que o usuário possa testar aplicações
e sistemas de maneira remota, simulando o comportamento destes em nível
de execução.
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
Flickr e
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.
- Panda Cloud
Antivirus: como o nome indica, este é um programa antivírus
da Panda Software, mas com uma grande diferença: a maior parte
do trabalho necessário à ferramenta para pesquisar e eliminar
malwares fica por conta das "nuvens". Com isso, de acordo com
a Panda, essa solução acaba evitando que o antivírus
deixe o computador lento;
Panda Cloud Antivirus
- 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;
- iCloud:
anunciado em junho de 2011, trata-se de um serviço da Apple que
armazena músicas, fotos, vídeos, documentos e outras
informações do usuário. Seu objetivo é o de
fazer com que a pessoa utilize "as nuvens" em vez de um computador em
sua rede como "
hub" para centralizar suas informações.
Com isso, se o usuário atualizar as informações de
um contato no iPhone, por exemplo, o iCloud poderá enviar os
dados alterados automaticamente para outros dispositivos.
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.
Um pouco sobre a história da cloud computing
Computação nas nuvens não é um conceito
claramente definido. Não se trata, por exemplo, de uma
tecnologia pronta que saiu dos laboratórios pelas mãos
de um grupo de pesquisadores e posteriormente foi disponibilizada no
mercado. Esta característica faz com que seja difícil
identificar com precisão a sua origem. Mas há alguns
indícios bastante interessantes.
Um deles remete ao trabalho desenvolvido por
John McCarthy.
Falecido
em outubro de 2011, o pesquisador foi um dos principais nomes por
trás da criação do que conhecemos como
inteligência artificial, com destaque para a linguagem Lisp,
até hoje aplicada em projetos que utilizam tal conceito.
Além deste trabalho, no início da década de 1960,
John McCarthy tratou de uma ideia bastante
importante: computação por tempo compartilhado (time
sharing), onde um computador pode ser utilizado simultaneamente por
dois ou mais usuários para a realização de
determinadas tarefas, aproveitando especialmente o intervalo de tempo
ocioso entre cada processo.
Perceba que, desta forma, é possível aproveitar melhor o
computador (na época, um dispositivo muito caro) e diminuir gastos, uma vez
que o usuário somente paga, por exemplo, pelo tempo de uso do equipamento.
É, de certa forma, uma ideia presente na computação nas nuvens.
Quase que na mesma época, o físico
Joseph Carl
Robnett Licklider entrou para a história ao ser um dos
pioneiros da internet. Isso porque, ao fazer parte da ARPA (
Advanced
Research Projects Agency), lidou com a tarefa de encontrar outras
utilidades para o computador que não fosse apenas a de ser
uma "poderosa calculadora".
Nesta missão, Licklider acabou sendo um dos primeiros a
entender que os computadores poderiam ser usados de maneira conectada,
de forma a permitir comunicação de maneira global e,
consequentemente, o compartilhamento de dados. Seu trabalho determinou
a criação da
Intergalactic Computer Network, que
posteriormente deu origem à
ARPANET, que por sua
vez "abriu as portas" para a internet.
Embora possamos associar várias tecnologias, conceitos e
pesquisadores ao assunto, ao juntarmos os trabalhos de John McCarthy e
J.C.R. Licklider podemos ter uma grande ajuda na tarefa de compreender
a origem e a evolução da cloud computing.
Por que uma nuvem?
Ao consultar livros de redes, telecomunicações e afins,
pode-se perceber que o desenho de uma nuvem é utilizado para
fins de abstração. Neste sentido, a nuvem representa uma
rede de algum tipo cuja estrutura não precisa ser conhecida,
pelo menos não naquele momento.
Por exemplo, se a ideia é a de explicar como funciona uma
tecnologia de comunicação que interliga duas redes de
computadores, não é necessário detalhar as
características de cada uma. Assim, pode-se utilizar uma nuvem
para indicar que há redes ali.
A computação nas nuvens simplesmente absorveu esta ideia,
mesmo porque o desenho de uma nuvem, seguindo a ideia da
abstração, passou também a representar a internet.
Finalizando
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.
É 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.
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".