Transcript
Page 1: Cloud Computing - Faculdades Integradas do Vale do Ivaí · Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo

6

: : www.mundoj.com.br : :

ste artigo fará uma abordagem geral sobre o estado da arte da Computação em Nuvem (Cloud Computing). O objetivo é fazer o leitor perceber a importância desse

conceito, cada vez mais presente em diversos tipos de soluções. Não se trata de um tutorial ou passo-a-passo de configuração ou uso de ambiente em nuvem e sim de uma apresentação desse novo e emergente paradigma. São apresentados o conceito de computação em nuvem, a origem desse termo, suas características essenciais seus modelos de implantação e de serviços. Notícias recentes e importantes são citadas. Uma sucinta descrição de seus prós e contras é feita, assim como uma breve descrição de algumas opções para programar para a Nuvem. Finalmente, é apresentada uma recomendação bibliográfica sobre o tema do artigo.

Cloud Computing (ou computação em nuvem) vem sido muito citado em revistas e sites da área de TI e há uma grande movimentação da indústria acerca de seu uso. Entusiastas e críticos têm divulgado constantemente suas ideias sobre essa nova tecnologia. Ignorá-la é ficar fora de um novo paradigma que vem se consolidando e sendo adotado por gigantes da TI. Este artigo apresenta uma abordagem geral das funcionalidades e novidades em torno desse conceito, a fim de ajudar o leitor a saber como investir nessa tecnologia no cotidiano pessoal e profissional.

José Yoshiriro Ajisaka Ramos([email protected]): Bacharel em Sistemas de Informação (IESAM) e mestrando em Ciência da Computação (UFPA). Possui as certificações internacionais SCJP 6, SCWCD 5, SCBCD 5 e OCUP Fundamental. Criador e colaborador de alguns projetos open-source da Apache.org. Desenvolvedor concursado do TJE/PA. Professor de cursos de graduação em TI nas Faculdades Integradas Ipiranga e na UAB/IFPA e de cursos de Java na EquilibriumWeb.

Cloud ComputingIntrodução ao

Conheça o conceito de Computação em Nuvem (Cloud

Computing), seus benefícios e aplicações e como as

gigantes da TI vêm investindo sério nele.

Page 2: Cloud Computing - Faculdades Integradas do Vale do Ivaí · Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo

7

O termo “Computação em Nuvem” começou a ter maior reper-cussão em meados de 2008 (embora Google e Amazon tenham criado serviços dessa natureza em 2006), mas é de origem incerta, principalmente se considerarmos como ele tem sido implementa-do. Entretanto, não é raro encontrar referências a um trabalho de 1961, do professor John McCarthy do Instituto de Tecnologia de Massachusetts (MIT) como sendo o precursor desse conceito. Nes-se trabalho foi descrito um modelo de computação oferecido nos moldes do sistema de distribuição de energia. Isso é parecido com o que está ocorrendo atualmente, graças a fatores como expansão e barateamento da banda larga e do aumento da capacidade compu-tacional dos equipamentos atuais. Desde a divulgação do trabalho do professor MacCarthy, tal conceito ficou como que “hibernando”, pois a tecnologia da informação só passou a ser capaz de por em prática tal ideia recentemente. Foi que, em 2006, Eric Schmidt da Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo.

Origem da expressão “Computação em Nuvem”

O que é Computação em Nuvem

Computação em Nuvem (ou em Nuvens, como alguns traduzem), do inglês “Cloud Computing”, não é ainda um conceito 100% preciso. Há um bem humorado vídeo na internet chamado “What is Cloud Computing” (criado em 07/05/2008) que mostra, dentre outros, personalidades como Tim O'Reilly, Dan Farber (editor-chefe da CNet) e Matt Mullenweg (co-fundador do Wordpress) com visões muito diferentes sobre esse conceito. Ocorre que nunca houve um dia em que alguém parou e disse “agora vamos começar a usar computação em nuvem”. O que houve foi que se começou a chamar um conjunto de práticas da TI atual por esse nome. Em todo caso, a maioria dos conceitos converge para um modelo no qual os recursos computacionais (processamento, armazenamen-to e softwares) estão disponíveis em uma rede de computadores e são acessados remotamente, via internet ou intranet.

Se não há consenso sobre o conceito, sobre os objetivos e caracte-rísticas há bem menos divergências. Esse modelo objetiva prover uma alta disponibilidade de recursos e é composto de cinco carac-terísticas essenciais, quatro modelos de implantação e diferentes modelos de serviços.

Você anda muito mais nas nuvens do que imagina

Características essenciais

Talvez o leitor imagine que “Cloud Computing” seja um modismo ou então algo com que só os CIOs das empresas devam se preo-cupar. Nada disso.

Para que o leitor tenha um entendimento mais claro sobre o con-ceito de Cloud Computing e como ela já está presente em nosso cotidiano, temos alguns exemplos de aplicações que seguem esse conceito e que são muito populares mesmo entre pessoas que não trabalham com TI.

Gmail, Hotmail, Yahoo!Mail (figura 1) dentre outros são exemplos de sistemas na nuvem. O usuário que possui conta de e-mail em alguma dessas empresas não sabe onde seus e-mails estão de fato. Estão no Brasil? Nos EUA? Na Europa? Não, estão na nuvem. Consegue-se acessá-los de qualquer lugar do mundo bas-tando possuir conexão com a internet. Você não precisa instalar nada nem fazer atualizações, pois esses sistemas estão na nuvem e acessíveis com uso de um navegador.

Figura 1. Gmail, Hotmail e Yahoo!Mail: exemplos de uso da nuvem para envio, rece-

bimento e armazenamento de e-mails.

Figura 2. Google Docs, DropBox, Live Document e Amazon Cloud Drive: exemplos

de armazenamento on-line na nuvem.

Google Docs, Office Web Apps, Dropbox, Live Documents, Amazon Cloud Drive (figura 2) dentre, outros também são exemplos de sistemas na nuvem. Igualmente, o usuário não sabe onde os arquivos estão verdadeiramente, pois estão na nuvem. Com exceção do Dropbox, esses sistemas sequer exigem a instalação de algum software no computador do cliente, pois funcionam por meio do navegador.

Vários outros exemplos de uso “popular” de Cloud Computing poderiam ser citados, tais como: Youtube, Picasa, Redes Socais e programas antivírus on-line.

E o que o leitor observou em comum nos exemplos citados? Uso reduzido dos computadores pessoais, certo? Não é seu compu-tador que envia o e-mail quando você usa o Gmail. Não é seu computador que edita o documento no Live Documents. Não é em seu computador que está o vídeo que você assiste pelo Youtu-be (e nem lá fica depois de assistir). O computador pessoal passa a ser apenas um meio de solicitar e receber os serviços da nuvem. Quem processa, faz IO, usa memória etc. é o sistema em nuvem que você acessa via navegador ou outro programa-cliente.

Para que exista um ambiente onde seja possível oferecer e usar computação em nuvem, são necessárias as seguintes caracterís-ticas:

característica básica em todos os conceitos de nuvem. Sem rede não há como existir ou ingressar na nuvem. O acesso à rede deve observar a heterogeneidade de hardware e software.

Page 3: Cloud Computing - Faculdades Integradas do Vale do Ivaí · Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo

8

: : www.mundoj.com.br : :

um consumidor pode, unilateralmente, provisionar recursos computacionais, como servidor dns, storage, sgbd, dentre outros, de acordo com sua necessidade, sem a obri-gatoriedade de interação humana com o provedor de serviço.

os recursos computa-cionais de um provedor de serviços em nuvem são agrupados, ficando à disposição de múltiplos clientes, com recursos físicos e virtuais diferentes, realocados de acordo com a demanda de cada cliente. Quanto à localização, é algo bem diferente de ter um “data center”, pois o cliente não sabe exatamente onde estão os recursos que usa. Os recursos normalmente são: processador, memória, espaço em disco, banda de rede e máquinas virtuais.

capacidade de elasticamente alocar recursos o mais rápido possível. Assim, deve-se rapidamente aumentar os seus recursos quando necessário e logo após o término voltar ao estado inicial. O usuário final não tem gerência sobre essas opera-ções. A ideia aqui é evitar recursos ociosos em uma infraestrutura, disponibilizando mais recursos para que mais precisa. O limite de aumento de alocação desses recursos pode variar conforme o contrato entre o cliente e o provedor de serviços em nuvem.

automaticamente, sistemas em nuvem devem controlar e otimizar recursos levando em conta a capacidade de medir o uso dos recursos, como storage, processamento, banda de rede e usuários ativos, dentre outros. Recursos usados podem ser monitorados, controlados e reportados com transparência, tanto para o provedor quanto para o consumidor dos serviços usados.

Com essa característica aplicada, é possível gerenciar melhor o pool de recursos e ter condições de oferecer a rápida elasticidade citada anteriormente. Ainda nesta característica, é ela que permite a um provedor de serviços clould cobrar por cotas de processa-mento, banda, armazenamento etc.

Modelos de implantação

Talvez o leitor tenha ouvido falar que clould é sempre gratuita, pois alguns dos exemplos mais conhecidos são de serviços gratui-tos, como o Google Docs e o Delicious. Mas não é bem assim. Os modelos de implantação de cloud mais citados são:

as nuvens privadas são aquelas construídas exclusi-vamente para um único usuário (uma empresa, por exemplo). Como a infraestrutura utilizada pertence ao usuário, ele possui total controle sobre como as aplicações são implementadas na nuvem. Uma nuvem privada é, em geral, construída sobre um data center privado, assim, uma nuvem privada é como que um data center configurado com características de provedor de ser-viços em nuvem. Nesse caso, o data center usado é como uma “mininuvem”. A infraestrutura da nuvem pode ser gerida por uma empresa terceirizada.

Nesse modelo, muitas vezes é usada a virtualização de servidores para evitar que um único servidor físico fique muito tempo ocio-so. Isso não significa dizer que fazer virtualização é sinônimo de ter uma nuvem privada.

as nuvens públicas são aquelas que são mantidas por terceiros e disponíveis para o público em geral ou grupo de indústrias. As aplicações de diversos usuários ficam misturadas

nos mesmos sistemas de armazenamento. Tal abordagem pode parecer ineficiente, porém, se a implementação de uma nuvem pública considera questões fundamentais, como desempenho e segurança, a existência de outras aplicações sendo executadas na mesma nuvem permanece transparente tanto para os prestadores de serviços como para os usuários.

Exemplos desse modelo são as oferecidas pela Amazon, pela Goo-gle (alguns serviços deles são pagos) e outros listados na tabela 1.

a infraestrutura de nu-vem é compartilhada por diversas organizações e suporta uma co-munidade específica que partilha os valores e preocupações (por exemplo, a missão, os requisitos de segurança, política e conside-rações de conformidade). Pode ser administrado por organizações ou por um terceiro e pode existir localmente ou remotamente.

Exemplos desse modelo são como os citados na seção “Você anda muito mais nas nuvens do que imagina”.

modelos de implantação onde há composição de duas ou mais nuvens (privada, comunitária ou pública).

Modelos de serviços

São como as implementações de computação em nuvem. Aqui também há controvérsias, pois alguns autores consideram como sendo apenas três – IaaS, PaaS e SaaS – e outros como sendo cinco – DaaS e CaaS além dos três citados anteriormente. Neste artigo, serão descritos os cinco.

IaaS – Infraestrutura como serviço (Infrastructure as a Service)

PaaS – Plataforma como Serviço (Plataform as a Service)

Quando é oferecida ao cliente uma infraestrutura computacional via nuvem. Essa infraestrutura engloba processamento, armazena-mento, rede e outros recursos que permitem ao cliente implantar e rodar vários tipos de software, inclusive sistemas operacionais. Exemplos:

para processamento e armazenamento. Aqui o cliente “aluga” parte da infraestrutura da Amazon tendo acesso “root” no sistema operacional. Pode usar diferentes configurações de hardware e contratar o serviço com diferentes formas de pagamento e existem opções de plataformas Linux e Windows. Site:

para armazenamento. Aqui o cliente “aluga” espaço em disco na infraestrutura da Amazon. É possível acessar as informações via APIs. Site:

Joyent o qual provê uma infraestrutura sob demanda escalável para rodar web sites aplicações Web de interface ricas. Dentre seus clientes estão LinkedIn, Gilt Groupe, and Kabam. Site:

Representa um ambiente de mais alto nível para o desenvolvi-mento de aplicações customizadas. Geralmente são ambientes que fornecem um conjunto de primitivas para que uma aplicação tenha uma maior escalabilidade, entretanto impõem um conjunto de restrições no software que será implementado. PaaS provêm

Page 4: Cloud Computing - Faculdades Integradas do Vale do Ivaí · Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo

9

SaaS – Software como Serviço (Software as a Service)

serviços para desenvolvimento, testes, publicação, hospedagem e manutenção de aplicações. Exemplos:

plataforma hospedada nos data centers da própria Microsoft. A plataforma é suportada por um sistema ope-racional, que é o próprio Azure, e um framework de serviços para desenvolvedores que podem ser utilizados em aplicações a fim de obter o potencial da plataforma. Oferece componentes para execução das aplicações e armazenamento das informações, um SGBD Relacional baseado no SQL Server, infraestrutura de servi-ços baseado e hospedado na nuvem que fornece serviços para as aplicações e um mercado de dados disponível para usuários finais de desenvolvedores compartilhar, vender e comprar qualquer tipo de dado, como treinamento, serviços e aplicações. Há APIs em várias linguagens para seu uso, inclusive em Java (vide tabela 1).

(ou GAE) plataforma hospedada nos data centers da própria Google. Permite hospedar e executar aplicações Web desenvolvidas em Java (qualquer linguagem que compile para a JVM) e Python. Possui um SGBD não relacional (BigTable) e suporte, ainda em beta, a MySql e suporte a múltiplas versões do mesmo sistema. Como finalidade o GAE está para PaaS, mas como com ele usa-se a infraestrutura da Google, poderia ser cita-do como exemplo de IaaS também.

Modelo de serviço mais usado pelos usuários domésticos. Repre-sentado pelos “sistemas on-line”, como Webmails e alguns dos exemplos citados na seção “Você anda muito mais nas nuvens do que imagina”. Sistema de e-commerce também se enquadra neste modelo. Neste modelo os computadores pessoais são apenas canais de comunicação entre o sistema que está na nuvem e o usuário.

A pirataria de software traz bilhões de dólares de prejuízos por ano. Só no Brasil, esse prejuízo foi da ordem de US$2,2 bi, segundo o portal Tiinside. Uma alternativa que parece eficaz e que tem ganha-do bastante força no Brasil e no mundo é o SaaS, uma modalidade altamente flexível, na qual o cliente paga apenas pelo que consumir. Aqui uma empresa de software pode deixar de criar um software “de caixa” de fácil cópia para criar um sistema on-line. Assim, fica muito mais difícil usar o software sem pagar.

E o próprio cliente sai ganhando consumindo Saas, pois um relatório produzido pela Hurwitz & Associates mostra que o investimento em aplicações baseadas em SaaS pode ser até 77% menor que as solu-ções que utilizam infraestrutura de TI do próprio cliente. E, segundo dados divulgados recentemente pelo instituto de pesquisas Gartner, a oferta SaaS crescerá em média 29% ao ano em todo mundo, até 2014.

SaaS pode se tornar um grande aliado contra a pirataria

ferramentas compartilhadas, ferramentas de desen-volvimento web-based e serviços baseados em mashup. É uma aplicação Web que usa conteúdo de mais de uma fonte para criar um novo serviço completo. Podem possuir códigos de terceiros que se comunicam através de uma interface pública ou de uma API. Exemplos: Feeds (RSS ou Atom), Widgets e Blogs.

bem parecido com SaaS, mas é o conjunto de serviços que satisfaz a função de comunicações, como a telefonia IP, mensagem instantânea e videoconferência.

Windows Azure NÃO.Net, Java,

Ruby, Python e PHP

Paga pelo que usar

Paga pelo que usar

Relacional: SQL Server (SQL

Azure)SIM

Amazon Web Services

SIM NenhumaPaga pelo que

usar Paga pelo que

usar Relacional:

MySQLSIM (ferramen-tas de terceiros)

Rackspace SIM LAMP, .Net

Paga pelo que usar para IaaS e mensal para

PaaS

Paga pelo que usar para IaaS e mensal para

PaaS

Relacional: FathomDB

NÃO

Joyent SIMJava, Ruby,

Python e PHPMensal para

IaaS

Incluído no pagamento do

IaaSNÃO SIM

Google SIM Python e JavaPaga pelo que

usar Paga pelo que

usar

Não relacional: BigTable

Relacional:

MySql (beta)

NÃO

Tabela 1. Comparativo entre principais provedores de serviços em nuvem (fonte: pro.gigaom.com).

Page 5: Cloud Computing - Faculdades Integradas do Vale do Ivaí · Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo

10

: : www.mundoj.com.br : :

25/03 Sonda IT se une à VCE para explorar mercado de cloud no País Computer World

29/03 Cisco compra empresa de software para cloud computing TI Inside

29/03 Mercado de cloud computing deve crescer 60% ao ano no País TI Inside

29/03

IBM reforça estratégia de outsourcing

“Segundo a organização, o modelo poderá ainda estabelecer bases para o desenvolvimento de soluções avançadas de cloud computing”

Computer World

31/03 HP aposta em cloud computing para impulsionar crescimento no Brasil HP Brasil

Março/AbrilPlug into the cloud

Artigo relatando cases de uso da solução de cloud da Oracle Oracle Mazagine

04/04 O cloud computing chega aos bancos TI Inside

04/04 IEEE procura interoperacionalidade no cloud computing Computer World

05/04 Conferência Gartner Data Center destaca “Cloud” como alternativa para infraestrutura de TI Gartner Research

06/04 Cloud deve crescer 7 vezes até 2014, diz IDC INFO On-line

06/04 Operadoras estão apenas no início dos serviços em cloud Teletime

08/04

Dell investe milhões de dólares para abrir 10 centros de armazenamento de dados

“O investimento será feito para expandir o apoio ao cliente e melhorar a aposta no cloud computing"

Negócios on-line

12/04 Unisys lança guia para projetos cloud Unisys Corporation

15/04 Dell pretende investir US$ 1 bi. Foco é Cloud Computing itWeb

A nuvem anda se espalhando ou se dissipando?

Prós e contras

Talvez o leitor ainda esteja na dúvida sobre a consolidação da Cloud Computing como muito mais que um modismo. Seguem algumas manchetes só dos meses de março e abril de 2011 (até o

fechamento deste edição) relacionadas a essa tecnologia divulgadas em sites especializados em TI (note o leitor que nomes marcantes da TI constam em quase todas as notícias):

Esta seção não tem como objetivo fazer o leitor refletir se deve ou não usar computação em nuvem e sim quando e onde usar, pois mesmo já sendo uma realidade consolidada, nem toda solução pode ser implementada usando-se recursos em nuvem.

Detalhar todos os prós e contras geraria muita polêmica e estenderia demais este artigo. As-sim, limitar-se-á a enumerar os prós e contras mais comuns na literatura e ilustrá-los na figura 3.

alta escalabilidade e baixo custo; muitas opções de escolha e agilidade; mudanças e gerenciamento transparentes; estar na cloud é sempre estar sob arquitetura de última ge-ração.

menor segurança, menor nível de controle, menor confiabilidade; imposição tecnológica (de API, por exemplo).

Figura 3. Prós e contras da computação em nuvem (fonte: zdnet.com/blog/hinchcliffe).

Page 6: Cloud Computing - Faculdades Integradas do Vale do Ivaí · Google usou o termo “Cloud Computing” passando a ser conside-rado por muitos autores como o “pai” desse termo

11

Considerações finais

Opções de programação para a Nuvem

Conforme citado em outras seções deste artigo, alguns serviços em nuvem podem ser acessados via APIs.

Das gigantes de TI, a Google é a que oferece maior leque de APIs para acessos a seus vários serviços. Recentemente ela divulgou uma tabela de APIs perecida com a tabela periódica dos elementos

Figura 4. Tabela “periódica” de APIs para os produtos Google (fonte: code.google.com/intl/pt-BR/more/table).

A documentação de todas as APIs da Google estão disponíveis em code.google.com/intl/pt-BR/apis/gdata.

A documentação da API e outros textos sobre o uso do EC2 da Amazon estão disponíveis em aws.amazon.com/documenta-

tion/ec2 e sobre o S3 em aws.amazon.com/documentation/s3.

A Microsoft também disponibiliza a documentação da API para o Azure em msdn.microsoft.com/en-us/library/ff800682.

aspx.

Existem ainda muitas empresas com suporte à programação para nuvem e muitas grandes, como Oracle, IBM e HP. Porém

foram citadas as que mais vêm se destacando no gênero.

que pode ser vista na figura 4. É possível, por exemplo, fazer com que um usuário se autentique no seu sistema usando sua conta da Google. A ideia da Google é que você não precisa “reinventar a roda”, fornecendo várias APIs par usar a nuvem da Google em seus sistemas. Quer disponibilizar vídeos em seu site? Use a You-tube API. Quer implementar uma “busca” no seu site? Use a API de buscas da Google.

Para Saber Mais

A coluna “Tendências em foco” já apresentou ótimos tex-tos sobre Computação em Nuvem: “Cloud Computing e os Desenvolvedores” (MundoJ, edição 42) e “SaaS começa a dar as cartas” (edição 44).

E edição 43 trouxe o artigo “Java no Google App Engine” ensinando a escrever aplicações Java para o serviço de Cloud Computing da Google.

te à progrogrogrogrogrogrogrogrogrogrogrogrogrogrogrogrogrogrogramramramramramramramramramramramramramramramaçãaçã

Referências

GUJ – Discussões sobre o tema do artigo e assuntos relacionados

Discuta este artigo com 100 mil outros desenvolvedores em www.guj.com.br/MundoJ

Este artigo apresentou os conceitos fundamentais da “computa-ção em nuvem”. Várias vezes foram citados nomes de empresas consideradas gigantes da TI como protagonistas dessa tecnologia. Aliado aos benefícios citados, espera-se que o leitor que ainda não havia parado para o estudo desse assunto passe a se interessar com dedicação e frequência, para não se tornar um profissional obsoleto. Ignorar o estudo e acompanhamento do crescimento do uso de Cloud Computing hoje seria como ter ignorado o uso da


Recommended