O que é Cloud Computing (Computação nas Nuvens)? Introdução A denominação Cloud Computing chegou aos ouvidos de muita gente em 2008, mas tudo indica que ouviremos esse 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 artigo de introdução à Cloud Computing, você entenderá melhor este conceito. O conceito de computação em nuvem (em inglês, cloud computing) refere-se à utilização da memória e das capacidades de armazenamento e cálculo de computadores e servidores compartilhados e interligados por meio da Internet, seguindo o princípio da computação em grade (do inglês Grid Computing) que por sua vez refere-se ao modelo computacional capaz de alcançar uma alta taxa de processamento dividindo as tarefas entre diversas máquinas, podendo ser em rede local ou rede de longa distância, que formam uma máquina virtual. É importante ter em mente que, devido ao fato do Cloud Computing ser um conceito novo, qualquer tentativa de defini-lo pode não ser 100% precisa. Os especialistas no assunto ainda divergem em suas opiniões. A definição do NIST (National Institute of Standarts and Technology) é a seguinte: Computação em Nuvem é um modelo do tipo 'pague pelo uso' para possibilitar acesso de rede disponível, conveniente e sobre demanda a um pool compartilhado de recursos computacionais configuráveis (e.g., servidores, armazenamento, redes, aplicações, serviços) que podem ser rapidamente aprovisionados e liberados com o mínimo esforço gerencial ou de interação de provedor de serviços. Data Center Algo bem interessante aconteceu com 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 empresa teve a idéia de "alugar" esses recursos. Esse serviço trouxe ainda mai à toda serviço de aluguel de Data Center. O Data Center é um ambiente projetado para abrigar servidores e outros componentes como sistemas de armazenamento de dados (storages) e ativos de rede (switches, roteadores). O objetivo principal de um Data Center é garantir a disponibilidade de equipamentos que rodam sistemas cruciais para o negócio de uma organização, tal como o ERP ou CRM, garantindo assim a continuidade do negócio. Um Data Center
também poderá ser um equipamento especial que aloja sites da Internet e providencia serviço de dados para outras companhias. Na década de 1970, quando os sistemas Mainframe eram utilizados em grande escala, o conceito de Data Center era muito conhecido como "Bureaux de Serviços". Atualmente podemos definir duas categorias principais de Data Centers: Data Center Privado (PDC) e o Internet Data Center (IDC). Entendendo a Cloud Computing Estamos habituados a utilizar aplicações instaladas em nossos próprios computadores, assim como a armazenar arquivos e dados dos mais variados tipos neles. No ambiente corporativo, esse cenário é 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 desse 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 esses recursos de maneira off-line. Entretanto, todos os dados gerados estarão restritos a esse computador, exceto quando compartilhados em rede, coisa que não é muito comum no ambiente doméstico. Mesmo no ambiente corporativo, isso 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. Esse cenário cria a situação perfeita para a popularização da Cloud Computing, embora esse conceito esteja se tornando 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. 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 nada disso, 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 o 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 esse 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 Conforme já dito, uma das vantagens da Cloud Computing é a possibilidade de utilizar aplicações diretamente da internet, sem que estas estejam instaladas no computador do usuário. Mas, há outras significativas vantagens:
- 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 essas possibilidades; - dependendo do fornecedor, o usuário pode contar com alta disponibilidade, já que, se por exemplo, um servidor parar de funcionar, 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". Tipos de nuvens Inicialmente de uso restrito de alguns centros de pesquisas, governo e exército, as redes começaram a se expandir especialmente a partir da década de 1980. Atualmente exixtem vários tipos de redes, vejamos: - Nuvens públicas e privadas - O conceito é bem intuitivo, as públicas são acessíveis em toda a internet, e as privadas ficam em um ambiente protegido (firewall) como o de uma empresa, com acesso restrito aos seus funcionários ou parceiros de negócios. - Nuvem Comunitária - A infraestrutura de uma nuvem comunitária é compartilhada por várias organizações que partilham interesses como a missão, requisitos de segurança, políticas, entre outros. Pode ser administrada pelas próprias organizações ou por um terceiro e pode existir no ambiente da empresa ou fora dele. - Nuvem Híbrida - Nesse caso ha uma composição de duas ou mais nuvens, sejam elas privadas, públicas ou comunitárias. Essas permanecem como entidades únicas, mas estão unidas pela tecnologia padronizada ou proprietária que permite a portabilidade de dados e aplicativos. O termo tem sido utilizado para significar tanto duas nuvens distintas conectadas simultaneamente - pública, pessoal, interior ou exterior, ou uma mistura de nuvens de servidor virtualizado utilizado simultaneamente com hardware pessoal genuíno. De modo geral é importante observar 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 Datacenter, enfim. O que importa ao usuário é saber que a aplicação está disponível nas nuvens, não importa de que forma.
Tipos de serviços da Cloud Computing Saindo um pouco do subjetivo e abstrato, vejamos o que acontece de concreto. A Cloud Computing é dividida em tipos de serviços, são alguns deles: - IaaS (HaaS) : Infrastructure as a Service; - SaaS: Software as a Service; - PaaS: Platform as a Service; - DaaS: Database as a Service; - TaaS: Testing as a Service. IaaS ou HaaS - Infrastructure as a Service / Hardware as a Service - Hardware como serviço. Refere-se ao aluguel de máquinas virtuais (internet) para o cliente, com recursos de processamento, armazenamento de dados, servidores e componentes de rede. O cliente acessa os recursos geralmente através de um ambiente virtual também fornecido pelo serviço. SaaS - Software as a Service - Software como serviço. Diferente do IaaS, que disponibiliza os recursos de hardware, aqui vemos a disponibilização somente do software. No SaaS o cliente aluga o software, o usuário não precisa adquirir licença e paga somente o que utiliza ou pelo tempo de utilização, como uma assinatura. O Google Docs e o Gmail são exemplos de SaaS. PaaS - Plataform as a Service - Plataforma com serviço. É a entrega de uma plataforma de computação e a pilha de soluções como serviço. Neste conceito é fornecido toda a plataforma e ambiente de desenvolvimento para o cliente: recursos de codificação, debug (processo de encontrar e reduzir defeitos num aplicativo de software ou mesmo em hardware), compilação, testes, entre outros, fechando todo o ciclo de desenvolvimento. O cliente paga ou aloca somente os recursos necessários. DaaS - Database as a Service - Banco de Dados com 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; TaaS - Testing as a Service - 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. IBM e HP são dois exemplos de companhias que já oferecerem soluções em SaaS: HP SaaS; IBM SaaS. Exemplos de aplicações em Cloud Computing Os termos Cloud Computing e Computação nas Nuvens são relativamente recentes, 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 Cloud Computing. Note que todos esses serviços não executam no computador do usuário e 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 bem o conceito de Cloud Computing: - Google Apps: esse é um pacote de serviços que o Google oferece que contém aplicativos de edição de texto, planilhas e apresentações (Google Docs), serviço de agenda (Google Agenda), comunicador instantâneo integrado (Google Talk), e-mail com o domínio da empresa (por exemplo, contato@infowester.com), entre outros. Todos esses serviços são processados pelo Google e o cliente só precisa criar as contas do usuário. 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" esses recursos, com serviços como o Simple Storage Solution (S3), para armazenamento de dados, e Elastic Compute Cloud (EC2), para uso de máquinas virtuais. - Windows Live Mesh: esta é um tecnologia da Microsoft direcionada ao segmento doméstico. Sua proposta principal é a de permitir que o usuário acesse o seu desktop e seus documentos de qualquer computador, com a diferença de que todos os seus arquivos ficam nas nuvens, isto é, no servidores da Microsoft. Para saber mais sobre esse serviço, veja esta matéria publicada no Blog InfoWester; - 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. 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 esse 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". Fonte: - http://www.infowester.com/cloudcomputing.php - http://www.insoonia.com/voce-sabe-o-que-e-computacao-em-nuvens/ - http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/fernando/tipos_em_cc.html - http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2010_2/fernando/intro.html - http://hrushikeshzadgaonkar.wordpress.com/2011/05/20/cloud-computing-conceptsand-migration-strategies-of-an-application-to-cloud/ - http://www.techyv.com/article/comparing-cloud-computing-%e2%80%93-public-privatehybrid-and-community-clouds - http://www.telecorp.com.br/glossario/data-center/ - http://www.projetoderedes.com.br/artigos/artigo_datacenter.php