Introdução
A expressão Cloud Computing começou
a ganhar força em 2008, mas, conceitualmente, as ideias por trás da denominação
existem há muito mais tempo. Também conhecida no Brasil como computação
nas nuvens ou Computação em Nuvem, a cloud computing se refere,
essencialmente, à noção 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 computadores locais. Mas o que exatamente isso quer dizer?
Por que o conceito é tão importante nos dias de hoje? Quais os seus benefícios?
Há riscos associados? Com linguagem simples e abordagem introdutória, este
texto responde essas e outras perguntas relacionadas.
Entendendo a Cloud
Computing
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 ou
dispositivos. Em ambientes corporativos, esse cenário muda um pouco: é
relativamente comum empresas utilizarem aplicações disponíveis em servidores
que podem ser acessadas por qualquer terminal autorizado. A principal vantagem do on premise está
no fato de ser possível, pelo menos na maioria das vezes, utilizar as
aplicações mesmo sem acesso à internet ou à rede local. Em outras palavras, é
possível usar esses recursos de maneira off-line.
Por outro lado, no modelo on premise,
todos os dados gerados ficam restritos a um único equipamento, exceto quando há
compartilhamento em rede, coisa que não é muito comum no ambiente doméstico.
Mesmo no ambiente corporativo, essa prática pode gerar algumas limitações, como
a necessidade de se ter uma licença de 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 rápido. Esse cenário cria a condição perfeita
para a popularização da cloud computing, pois faz com que o conceito se
dissemine no mundo todo. 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. Esse 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 desses
aspectos, apenas em acessar e utilizar.
Nuvens representam uma
abstração de recursos computacionais na internet - Imagem por OpenClipart
Um exemplo prático dessa nova realidade
é o Office
Online, da Microsoft, serviço que dá acesso a recursos básicos de
edição de textos, apresentações de slides, entre outras funcionalidades, de
maneira completamente on-line. Tudo o que o usuário precisa fazer é criar uma
conta e 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 é o acesso a aplicações a partir da internet, sem
que estas estejam instaladas em computadores ou dispositivos específicos. Mas,
há outros benefícios significativos:
- Na maioria dos casos, o usuário pode acessar as aplicações independente do seu sistema operacional ou do equipamento usado;
- 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;
- Compartilhamento de informações e trabalho colaborativo se tornam mais fáceis, pois todos os usuários acessam as aplicações e os dados do mesmo lugar: a nuvem;
- Dependendo do fornecedor, o usuário pode contar com alta disponibilidade: 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 faz em relação aos recursos que usar ou ao tempo de utilização. Não é necessário, portanto, pagar por uma licença integral de uso, tal como é feito no modelo tradicional de fornecimento de software;
- Dependendo da aplicação, o usuário pode precisar instalar um programa cliente em seu computador ou dispositivo móvel. Mas, nesses casos, 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 é saber que a aplicação está disponível nas nuvens.
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 em que 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. Nessa 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 20 funcionários necessita de um software
para gerar folha 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 resultar em custo alto e não
compatível com a condição de porte pequeno da empresa.
Se, por outro lado, a
companhia encontrar um fornecedor de software para folha de pagamento que
trabalha com o modelo SaaS, a situação pode ficar mais fácil: essa empresa
poderá, por exemplo, oferecer esse serviço por meio de cloud computing e cobrar
apenas pelo número de funcionários e/ou pelo tempo de uso. Com isso, o
contratante paga um valor baixo pelo uso da aplicação. Além disso, hardware,
instalação, atualização, manutenção, entre outros, são tarefas que 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. Oracle e HP são dois exemplos de
companhias que oferecerem soluções em SaaS: HP SaaS; Oracle SaaS.
PaaS, DaaS, IaaS e
TaaS
No mercado também há conceitos
derivados do SaaS que são 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 essa 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 ou OneDrive;
sites de armazenamento e compartilhamento de fotos ou vídeos, como Flickr e YouTube.
Todos são exemplos de recursos que, de certa forma, estão dentro do conceito de
computação nas nuvens.
Note que todos os serviços mencionados
não são executados no computador do usuário, mas este pode acessá-los de
qualquer lugar, muitas vezes sem 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 há 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, ferramenta de agenda, comunicador instantâneo integrado, e-mail com o domínio próprio (por exemplo, contato@infowester.com), entre outros. Todos os 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 pagos cujos valores variam de acordo com o número de usuários;
- 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 gigantesca estrutura de processamento e armazenamento de dados que acabava ficando ociosa na maior parte do ano. Foi a partir daí que a companhia teve a ideia de "alugar" esses recursos, iniciativa que resultou em serviços como Simple Storage Solution (S3) para armazenamento de dados e Elastic Compute Cloud(EC2) para uso de máquinas virtuais;
- Netflix: serviço que dá acesso a filmes, seriados e documentários a partir de um pequeno valor por mês. Não é necessário efetuar download das produções, tudo é feito por streaming. Além disso, o usuário pode assistir cada item do acervo quantas vezes quiser e, caso interrompa a reprodução do vídeo, pode continuar mais tarde de onde parou;
- Aprex: brasileiro, o Aprex oferece um conjunto de ferramentas para uso profissional, como calendário, gerenciador de contatos, lista de tarefas, armazenamento de arquivos, 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;
- Evernote: serviço para criação e armazenamento de notas e informações variadas que funciona como um abrangente banco de dados. Inclui ferramentas para compartilhamento, edição, organização e localização de dados. Há opções de contas gratuitas e pagas.
Evernote no Android (Imagem: divulgação)
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 esse 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": os
equipamentos e sistemas utilizados para constituir a nuvem ficam 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 de suas informações. Ou, então, a proteção oferecida pode
simplesmente não ser suficiente. Em situações como essas é 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 capaz de
impactar positivamente a rotina corporativa.
Empresas como Microsoft, IBM e HP
oferecem soluções para nuvens privadas. As organizações interessadas devem, todavia,
contar com profissionais ou mesmo consultoria especializada na criação e
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 e afins.
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 outras, normalmente
mais críticas, permanecem sob 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. Esse 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.
Cuidados para evitar
problemas
Há uma quantidade imensa de serviços
nas nuvens. No meio corporativo, há opções que atendem de pequenas empresas a
companhias que figuram entre as mais valiosas do mundo. Tamanha diversidade
exige cuidados para evitar que as vantagens se transformem em prejuízo ou
desperdício de recursos. Uma dessas medidas é a avaliação
precisa de necessidades, do contrário, uma organização pode contratar serviços
cuja capacidade está acima do necessário, gerando custos indevidos.
Outra é a desativação de recursos
contratados no tempo certo. Se uma empresa utiliza serviços que cobram por
hora, por exemplo, é importante desativar a ferramenta durante períodos em que
não há demanda (como em feriados). Nesse sentido, se uma companhia possui
uma nuvem privada, precisa monitorar o consumo de recursos para identificar as
situações em que a capacidade da estrutura pode ser diminuída. Se o não fizer,
haverá equipamentos consumindo recursos como energia e largura de banda
desnecessariamente.
A contratação de serviços também deve
ser bem analisada. Nem sempre a solução mais barata é a melhor. Se os usuários
necessitarem de um longo tempo de treinamento ou o serviço exigir migração para
um plano de acesso à internet com mais capacidade, por exemplo, os custos
adicionais podem acabar extrapolando o orçamento. Esses são apenas alguns dos cuidados
necessários. Dependendo do que se espera do modelo de cloud computing, outras
medidas podem ser mandatórias. Em alguns casos, pode ser conveniente até mesmo
a contratação de uma empresa especializada para assessorar a escolha e a implementação
de uma solução.
Um pouco sobre a
história da Cloud Computing
Computação nas nuvens não é um conceito
claramente definido. Não estamos tratando de uma tecnologia pronta que saiu dos
laboratórios pelas mãos de um grupo de pesquisadores e posteriormente foi
disponibilizada no mercado. Essa 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 desse trabalho, John McCarthy
tratou de uma ideia bastante importante no início da década de 1960: 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, dessa forma, é possível
aproveitar melhor o computador (na época, um dispositivo muito caro) e diminuir
gastos, pois o usuário paga somente pelo tempo de uso do equipamento, por
exemplo. É, 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". Nessa 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 foi determinante
para 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, repare bem: é provável que você encontre desenhos de
nuvens usados para fins de abstração. Nesse sentido, a ilustração representa
uma rede de algum tipo cuja estrutura não precisa ser conhecida, pelo menos não
naquele momento. Se a intenção em determinado capítulo é
explicar como funciona uma tecnologia de comunicação que interliga duas redes
de computadores, por exemplo, não é necessário detalhar as características de
cada uma delas. Assim, o autor pode utilizar uma nuvem - a abstração - para
indicar que há redes ali. A computação nas nuvens simplesmente
absorveu essa ideia, até porque o desenho de uma nuvem, no mesmo contexto de
abstração, passou também a representar a internet.
Finalizando
Qualquer tentativa de definir o que é
cloud computing pode não ser 100% precisa. 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 exposta no texto. É claro que ainda há muito trabalho a
ser feito. 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, razão qual esse aspecto precisa ser melhor estudado.
De qualquer forma, a cloud computing é
um caminho sem volta. A constante ampliação dos serviços de acesso à internet e
o advento dos dispositivos móveis (smartphones, tablets, smartwatches e
semelhantes) abrem cada vez mais espaço para as aplicações nas nuvens - um
conceito depende do outro para gerar valor a usuários e organizações. Saiba mais nos materiais que serviram
de referência para este texto:
LIVROS SUGERIDOS:
LIVROS SUGERIDOS:
- Cloud Computing: Nova arquitetura da TI
- Computação em Nuvem: Uma Abordagem Prática
- Computação em Nuvem - Tecnologias e Estratégias
- Outros livros sobre Cloud Computing
- en.wikipedia.org/wiki/Cloud_computing
- videos.techielife.com/.../13 (vídeo)
- http://cacm.acm.org/.../fulltext;
Nenhum comentário:
Postar um comentário
Observação: somente um membro deste blog pode postar um comentário.