Você está na página 1de 82

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL CURSO DE BACHARELADO EM INFORMTICA SISTEMAS DE INFORMAO

Camila Cerezer Possobom

ESTUDO DE CASO: CLOUD COMPUTING COMPUTAO EM NUVEM

Monografia apresentada ao Curso de Bacharelado em Informtica Sistemas de Informao da Universidade Regional do Noroeste do Estado do Rio Grande do Sul de Iju, para a obteno do ttulo de Bacharel em Informtica Sistemas de Informao.

Edson Luiz Padoin

Iju/RS, Novembro de 2010

ESTUDO DE CASO: CLOUD COMPUTING COMPUTAO EM NUVEM

Camila Cerezer Possobom

Esta Monografia foi julgada adequada para a obteno do ttulo de Bacharel em Informtica Sistemas de Informao e aprovada em sua forma final pelo Curso de Bacharelado em Informtica Sistemas de Informao.

______________________________________ Edson Luiz Padoin (Orientador)

Banca Examinadora

______________________________________ Marcos Ronaldo Melo Cavalheiro

Universidade Regional do Noroeste do Estado do Rio Grande do Sul UNIJU Curso Superior em Informtica Sistemas de Informao - Campus Iju Reitor: Gilmar Antnio Bedin Vice-Reitores: Antonia Carvalho Bussmann Telmo Rudi Frantz Martinho Luis Kelm Chefe do Departamento de Tecnologia Prof. Ms. Edson Luiz Padoin Coordenador do Curso de Informtica Sistemas de Informao Prof. Ms. Edson Luiz Padoin Coordenador da Disciplina de Trabalho de Concluso de Curso - Campus Iju Prof . Ms. Marcos Ronaldo Melo Cavalheiro Banca Avaliadora composta por: Data da defesa: 16/12/2010 Prof. Ms. Edson Luiz Padoin (Orientador) Prof. Ms. Marcos Ronaldo Melo Cavalheiro

CIP Catalogao na Publicao

Possobom, Camila Cerezer

Trabalho de Concluso de Curso (Graduao em Informtica Sistemas de Informaes). Universidade Regional do Noroeste do Estado do Rio Grande do Sul, 2010.

1. Introduo. 2. Conceituando Computao em Nuvem. 3. Modelos de Implantao de Computao em Nuvem. 4. Modelos de Servios na Computao em Nuvem. 5. Estudo de Caso: Provedores de Servios de Computao em Nuvem.

Endereo: Universidade Regional do Noroeste do Estado do Rio Grande do Sul Campus Iju Rua So Francisco, 501 Bairro So Geraldo CEP 98700-000 Iju RS - Brasil

"... incansvel buscar o conhecimento ! Interminvel sua procura ! Aos mestres, que nos abreviam esta procura ! O Reconhecimento sempre !!!!..."

Agradecimentos
Agradeo, primeiramente, a Deus pelas oportunidades que me foram oferecidas na vida, principalmente por ter conhecido pessoas muito especiais e lugares diferentes, mas, alm disto, por estar sempre ao meu lado nas horas mais difceis e me ajudando na concluso deste trabalho.

No posso deixar de agradecer a toda a minha famlia, mas em especial aos meus pais Ademir Luiz Possobom e Liane Cerezer Possobom, os responsveis diretos pela minha formao, sem os quais no estaria aqui, por terem me fornecido condies para me tornar uma profissional, por me entenderem e me incentivarem a perseguir no que acredito, por mais que isso traga restries ao nosso convvio.

A minha av Santina Menegazzi Cerezer, a qual me ajudou nas horas mais difceis e me incentivou muito para a concluso deste curso.

Ao meu namorado Glauber e toda a famlia dele a Mari, o Marion, o Glauco e a av Otillia, pelo apoio recebido e pela compreenso nos momentos em eu mais precisei durante toda a minha formao, as quais so pessoas muito especiais e fico muito feliz por eles fazerem parte da minha vida.

Ao meu professor orientador Ms. Edson Luis Padoin pela sua disponibilidade, auxlio e apoio.

Aos demais professores pelos anos de convivncia e troca de informao, os quais foram muito importantes na minha formao acadmica.

A todos s posso dizer: Muito Obrigado!

Sumrio

1.

Introduo .............................................................................................................. 10 1.1 Objetivo Geral ....................................................................................................... 12 1.2 Organizao do Trabalho ..................................................................................... 12

2.

Conceituando Computao em Nuvem ............................................................... 14 2.1 Tecnologias Relevantes na Computao em Nuvem ............................................ 19 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.7 2.1.8 2.1.9 2.1.10 2.1.11 2.1.12 2.1.13 2.1.14 2.1.15 2.1.16 2.1.17 2.1.18 2.1.19 Recursos Compartilhados ................................................................................... 20 Escalabilidade ..................................................................................................... 20 Elasticidade......................................................................................................... 21 Dispositivos de Acesso ....................................................................................... 22 Pay as you go ...................................................................................................... 22 Alta velocidade no acesso de banda larga .......................................................... 24 Os Dispositivos de Armazenamento................................................................... 25 As Tecnologias de Virtualizao ........................................................................ 26 Orientada a servios............................................................................................ 27 Pooling de Recursos ........................................................................................... 28 Servio Medido .................................................................................................. 28 Service Level Agreement (SLA) ........................................................................ 29 Interoperabilidade ............................................................................................... 29 Portabilidade ....................................................................................................... 30 Integrao ........................................................................................................... 30 Disponibilidade................................................................................................... 31 Application Programming Interface (API) ......................................................... 31 Segurana............................................................................................................ 31

3.

Modelos de Implantao de Computao em Nuvem ........................................ 35 3.1 3.2 3.3 3.4 Nuvens Pblicas ............................................................................................... 36 Nuvens Privadas .............................................................................................. 38 Nuvens Hbridas .............................................................................................. 39 Comparativo entre os Modelos de Nuvens ...................................................... 41

4. Modelos de Servios na Computao em Nuvem .................................................. 43 4.1 Infra-estrutura como Servio (IaaS) ..................................................................... 48 4.2 Database-as-a-Service ........................................................................................... 50 4.3 Plataforma como Servio (PaaS) .......................................................................... 52 4.4 Software como Servio (SaaS) ............................................................................ 54 5. Anlise de Caso: Provedores de Servios de Computao em Nuvem ................ 57 5.1 Amazon Web Services .......................................................................................... 57 5.1.1 Elastic Compute Cloud (EC2) .................................................................................. 57 5.1.2 Simple Storage Solution (S3) .................................................................................. 60 5.1.3 Simple Queue Service (SQS) ................................................................................... 61 5.1.4 SimpleDB ................................................................................................................. 62 5.2 Eucalyptus ............................................................................................................. 63 5.3 Google ................................................................................................................... 64 5.3.1 Google Apps ............................................................................................................. 65 5.3.2 Google App Engine .................................................................................................. 66 5.4 IBM ....................................................................................................................... 68 5.5 Microsoft ............................................................................................................... 69 5.6 Salerforce .............................................................................................................. 73 5.7 Comparativo entre os Modelos de Servios ......................................................... 75 6. Concluso .................................................................................................................. 77 7. Referncias Bibliogrficas ....................................................................................... 79

Lista de Abreviaturas

TI Tecnologia da Informao IaaS Infra-estrutura como Servio PaaS Plataforma como Servio SaaS Software como Servio SOA - Service Oriented Architecture (Arquitetura Orientada a servio) GB Gigabytes MB Megabytes KB Kilobytes GHz - Gigahertz SGBD Sistema de gerenciamento em Banco de Dados API - Application Programming Interface SLA - Service Level Agreement (Acordo de Nvel de Servio) QoS Qualidade de Servio VM Virtual Machine (Mquina Virtual) SO Sistema Operacional EC2 Elastic Compute Cloud AWS Amazon Web Machine AMI Amazon Machine Instance S3 Simple Storage Solution SQS Simple Queue Service SDB - SimpleDB SOAP Simple Object Access Protocol GFS Google File System CPU - Unidade Central de Processamento CRM - Gerenciamento de Relaes com Clientes PC - Computador Pessoal

Lista de Figuras

Figura 1. Evoluo da Tecnologia (CAMBIUCCI, 2010) .................................................................... 15 Figura 2. Tipos de Nuvens (AMRHEIN, 2009) .................................................................................... 36 Figura 3. Nuvem Pblica (MATHER, 2009) ........................................................................................ 37 Figura 4. Nuvem Hbrida (MATHER, 2009) ........................................................................................ 40 Figura 5. Os principais atores que esto relacionados com as camadas de aplicao, de plataforma e de intra-estrutura so, respectivamente, os usurios das nuvens, os prestadores de servios e os prestadores de infra-estrutura (CHIRIGATI, 2009). ............................................................................. 44 Figura 6. Nveis de diviso da computao em nuvem segundo a ontologia proposta (AHRONOVITZ, 2010). .................................................................................................................................................... 46 Figura 7. Papis na Computao em Nuvem (SOUZA, 2009).............................................................. 47 Figura 8. Modelos de Servios (SOUZA, 2009) ................................................................................... 48 Figura 9. Aplicativos de Trabalho no Google Apps (LUIZ, 2010) ....................................................... 66 Figura 10. Servios oferecidos no Windows Azure (ZUNINO, 2008) ................................................. 71 Figura 11. Tamanhos das instncias no Windows Azure (CAMBIUCCI, 2010).................................. 72

1. Introduo
O setor da Tecnologia da Informao (TI) vem sofrendo muitas transformaes nos ltimos anos. A virtualizao e computao em nuvem, ou tambm tem pessoas usando o termo computao na nuvem ou computao nas nuvens, quaisquer destes termos so achados na web referindo-se todos ao mesmo conceito, estas duas tecnologias esto sendo as principais estratgias em tecnologia nas empresas.

As evolues constantes da tecnologia e das telecomunicaes esto fazendo com que o acesso internet se torne cada vez mais amplo e mais rpido. Em pases mais desenvolvidos como Japo, Estados Unidos e Alemanha, possvel ter acesso rpido internet pagando-se muito pouco. Estes fatos criam uma situao perfeita para a difuso da computao em nuvem, embora esse conceito esteja tornando-se conhecido no mundo todo, inclusive no Brasil (PRADO, 2010).

No h dvidas de que esta evoluo esteja ligada diretamente evoluo dos processadores e ao crescimento da internet banda larga. A idia de computao em nuvem no pode ser considerada uma nova tecnologia, mas sim uma nova aplicao da internet a um conceito que existia desde os primrdios da computao. O modelo computacional dos datacenters comeou com os mainframes em 1960. Posteriormente, os microcomputadores surgiram no mercado e uma busca constante por altas capacidades de armazenamento se estabeleceu. As estruturas computacionais baseadas nos mainframes e nos computadores pessoais podem ser vistas como modelos de datacenters. O primeiro, como um modelo mais concentrado e o segundo, como um modelo distribudo. Esta fase foi seguida pelos sistemas distribudos baseados no modelo cliente/servidor e, consequentemente, pelo crescimento explosivo da internet e da web. Mais recentemente, a evoluo das tcnicas de virtualizao tem propiciado o desenvolvimento de aplicaes que compartilham a mesma infra-estrutura de hardware, alavancando o surgimento de solues para servios em nuvem (VERDI, 2010).

Cada vez mais o processamento e o armazenamento esto sendo movidos dos computadores pessoais para grandes provedores de servios, sendo que, o usurio no precisa saber em que local estes dados esto sendo processados e armazenados, pois tudo fica na nuvem. Fotos, vdeos e aplicaes que antes eram armazenadas e processadas nos 10

computadores, agora migram para serem hospedadas e processadas por provedores sob o formato de servios web.

A computao em nuvem pode ser visto como um estgio mais evoludo da virtualizao, pois tem a possibilidade de virtualizar e compartilhar recursos entre diferentes aplicativos para uma melhor utilizao do servidor (TAURION, 2009).

Com a disseminao da internet, a computao em nuvem a sua evoluo natural. Agora que temos tecnologia para transmitir dados em grande quantidade para qualquer ponto do planeta, o que as empresas esto fazendo terceirizando suas necessidades computacionais para os grandes datacenters que so capazes de realizar as operaes com mais velocidade. Computao em nuvem a computao considerada como um servio, ou seja, considerada como um software. Voc no compra hardware ou software, mas voc o aluga e paga apenas pelo que utilizar (FUGULIN, 2010).

De modo que, a computao em nuvem a evoluo da infra-estrutura de internet, ento como exemplo, vamos supor que existe uma empresa de vendas on-line ou de qualquer outra atividade que necessite de uma infra-estrutura de hospedagem, a empresa precisa adequar sua estrutura cada vez que a demanda aumenta, para acompanhar este crescimento precisa-se investir em infra-estrutura o que custaria muito dinheiro e tempo. E se por acaso a demanda for pontual esta estrutura toda torna-se ociosa, desperdiando recursos importantes. Com a computao em nuvem, a empresa tem acesso instantneo a milhares de servidores disponveis na nuvem, sendo possvel contratar mais recursos de processamento, espao e memria a qualquer instante, alm de ser mais seguro, pois a tecnologia responde imediatamente em caso de falhas movendo suas aplicaes automaticamente garantindo estabilidade.

Gartner avalia que o servio de computao em nuvem em todo o mundo movimentou US$ 56,3 bilhes no ano de 2009, chegando a US$ 153 bilhes em 2013. Com estes nmeros, podemos dizer que o conceito est evoluindo gradativamente (TAURION, 2009).

11

1.1 Objetivo Geral


O objetivo deste trabalho elaborar uma pesquisa bibliogrfica, na qual pretende-se mostrar que a tecnologia est sempre em constantes mudanas e inovaes, atravs do esclarecimento do conceito de Computao em nuvem e suas funcionalidades, conforme concepes apresentadas por diversos autores. Para isso, articulamos os conceitos de computao em nuvem com os seus vrios aplicativos e servios j existentes.

Na computao em nuvem, os servidores podem ser compartilhados por sistemas operacionais e aplicativos para ser melhor utilizados pelos servidores, reduzindo os custos. Com o resultado desta pesquisa, se tem como objetivo principal trazer conhecimentos e esclarecimentos referentes computao em nuvem e tambm estabelecer um comparativo entre os modelos de servios que as empresas esto oferecendo no mercado, para que este trabalho sirva de referncia para desenvolvimento e aquisies futuras em aplicaes na nuvem.

1.2 Organizao do Trabalho


No Captulo 2 so apresentadas a evoluo nas empresas do ramo de negcios atuais, em seguida so introduzidos alguns conceitos de tecnologias relevantes para melhor compreenso da computao em nuvem e logo aps inserido os conceitos e as opinies de diversos autores, dessa tecnologia que j esta inserida no mercado e se tornando a melhor estratgia de negcios para as empresas no contexto da atualidade.

No Captulo 3 trata dos quatro tipos de implantaes de servios na computao em nuvem por grau de compartilhamento entre as nuvens empresarias, a nuvem pblica, nuvem privada e nuvem hbrida, por fim feito um comparativo entre elas.

No Captulo 4 est sendo abordado os modelos de servios disponveis para a computao em nuvem. O modelo de banco de dados utilizado pela computao em nuvem que se chama Database-as-a-Service (DaaS). Ento a arquitetura da computao em nuvem esta divida em camadas abstratas, primeiro temos a camada de infra-estrutura (IaaS). Na 12

camada acima temos a de plataforma (PaaS). E por fim temos a camada de arquitetura na sua forma mais abstrata que as aplicaes (SaaS).

No captulo 5 nos traz os conceitos de provedores de servios na computao em nuvem, cada um com seus devidos conceitos, por fim um comparativo entre os modelos de servios.

Por fim, so apresentadas as concluses, trabalhos futuros e referncias bibliogrficas.

13

2. Conceituando Computao em Nuvem

Para entender o que a computao em nuvem, importante compreender como este modelo de computao evoluiu. Como Alvin Toffler observa em seu famoso livro, The Third Wave (Bantam, 1980), a civilizao progrediu em ondas, sendo que, a primeira onda foi em sociedades agrcolas, a segunda foi a era industrial e a terceira a era da informao. Dentro de cada onda, houveram fatos importantes. Neste ps-industrial da era de informao, estamos agora no incio do que muitas pessoas chamam de uma era da computao em nuvem (MATHER, 2009).

Observando a Revoluo Industrial e seu impacto na economia mundial, a prpria revoluo no aconteceu de um dia para outro, mas sim atravs de uma srie de mudanas. Neste contexto se observarmos a internet, esta tambm tem se desenvolvido atravs de uma sequncia de mudanas. E a computao em nuvem o assunto do momento (MATHER, 2009).

Ento, vive-se o auge da era de informao, com os avanos da tecnologia, e tambm com a introduo de tantos meios onde a informao torna-se cada vez mais acessvel.

Desde a dcada de 90 que os grandes negcios mundiais esto sendo impulsionados pela TI computacional. Isto acontece porque as empresas atualmente esto em um mercado novo com desenvolvimentos tecnolgicos muito grandes e rpidos (LIMA, 2009).

O cenrio de negcios atual exige das empresas maior velocidade, flexibilidade e consistncia na implantao de suas estratgias para sobrevivncia e crescimento. A execuo destas estratgias envolve certas etapas que competem por recursos (humanos, financeiros e materiais) com as atividades rotineiras da organizao, aumentando a complexidade da gesto empresarial (ESCOBAR, 2009).

A inovao possibilita que a empresa cresa no mercado, aumente sua lucratividade, enfrente a concorrncia de maneira igual e se mantenha adequada no mercado, ou seja, seus produtos, processos e prticas de marketing em permanente sintonia com as necessidades dos 14

seus clientes. preciso inovar e renovar a organizao do empreendimento e acelerar e aumentar a produtividade (VERAS, 2009).

Ento esta evoluo de negcio gil, de dispositivos e de tecnologias elas ocorrem ao longo do tempo e isso acontece quando diferentes abordagens para construo de arquiteturas direcionam a TI. De acordo com a viso de Waldemir Cambiucci arquiteto de Solues Microsoft Brasil, essa evoluo ao longo do tempo se deu de dez em dez anos, onde para cada perodo tem-se um destaque em especial, como mostra a Figura 1.
1970 1980 1990 2000 2009+

Figura 1. Evoluo da Tecnologia (CAMBIUCCI, 2010)

Nos anos de 1970, ns podemos observar que a viso da tecnologia era centralizada, com aplicaes monolticas que exigia uma grande expertise para programao, coordenao e administrao deste ambiente.

Nos anos de 1980, temos uma computao pessoal surgindo e com uma viso do cliente/servidor, com o foco mais descentralizado, distribudo e tinha tambm o usurio com poder de controle e de acesso na mquina desktop.

Nos anos de 1990, consolidada a viso da web, de fato as pessoas comeam a se conectar e a partir da, obtemos a prpria web tornando-se uma plataforma para novos sistemas e novas aplicaes.

15

Nesses ltimos anos, temos muitas discusses em volta de servios e ento Waldemir Cambiucci fala de SOA (Service Oriented Architecture), esta arquitetura orientada para servios tem sido uma viso perseguida por vrias empresas. Que basicamente buscam a diminuio de custo operacional, a consolidao de funcionalidades, a maior eficincia na operao de TI e a reutilizao de recursos implementados.

Ento depois de SOA, vai ter-se uma maturidade de servios locais que as aplicaes j consomem, mas tambm ser consumido servios remotos, aonde vem a aplicao do conceito de computao em nuvem.

Ento pode-se destacar um fator complicador hoje em dia que as mudanas ocorrem muito rpido. Analisando o mundo atual e comparando com alguns anos atrs, quando no havia o Google, Wikipdia, Orkut, iPhones e outros...e at hoje ela esta em constante mudanas em um tempo mais curto para elas ocorrerem (TAURION, 2009).

E neste contexto de atualidade, que precisamos de uma infra-estrutura que permita que o negcio seja to flexvel quanto demanda do mercado. Da ento surgiu o conceito de computao em nuvem. O qual refere-se utilizao da memria, das capacidades de armazenamento, clculo de computadores, servidores compartilhados e interligados por meio da internet, ainda implementa o conceito de virtualizao permitindo que estes computadores fiquem interligados os quais geram uma imagem de um super computador (TAURION, 2009).

Ento, a computao em nuvem surgiu como um novo modelo de computao distribuda que aproveita conceitos de clusters e grids, alm de basear-se nos avanos de tcnicas de virtualizao conquistados nos ltimos anos. O conceito de nuvem surge da disposio fsica dos elementos envolvidos no modelo. Em outras palavras, os servidores que hospedam dados e aplicativos ficam localizados em datacenters de empresas de qualquer parte do mundo, o que nos leva necessidade de um termo que abstraia esta localizao. Para tal, adotou-se o termo nuvem, significando ento, um emaranhado de servidores disponveis via internet (PIGATTO, 2009).

16

De acordo com Andy Bechtolsheim (2008):

O modelo de computao em nuvem a quinta gerao da computao, depois do mainframe, PC (Personal Computer), modelo cliente/servidor e web. Trata-se de uma evoluo do modelo cliente/servidor, diferindo na distribuio do processamento, o qual em grande parte centralizado no servidor remoto, cabendo ao terminal cliente efetuar pequenas tarefas de processamento locais (PIGATTO, 2009).

Computao em nuvem, portanto, trata-se da utilizao de softwares ou sistemas em rede e da capacidade de prover recursos sob demanda ao usurio. Desta maneira, as informaes so permanentemente armazenadas em servidores na internet (localizados na nuvem), sendo realizadas caches destes dados em computadores desktops, notebooks, dispositivos mveis, entre outros, os quais estaro fazendo uso da infra-estrutura em nuvem (PIGATTO, 2009).

O termo computao em nuvem, como qualquer novo termo, possui vrias definies possveis, muito embora todas relativamente parecidas. O mais importante entendermos que a definio do conceito est ainda em evoluo e novas definies podero surgir. O trabalho (Vaquero et al. 2009) faz uma anlise das definies utilizadas na literatura atual e adota a seguinte opo:

Computao em Nuvem um conjunto de recursos virtuais facilmente usveis e acessveis tais como hardware, plataformas de desenvolvimento e servios. Estes recursos podem ser dinamicamente re-configurados para se ajustarem a uma carga varivel, permitindo a otimizao do uso dos recursos. Este conjunto de recursos tipicamente explorado atravs de um modelo pay-per-use com garantias oferecidas pelo provedor atravs de acordos de nvel de servio (Service Level Agreements-SLAs) (VERDI, 2010).

De acordo com Antnio Carlos Pina, lder tcnico do projeto Cloud Computing da Tecla Internet, de quatro anos pra c, fala-se muito em computao em nuvem, desde ento, vrios fornecedores se apropriaram da expresso computao em nuvem e suas variantes (IaaS, PaaS, SaaS) para vender seus servios. Fornecedores com diferentes plataformas competem, isto timo, pois a longo prazo, quem ganhar com esse movimento o usurio que poder escolher o servio do fornecedor que melhor atender suas demandas (PINA, 2010). 17

Antnio Carlos Pina ainda diz que, no ponto de vista do usurio, computao em nuvem nada mais , do que o fornecimento de servios via internet pagos pelo uso. muito parecido com a eletricidade nos tempos atuais (Utility Computing), se o usurio usa muito paga muito, se usa pouco paga pouco. E o usurio no precisou investir em gerao prpria (geradores) para ter acesso a eletricidade, pois a companhia eltrica j faz isso (PINA, 2010).

comum referir-se ao modelo como Utility Computing (computao como uma utilidade), o que significa que o usurio poder acessar aplicaes de negcios online, a partir de qualquer dispositivo virtualmente disponvel, mediante um pagamento por uso.

Neste mesmo contexto, com a nuvem, o usurio no investe na compra de computadores e infra-estrutura em geral (switches, roteadores, etc.), mas utiliza os dispositivos na nuvem. O fornecedor de computao em nuvem possui uma estrutura escalvel e elstica, da ento consegue cobrar apenas o que foi demandado desta grande estrutura (PINA, 2010).

Tratando-se especicamente da denio, ainda no se tem uma denio amplamente aceita. Esta definio a baixo do mais recente projeto da

NIST Trabalho de Definio de Cloud Computing publicado por os EUA Governo Instituto Nacional de Padres e tecnologia e pode ser encontrado no seguinte endereo: http://csrc.nist.gov/groups/SNS/cloud-computing/
Computao em nuvem um modelo que possibilita acesso, de modo conveniente e sob demanda, a um conjunto de recursos computacionais congurveis (por exemplo, redes, servidores, armazenamento, aplicaes e servios) que podem ser rapidamente adquiridos e liberados com mnimo esforo gerencial ou interao com o provedor de servios (SOUZA, 2009).

J (Armbrust et al. 2009) propem a seguinte denio:

A computao em nuvem um conjunto de servios de rede ativados, proporcionando escalabilidade, qualidade de servio, infra-estrutura barata de computao sob demanda e que pode ser acessada de uma forma simples e pervasiva (SOUZA, 2009).

18

Gartner afirma que:


A computao em nuvem como um estilo de computao onde capacidades de TI altamente escalveis so fornecidas como um servio para consumidores externos usando tecnologias de internet (FREZENDE, 2009).

O termo computao em nuvem estar sendo considerado nas estratgias de tecnologia de informaes das empresas e dos prestadores de servio. Estamos ainda no incio da computao em nuvem, por ser um tema muito recente, ainda existe muito desconhecimento. Mas com certeza este termo computao em nuvem no futuro vai transformar o modo como as empresas operam sua TI (TAURION, 2009).

2.1 Tecnologias Relevantes na Computao em Nuvem


O conceito de computao em nuvem, j no mais to abstrato como era h um tempo. Hoje possvel no somente armazenar dados online, mas tambm trabalhar em uma mquina remota, acessvel de qualquer lugar e disponvel o tempo todo, como se o usurio estivesse levando seu computador sempre junto. No mais necessrio preocupar-se com hardware, sistema operacional ou aplicativos instalados. At mesmo o backup passa a ser uma preocupao a menos, j que a maioria das empresas fornece planos para garantir a segurana e integridade dos seus dados (JOBSTRAIBIZER, 2010)

De fato a computao em nuvem no vista como uma nova tecnologia, mas sim a combinao de muitas tecnologias j existentes. Essas tecnologias tm amadurecido a ritmos diferentes, em diferentes contextos e no foram concebidos como um todo coerente, no entanto, elas se uniram para criar um ecossistema para a computao em nuvem. Novos avanos tecnolgicos em transformaes como, a tecnologia de virtualizao, discos de armazenamento, acesso internet de banda larga e rpida, servidores baratos, ento se uniram para fazer a nuvem uma soluo mais atraente (MATHER, 2009).

O entusiasmo com a computao em nuvem se deve s inmeras vantagens que ele pode oferecer tanto aos fornecedores de tecnologia quanto aos usurios.

Em primeiro lugar, este um modelo que prev um melhor aproveitamento dos investimentos em hardware. Um dos pilares da computao em nuvem a consolidao dos 19

recursos de hardware para que eles possam ser aproveitados ao mximo e gerenciados de forma inteligente, proporcionando economia de custos (MOREIRA, 2009).

Ento nos prximos subttulos abordaremos as tecnologias relevantes que fazem parte desta evoluo computacional, chamada de computao em nuvem, com definies apresentadas por alguns autores.

2.1.1 Recursos Compartilhados


Ao contrrio dos modelos anteriores de computao, que assumiram recursos dedicados (isto , a instalaes dedicadas a um nico usurio ou proprietrio), a computao em nuvem baseada em um modelo de negcio em que os recursos so partilhados (isto , vrios usurios usam o mesmo recurso) no nvel de rede (MATHER, 2009).

De acordo com NIST, a proposta do modelo de computao em nuvem ter uma aplicao atendendo a mltiplos clientes, chamados de tenants ou inquilinos. Inquilinos no so usurios individuais, mas empresas clientes do software. Uma arquitetura multi-inquilino essencial para a computao em nuvem pois permite que mltiplos inquilinos compartilhem recursos fsicos comuns (hardware e software), mas permanecendo logicamente isolados. Recusos compartilhados comum na maioria dos sistemas baseados em nuvem (AHRONOVITZ, 2010).

2.1.2 Escalabilidade
Embora as organizaes possam ter centenas ou milhares de sistemas, a computao em nuvem fornece a capacidade de escala a dezenas de milhares de sistemas, bem como a capacidade de massividade de escala, de banda e espao de armazenamento (MATHER, 2009).

Se o usurio surpreendido por uma demanda repentina, a computao em nuvem pode ajud-lo a gerenciar. Ao invs de ter que comprar, instalar e configurar novos equipamentos, o usurio pode comprar os ciclos da CPU ou armazenamento de um terceiro. Uma vez que os custos so baseados no consumo, provavelmente no teria de pagar tanto 20

como se tivesse que comprar o equipamento. Depois de ter cumprido a necessidade de equipamento adicional, basta parar de usar o prestador de servios em nuvem e o usurio no ter que lidar com equipamentos desnecessrios. Ir simplesmente adicionar ou subtrair com base na necessidade da sua organizao (RUSCHEL, 2008).

A escalabilidade uma caracterstica fundamental na computao em nuvem. As nuvens de servio e as plataformas oferecidas podem ser dimensionadas por vrios fatores, tais como a localizaes geogrficas, desempenho ou configuraes. As aplicaes desenvolvidas para uma nuvem precisam ser escalveis, de forma que os recursos utilizados possam ser ampliados ou reduzidos de acordo com a demanda. Para que isso seja possvel, as aplicaes e os dados devem ser flexveis o suficiente. Porm, tornar estes dados elsticos no tem sido uma tarefa muito fcil, dependendo da sua implementao (CHIRIGATI, 2009);

2.1.3 Elasticidade
Dimensionamento rpido e automtico para a escalabilidade, freqentemente aparentando possuir recursos ilimitados. Os recursos podem ser adquiridos de forma rpida e elstica, em alguns casos automaticamente, caso haja a necessidade de escalar com o aumento da demanda e liberados, na retrao dessa demanda. Para os usurios, os recursos disponveis para uso parecem ser ilimitados e podem ser adquiridos em qualquer quantidade e a qualquer momento. O que ajuda muito na caracterstica de elasticidade rpida na computao em nuvem a virtualizao, criando vrias instncias de recursos requisitados utilizando um nico recurso real. Virtualizao a criao de ambientes virtuais com o propsito de abstrair caractersticas fsicas do hardware, podendo emular vrios sistemas operacionais em uma nica plataforma computacional (AHRONOVITZ, 2010).

A elasticidade definida como a capacidade de dimensionar os recursos, conforme necessrio. Para o consumidor, a nuvem parece ser infinita e o consumidor pode comprar muita ou pouca potncia de computao, como for necessrio. Esta uma das caractersticas essenciais de computao em nuvem, na definio do NIST. (AHRONOVITZ, 2010).

21

2.1.4 Dispositivos de Acesso


A gama de dispositivos de acesso para a nuvem tem se expandido nos ltimos anos. Computadores domsticos, computadores empresariais, computadores pessoais, dispositivos de telefonia mvel, dispositivos mveis personalizados, todos esto online. Curiosamente, o crescimento do iPhone e da proliferao de aplicaes disponveis a partir de sua App Store ilustra uma melhoria em termos de acesso nuvem. Este maior acesso est resultando em uma maior utilizao e crescimento dos servios utilizados na nuvem. Por exemplo, voc pode agora utilizar o Skype atravs do iPhone e outros dispositivos mveis, trazendo esta rede mais prximo dos usurios, e a Salesforce.com lanou uma aplicao que permite aos usurios acessar seus servios a partir do iPhone, assim como muitos outros fornecedores. (MATHER, 2009).

Computadores de baixo custo para o usurio, aqui est uma vantagem quantitativa financeira. Na qual o usurio no precisa de um computador potente (e, portanto, de alto preo) precisa sim de um computador para executar a computao em nuvem que baseado nas aplicaes da web. Como o aplicativo executado na nuvem, o computador no precisa do poder de processamento e espao em disco rgido exigido pelo software tradicional. Por isso os computadores de clientes em computao em nuvem pode ser de menor custo, com menos discos rgidos, menos memria, processadores mais eficientes, e assim por diante. Na verdade, um computador de usurio neste cenrio nem sequer precisa de um drive de CD ou DVD, porque no existem programas de software a serem carregados e os arquivos de documentos no precisam ser salvos (MILLER, 2009)

2.1.5 Pay as you go


Este termo pay as you go refere-se que, os usurios iro pagar apenas os recursos que eles realmente iro usar e s o tempo que lhes impem os valores (MATHER, 2009).

O usurio tem um melhor controle de gastos ao usar aplicativos, pois a maioria dos sistemas de computao em nuvem fornece aplicaes gratuitamente e, quando no gratuitas, so pagas somente pelo tempo de utilizao dos recursos. No necessrio pagar por uma licena integral de uso de software (DELMIRO, 2010).

22

Embora pesquisas em computao tenham investigado vrios modelos econmicos de infra-estrutura computacional durante a ltima dcada, a computao em nuvem tem uma abordagem mais aplicada aos negcios e relacionada ao custo. Assim, a computao em nuvem apresenta diversos modelos de preo, sendo estes organizados em trs grupos: preo diferenciado, preos por unidade e assinatura de servios bsicos. Preo diferenciado o modelo adotado pela Amazon, onde os servios so oferecidos em vrios nveis de especificaes, tais como alocao de memria e tipo de CPU, o valor cobrado um preo especfico por unidade de tempo. Preo por unidade normalmente aplicado a dados transferidos ou ao uso de memria. Este modelo mais flexvel do que o de preo diferenciado, j que permite aos usurios personalizarem a alocao de memria de seus sistemas baseados nas necessidades de aplicaes especficas. O modelo de assinatura de servios bsicos o modelo de preos mais amplamente utilizado, permitindo aos usurios preverem suas despesas previamente na utilizao de um servio. Contudo, este modelo no tem a preciso em cobrar dos usurios o que eles tm realmente utilizado (SOUZA, 2009).

2.1.6 Auto Servio sob demanda


O usurio pode adquirir unilateralmente recurso computacional, como tempo de processamento no servidor ou armazenamento na rede na medida em que necessite e sem precisar de interao humana com os provedores de cada servio. Dentro de uma nuvem, o hardware e o software podem ser automaticamente reconfigurados e estas modificaes so apresentadas de forma transparente para os usurios, que possuem perfis diferentes e assim podem personalizar os seus ambientes computacionais, por exemplo, a configurao de rede para a definio de determinados privilgios, instalao de algum software (RUSCHEL, 2008).

Os usurios provisionam a utilizao de recursos, tais como sistemas complementares (capacidade de processamento, software, recursos de armazenamento) e da rede (MATHER, 2009).

A computao em nuvem um sistema autnomo gerenciado de forma transparente para os usurios. Hardware e software dentro de nuvens podem ser automaticamente reconfigurados, orquestrados e estas modificaes so apresentadas ao usurio como uma 23

imagem nica. Essa autonomia importante, pois reduz o custo de equipe de monitoramento do sistema tanto no mbito centralizado quanto distribudo (Birman et al. 2009). Comparados com sistemas tradicionais, possvel identificar trs fatores complexos: interveno humana limitada, alta alternncia na carga de processamento e uma variedade de infra-estruturas compartilhadas. Na maioria dos casos, no existem administradores de sistemas para ajudar os desenvolvedores que acessam a nuvem, fazendo com que a plataforma seja automatizada ao mximo e os usurios podem variar a carga de trabalho habitual, necessitando de uma infraestrutura de virtualizao eficaz. A gerncia tambm importante no contexto do desenvolvimento de tecnologia de auto-sintonia. Assim sendo, tcnicas adaptativas e online devero ser desenvolvidas para tornar estes sistemas viveis (Aboulnaga et al. 2009) (SOUZA, 2009).

Os usurios no so mais confrontados com a escolha entre software obsoleto e atualizao de alta despesas. Quando o aplicativo baseado na web, as atualizaes acontecem automaticamente e so disponibilizados na prxima vez que o usurio ocupar a nuvem. Sempre que o usurio acessar um aplicao baseado na web, ele est recebendo a verso mais recente, sem a necessidade de pagar ou fazer o download de uma atualizao (MILLER, 2009).

2.1.7 Alta velocidade no acesso de banda larga


Um componente crtico da nuvem a rede banda larga, que oferece os meios para contato entre os componentes e proporciona uma das diferenas substanciais a partir do conceito de Utility Computing de trinta anos atrs. Acesso banda larga hoje amplamente disponvel, especialmente em reas metropolitanas. O acesso generalizado sem fio (por exemplo, Wi-Fi, celular, emergentes WiMAX) est disponvel, e estabelece dispositivos mveis como pontos de entrada para os recursos de TI da empresa e da nuvem (MATHER, 2009).

Uma vez que no se pode exigir que os sistemas que constituem uma nuvem sejam da mesma tecnologia. Os recursos esto disponveis atravs da rede e acessados por meio de mecanismos que promovam o padro utilizado por plataformas heterogneas (por exemplo, telefones celulares, laptops e PDAs). A interface de acesso a nuvem no obriga os usurios a 24

mudarem suas condies e ambientes de trabalho, como por exemplo, linguagens de programao e sistema operacional. J os softwares clientes instalados localmente para o acesso nuvem so leves, como um navegador de internet (RUSCHEL, 2008).

2.1.8 Os Dispositivos de Armazenamento


Diminuir os custos de armazenamento e a flexibilidade com que o armazenamento pode ser implantado mudou o conceito de armazenamento. O dispositivo de armazenamento fixo de acesso direto (DASD) foi substitudo por redes de armazenamento (SANs), que reduziram os custos e permitiram muito mais flexibilidade em armazenamento no sistema corporativo. SAN software gerencia a integrao dos dispositivos de armazenamento e pode independentemente alocar espao de armazenamento sob demanda atravs de um nmero de dispositivos (MATHER, 2009).

Vamos olhar mais para o que ocorre quando um computador no tem espao para armazenar e executar uma tonelada de aplicativos baseados em software. Com menos programas sobrecarregando a memria do computador, os usurios vero melhor o desempenho de seus computadores. Simplificando, computadores em um sistema de computao em nuvem iro arrancar mais rpido e tero maior velocidade, porque eles tm menos programas e processos carregados na memria (MILLER, 2009).

A nuvem oferece capacidade de armazenamento praticamente ilimitada. Considere quando o seu computador est funcionando fora do espao de armazenamento. Por exemplo, um computador com 200 GB de disco rgido muito pouco, quando comparado com as centenas de petabytes (um milho de gigabytes), disponveis na nuvem. Tudo que preciso armazenar possvel, mas no podemos esquecer que a quantidade de dados armazenados acarreta em valores pagos aos provedores de servios de nuvem (MILLER, 2009).

O gerenciamento de dados considerado um ponto crtico no contexto de computao em nuvem. Os SGBDs relacionais no possuem escalabilidade quando milhares de stios so considerados (Weiet al. 2009). Assim, aspectos de armazenamento de dados, processamento de consultas e controle transacional tem sido flexibilizados por algumas abordagens para garantir a escalabilidade, mas ainda no existem solues que combinem estes aspectos de 25

forma a melhorar o desempenho sem comprometer a consistncia dos dados (Abadi, 2009). Existe diversas abordagens para gerenciar dados em nuvens, dentre as quais podemos citar o Microsoft Azure e HBase (Brantner et al. 2008). Um aspecto importante o trade-off entre funcionalidades e custos operacionais enfrentados pelos provedores de servios. Os servios em nuvem para dados oferecem APIs mais restritas do que os SGBD relacionais, com uma linguagem minimalista de consulta e garantia de consistncia limitada (Abouzeid et al. 2009). Isso exige mais esforo de programao dos desenvolvedores, mas permite aos provedores construrem servios mais previsveis e oferecerem SLA. De acordo com (Armbrust et al. 2009), a criao de um sistema de armazenamento que combina os diversos aspectos de computao em nuvem, de forma a aumentar a escalabilidade, a disponibilidade e consistncia dos dados um problema de pesquisa em aberto (SOUZA, 2009).

2.1.9 As Tecnologias de Virtualizao

A virtualizao uma plataforma tecnolgica fundamental para promover a computao em nuvem. O termo virtualizao refere-se abstrao de recursos computacionais (CPU, armazenamento, memria, rede, pilha de aplicativos e banco de dados) de aplicaes e usurios finais que utilizam o servio. Fornece a capacidade de reunir recursos para ser disponibilizado e acessvel a qualquer pessoa autorizada a utiliz-las atravs de mtodos padronizados (MATHER, 2009).

um arquivo (geralmente chamado de uma imagem) que, quando executado, olha para o usurio como uma mquina real. A infra-estrutura como servio muitas vezes fornecido como uma imagem de mquina virtual que pode ser iniciado ou parado, conforme necessrio (AHRONOVITZ, 2010).

A virtualizao uma tcnica de projeto fundamental para todas as arquiteturas em nuvem. Em computao em nuvem se refere principalmente virtualizao de plataforma. A virtualizao permite que os servidores, dispositivos de armazenamento e outros equipamentos devem ser tratados como um conjunto de recursos, em vez de sistemas discretos, de modo que esses recursos podem ser alocados por demanda. Na computao em nuvem, estamos interessados em tcnicas tais como virtualizao, que permite que um nico

26

servidor pode ser tratado como vrios servidores virtuais, uma aglomerao, o que permite mltiplos servidores serem tratados como um nico servidor (MATHER, 2009).

O uso de nvel de sistema operacional virtualizado ou de particionamento (como LPARs, vPars, nPars, Sistema Dinmico de domnios e assim por diante) nas arquiteturas em nuvem pode ajudar a resolver alguns problemas do centro de segurana, privacidade e questes regulatrias que poderiam dificultar a adoo de computao em nuvem (SUN, 2009).

Por exemplo, a virtualizao do sistema operacional, como o previsto pelo Solaris Containers torna possvel manter um modelo de implantao de um aplicativo por servidor, ao mesmo tempo se usa compartilhamento de recursos de hardware. De modo que, estes isolam os aplicativos de software e servios com limites definidos por software e permitem que muitos ambientes de execuo privados possam ser criados em uma nica instncia do Solaris OS. Cada ambiente tem sua prpria identidade, separado do hardware subjacente, de modo que se comporta como se estivesse rodando em seu prprio sistema. Isso torna possvel para reduzir as despesas administrativas, a complexidade do gerenciamento de mltiplos sistemas operacionais e a melhor utilizao, ao mesmo tempo (SUN, 2009).

2.1.10 Orientada a servios


Abstrao e acessibilidade so dois pontos chaves para atingir a concepo de servio orientado. Atravs da virtualizao e outras tecnologias, a arquitetura subjacente abstrada sem se expor muito ao usurio. A abstrao reduz tanto a necessidade do usurio para aprender detalhes da arquitetura sobre a nuvem e do limiar de aplicao de desenvolvimento. Ao mesmo tempo, os elementos chave da arquitetura subjacente podem ser simplesmente acessados pelo usurio da nuvem. O usurio pode facilmente explorar parmetros do sistema, tais como o desempenho de processamento e capacidade de armazenamento. Em geral, de acordo com o tipo de capacidade, os servios de computao em nuvem so amplamente divididos em trs categorias: Infra-estrutura como Servio (IaaS), Plataforma como Servio (PaaS), e Software como Servio (SaaS). Ento, o usurio no precisa se preocupar com a estrutura para executar a aplicao: hardware, procedimentos de backup, controle de

27

segurana, manuteno, entre outros, ficam de forma abstrata para o cliente, porm quem responsvel por esta infra-estrutura o fornecedor de servio (RUSCHEL, 2008).

Na maioria das vezes o usurio no precisa se preocupar com o sistema operacional e hardware que est usando em seu computador pessoal, podendo acessar seus dados na nuvem computacional. A possibilidade de acessar arquivos a partir de qualquer lugar o que mais chama a ateno na computao em nuvem. Um dos motivos que tem feito o modelo alavancar a melhoria contnua dos servios de internet, hoje est cada vez mais fcil de obter acesso e estar online em tempo integral. Isso faz com que novos servios possam ser centralizados na web (CAROLINY, 2010).

O trabalho corporativo e o compartilhamento de arquivos se tornam mais fceis, uma vez que todas as informaes se encontram no mesmo lugar, ou seja, na nuvem (CAROLINY, 2010).

2.1.11 Pooling de Recursos


O provedor de recursos de computao agrupado para atender vrios consumidores atravs de um modelo multi-tenant ou tambm conhecido como Multi-Inquilino, com diferentes recursos fsicos e virtuais atribudos dinamicamente e novamente de acordo com a demanda do consumidor. H um senso de independncia local em que o cliente geralmente no tem nenhum controle ou conhecimento sobre a localizao exata dos recursos disponibilizados, mas pode ser capaz de especificar o local em um nvel maior de abstrao (por exemplo, pas, estado ou do data Center). Exemplos de recursos incluem o armazenamento, processamento, memria, largura de banda de rede e mquinas virtuais (RUSCHEL, 2008).

2.1.12 Servio Medido


Os sistemas em nuvem automaticamente controlam e otimizam a utilizao dos recursos, alavancando a capacidade de medio em algum nvel de abstrao adequado para o tipo de servio (por exemplo, armazenamento, processamento, largura de banda, e contas de usurios ativos). Uso de recursos pode ser monitorado, controlado e relatado a existncia de 28

transparncia para o fornecedor e o consumidor do servio utilizado. Podemos monitorar e controlar o uso de recursos, garantindo a transparncia para o provedor e o usurio do servio utilizado. Utiliza-se a abordagem baseada em nvel de servio SLA (Services Level Agreement) para garantir a qualidade de servio (QoS). O SLA fornece informaes sobre os nveis de disponibilidade, funcionalidade, desempenho ou outros atributos do servio como o faturamento e at mesmo penalidades em caso de violao destes nveis (RUSCHEL, 2008).

A computao em nuvem reduz bastante os custos com hardware e manuteno de software para organizaes de todos os tamanhos. Em primeiro lugar, o hardware. Com menos hardware (servidores a menos) necessrios na organizao, os custos de manuteno so imediatamente reduzidos. Quanto manuteno de software, devemos lembrar que todas as aplicaes em nuvem so baseados em outros lugares, portanto no h software em computadores da organizao para a equipe de TI manter (MILLER, 2009).

2.1.13 Service Level Agreement (SLA)


Um SLA um contrato entre prestador de servio e um consumidor, que especifica as exigncias dos consumidores e o empenho do provedor para eles. Normalmente, um SLA inclui itens como tempo de atividade, privacidade, segurana e procedimentos de backup (AHRONOVITZ, 2010).

A poltica um termo geral para um procedimento operacional. Por exemplo, uma poltica de segurana pode especificar que todos os pedidos para um servio na nuvem particular devem ser criptografada (AHRONOVITZ, 2010).

A governana diz respeito aos controles e processos que garantem que polticas sero aplicadas (AHRONOVITZ, 2010).

2.1.14 Interoperabilidade
A interoperabilidade est preocupada com a capacidade dos sistemas de se comunicar entre eles. Ela exige que a informao comunicada seja compreendida pelo sistema de recepo. No mundo da computao em nuvem, isso significa a capacidade de escrever 29

cdigo que trabalha com mais de um fornecedor de nuvem simultaneamente, independentemente das diferenas entre os prestadores de servios (AHRONOVITZ, 2010).

A interoperabilidade diz respeito capacidade dos usurios de executar os seus programas e os seus dados em diferentes nuvens e plataformas. Isso permite, por exemplo, que as aplicaes no fiquem restritas a somente uma nuvem. Essa uma caracterstica amplamente desejvel no ambiente da computao em nuvem. Ultimamente, muitas aplicaes tm sido desenvolvidas considerando esse fator. Porm, ainda h a necessidade da implementao de padres e interfaces para que essa portabilidade seja possvel (CHIRIGATI, 2009).

Empresas de desenvolvimento de software tm interesse que aplicaes possam ser transferidas para a nuvem de forma simples. Essas empresas tambm esperam que exista interoperabilidade entre diferentes servios de nuvem, como por exemplo, entre servios de armazenamento. As APIs da Amazon esto se tornando um padro de fato para servios sob demanda [OpenCloud 2009]. Contudo, a quantidade de tecnologias envolvidas muito grande, tornando-se um desafio padronizar as diversas interfaces e servios (Brandic 2009) (SOUZA, 2009).

2.1.15 Portabilidade
Portabilidade a capacidade de executar os componentes ou sistemas de escrita de um ambiente para outro ambiente. No mundo da computao em nuvem, este inclui ambientes de software e hardware (fsico e virtual) (AHRONOVITZ, 2010).

2.1.16 Integrao
A integrao o processo de combinao de componentes na nuvem ou sistemas em um sistema global. A integrao entre os componentes baseados na nuvem e sistemas pode ser complicado por questes como multiplas locaes e regulamentos da federao dos governos (AHRONOVITZ, 2010).

30

2.1.17 Disponibilidade
Dependendo do fornecedor, o usurio pode contar com alta disponibilidade, j que, se, por exemplo, um servidor para de funcionar, os demais que fazem parte da estrutura continuam a oferecer o servio (RUSCHEL, 2008).

Os usurios da computao em nuvem possuem uma grande preocupao com a questo da disponibilidade dos servios. Eles esperam que as aplicaes estejam sempre disponveis, ou seja, em execuo durante todo o tempo, principalmente nos momentos necessrios. Esse tipo de problema pode ser prejudicial aos usurios quando os mesmos possuem um ponto nico de falha, ou seja, uma nica nuvem com as suas aplicaes e os seus dados. Portanto, uma alternativa ter mais de um prestador e, conseqentemente, mais de uma nuvem, o que permite aos usurios executar seus programas em uma nuvem enquanto a outra apresenta problemas tcnicos (CHIRIGATI, 2009).

2.1.18 Application Programming Interface (API)


uma programao de aplicaes interface um contrato que diz para o desenvolvedor escrever cdigo para interagir com algum tipo de sistema. A API descreve a sintaxe das operaes apoiadas pelo sistema. Para cada operao, a API especifica as informaes que devem ser enviadas para o sistema, a informao de que o sistema ir enviar de volta, e qualquer condies de erro que possam ocorrer (AHRONOVITZ, 2010).

2.1.19 Segurana
Um dos maiores desafios da computao em nuvem a segurana, pois este modelo utiliza a internet para disponibilizar seus servios. Com isso, os usurios desconhecem tanto a localizao exata de seus dados quanto fonte destes. Assim, devem existir formas para impedir o acesso no autorizado a informaes e que os dados sensveis permaneam privados, pois estes sero processados fora da empresa. Questes de segurana devem ser consideradas para prover a autenticidade, confiabilidade e integridade (SOUZA, 2009).

31

Um sistema dito confivel se ele no falha com freqncia e, mais importante, se ele no perde os dados ao falhar (SUN 2009a). As aplicaes desenvolvidas para a computao em nuvem devem ser confiveis, ou seja, elas devem possuir uma arquitetura que permita que os dados permaneam intactos mesmo que haja falhas ou erros em um ou mais servidores ou mquinas virtuais sobre os quais essas aplicaes esto decompostas. Essa caracterstica est associada realizao de cpias de segurana dos dados. O armazenamento dessas cpias deve ser feito em local seguro para que, caso haja alguma falha nas aplicaes e elas percam os dados, estes, ou pelo menos uma parte deles, possam ser recuperados (CHIRIGATI, 2009);

A disponibilidade de servios permite os usurios acessar e utilizar a nuvem onde e quando quiserem. Como se trata da internet pode ocorrer atrasos e sistemas indisponveis. Os ambientes de computao em nuvem devem possuir alta disponibilidade. Portanto, estes podem utilizar tcnicas de balanceamento de carga dinmico e composio de nuvens de forma a atender as necessidades dos usurios. Por exemplo, podem-se construir aplicaes altamente disponveis com a implantao de duas ofertas de nuvem diferentes. Caso uma das nuvens falhe, a outra nuvem continua a apoiar a disponibilidade das aplicaes (SOUZA, 2009).

O fato de juntar todas estas tecnologias, que evoluram de forma independente, geram muitos problemas que ainda precisam ser resolvidos. A computao em nuvem uma tecnologia recente e esta em contnua evoluo por isso ainda veremos muitas mudanas e transformaes (TAURION, 2009).

Um ponto adicional de ateno a questo da plataforma de computao em nuvem ser aberta ou proprietria ( portanto, fechada). At o momento, as ofertas de nuvem, como o Amazon Web Services, Salesforce e o Google Docs, so proprietrias. Isto significa que, por exemplo, s pode-se usar o Google Docs na nuvem do Google e no em nenhuma outra nuvem, como as nuvens da Yahoo ou Microsoft. Esta limitao s tecnologias proprietrias gera o aprisionamento do usurio, restringindo sua liberdade de migrar de uma nuvem para outra (VELTE, 2010).

Ainda no surgiram propostas de nuvens abertas que permitam a portabilidade de aplicaes entre os diversos fornecedores de servios de computao em nuvem. Entretanto, 32

recentemente comearam a surgir alguns movimentos em direo a um padro aberto para interoperabilidade entre nuvens e foi, inclusive, criado um manifesto, chamado OpenCloud Manifesto (www.opencloudmanifesto.org) que se prope a aglutinar empresas em torno da especificao de um padro aberto para a computao em nuvem (TAURION, 2009).

O OpenCloud Manifesto estabelece um conjunto de princpios, denominados princpios para nuvens abertas, que asseguram que as organizaes que usarem nuvens computacionais no ficaro restritas a padres fechados, mas tero liberdade de escolha, flexibilidade e abertura para no ficarem aprisionadas a uma nuvem. Embora a computao em nuvem traga claros benefcios, existe o potencial de aprisionamento e perda de flexibilidade, caso padres abertos no sejam adotados. Dentro de dois meses aps o seu anncio, mais de 250 organizaes assinaram como patrocinadores. Esta atividade do grupo feito luz de seis princpios do Open Cloud Manifesto, os quais esto descritos a seguir: (AHRONOVITZ, 2010)

1.

Os fornecedores de servios em nuvem devem trabalhar juntos para garantir que os desafios para adoo da nuvem (segurana, integrao, portabilidade, interoperabilidade, governana / gesto, medio / monitoramento) sejam abordados atravs de colaborao aberta e ao uso adequado de normas.

2.

Os fornecedores de servios em nuvem no devem usar sua posio no mercado em forma de bloqueio de clientes em suas plataformas especficas e no devem limitar a sua escolha de fornecedores.

3.

Os prestadores de servio na computao em nuvem devem usar e adotar as normas existentes, sempre que adequadas. A indstria de TI tem investido fortemente em padres existentes e as normas das organizaes, no h necessidade de duplicar ou reinventar elas.

4.

Quando novos padres (ou a adaptao s normas existentes) so necessrios, temos de ser criteriosos e pragmticos para evitar a criao de muitas normas. Devemos garantir que as normas promovam a inovao e no inibi-la.

5.

Qualquer esforo da comunidade em torno da nuvem aberta deve ser impulsionada por necessidades do cliente, no apenas as necessidades

33

tcnicas dos provedores de computao em nuvem, e devem ser verificados em relao s necessidades reais dos clientes. 6. Os padres de computao em nuvem em organizaes, grupos de advocacia e nas comunidades devem trabalhar em conjunto e coordenado, certificando-se que os interesses no esto em conflito.

De forma que o modelo de computao em nuvem composto, tipicamente, pelas tecnologias mostradas anteriormente, trs modelos de implantao na nuvem e trs modelos de servios, conforme sero descritos nas prximas sees.

34

3. Modelos de Implantao de Computao em Nuvem

Tratando-se do acesso a da disponibilidade de ambientes de computao em nuvem, tem-se tipos diferentes de implantao. A restrio ou abertura de acesso depende do processo de negcios, do tipo de informao e do nvel de viso desejado. Pode-se perceber que certas empresas no desejam que todos os usurios possam acessar e utilizar determinados recursos no seu ambiente de computao em nuvem. Dessa forma, surge a necessidade da criao de ambientes mais restritos, onde somente alguns usurios devidamente autorizados possam utilizar os servios providos. Ento neste sentido, podemos de afirmar que existem trs tipos de ofertas de computao em nuvem (TAURION, 2009).
O termo nuvem uma metfora usada para a internet e uma representao simplificada da complexidade que esta se encontra, onde dispositivos so interconectados formando a internet. Nuvens privadas e pblicas so subconjuntos da internet e so definidas com base na relao do usurio com a empresa. Nuvens privadas e nuvens pblicas tambm podem ser referidas como nuvens internas ou externas, a diferenciao baseado na relao da nuvem com a empresa (MATHER, 2009).

Os conceitos de nuvens pblicas e privadas so importantes porque suportam a computao em nuvem, que permite o provisionamento da dinmica, so escalveis e possuem recursos virtualizados atravs da internet. Os usurios finais que utilizam os servios oferecidos via computao em nuvem pode no ter conhecimento, experincia, ou controle sobre a infra-estrutura tecnolgica que os suporta (MATHER, 2009).

As ofertas so classificadas pelo grau de compartilhamento entre os setores de uma empresa, que pode dividir a nuvem em trs tipos bsicos de implantao: pblico, privado e hbrido. Como mostra a Figura 2.

35

Figura 2. Tipos de Nuvens (AMRHEIN, 2009)

3.1 Nuvens Pblicas


Em termos simples, servios de nuvem pblica so caracterizados por estar disponvel para os clientes de um provedor de servios terceirizado atravs da internet. O termo "pblico" no significa sempre livre, mesmo que ele possa ser gratuito ou razoavelmente barato de usar. Uma nuvem pblica no significa que os dados de um usurio publicamente visvel, fornecedores de nuvem pblica normalmente fornecem um controle de acesso e mecanismo para seus usurios. Nuvens pblicas oferecem um custo, elstico efetivo para implementar meios de solues (AHRONOVITZ, 2010).

So servios em nuvem fornecidos por terceiros (fornecedor). Elas existem alm do firewall da empresa e so completamente hospedadas e gerenciadas pelo provedor da nuvem (AMRHEIN, 2009).

Uma nuvem pblica pode estar sendo hospedada, operada e gerida por um fornecedor terceirizado de um ou mais centro de dados. O servio oferecido a mltiplos clientes sobre uma infra-estrutura em comum, ver na Figura 3 (MATHER, 2009).

36

Figura 3. Nuvem Pblica (MATHER, 2009)

Taurion (2009), diz que estas nuvens pblicas podem oferecer s empresas um acesso rpido a infra-estruturas computacionais, com custos mnimos. Entretanto, alguns desafios referentes segurana, confiabilidade e portabilidade com outras nuvens so reais e precisam ser endereados corretamente.

As nuvens pblicas tentam fornecer aos consumidores elementos de TI sem problemas. Seja software, infra-estrutura de aplicativo ou infra-estrutura fsica, o provedor de nuvem assume as responsabilidades de instalao, gerenciamento, fornecimento e manuteno (AMRHEIN, 2009).

No modelo de implantao pblico, a infra-estrutura de nuvens disponibilizada para o pblico em geral, sendo acessado por qualquer usurio que conhea a localizao do servio. Neste modelo de implantao no podem ser aplicadas restries de acesso quanto ao gerenciamento de redes, e menos ainda, aplicar tcnicas de autenticao e autorizao (SOUZA, 2009).

Um dos benefcios das nuvens pblicas que elas podem ser muito maiores do que uma nuvem privada, por exemplo, j que elas permitem uma maior escalabilidade dos recursos. Essa caracterstica evita a compra de equipamentos adicionais para resolver alguma necessidade temporria, deslocando os riscos de infra-estrutura para os prestadores de infraestrutura da nuvem. H ainda a possibilidade de destinar algumas pores da nuvem pblica 37

para o uso exclusivo de um nico usurio, criando o chamado datacenter privado virtual, que prov a esse usurio uma maior visibilidade de toda a infra-estrutura (CHIRIGATI, 2009).

3.2 Nuvens Privadas


Taurion (2009) diz que nuvens privadas, tambm so chamadas de nuvens empresariais, correspondem ao uso do conceito de nuvem computacional aplicado aos servidores localizados internamente no firewall da empresa e so gerenciadas pelas mesmas.

As nuvens privadas so construdas exclusivamente para um nico usurio. Diferentemente de um datacenter privado virtual, a infra-estrutura utilizada pertence ao usurio, e, portanto, ele possui total controle sobre como as aplicaes so implementadas na nuvem. Uma nuvem privada , em geral, construda sobre um datacenter privado (RUSCHEL, 2008).

Nuvens privadas diferem das nuvens pblicas em que a rede, computao e armazenamento de infra-estrutura associada com nuvens privadas dedicado a uma nica organizao e no compartilhado com outras organizaes. Como tal, uma variedade de padres de nuvens privadas surgiram: (MATHEL, 2009).

- Dedicado Nuvens privadas hospedada em um centro de dados do cliente ou em uma instalao que so operadas por departamentos internos de TI.

- Comunidade Nuvens privadas localizadas nas instalaes de terceiros, gerenciados e operados por um vendedor que est vinculado por SLAs de costume e clusulas contratuais, com segurana e requisitos de conformidade.

No modelo de implantao comunidade ocorre o compartilhamento por diversas empresas de uma nuvem, sendo esta suportada por uma comunidade especfica que partilhou seus interesses, tais como a misso, os requisitos de segurana, poltica e consideraes sobre flexibilidade. Este tipo de modelo de implantao pode existir localmente ou remotamente e pode ser administrado por alguma empresa da comunidade ou por terceiros. Os membros que 38

fazem parte da comunidade possuem acesso aos dados e aplicativos na nuvem (SOUZA, 2009).

- Dirigido Infra-estrutura em nuvem privada, de propriedade de um cliente e gerido por um fornecedor.

Neste modelo de implantao so empregados polticas de acesso aos servios. As tcnicas utilizadas para prover tais caractersticas podem ser em nvel de gerenciamento de redes, configuraes dos provedores de servios e a utilizao de tecnologias de autenticao e autorizao. Um exemplo deste modelo seria o cenrio de uma universidade e seus departamentos. A universidade pode estar interessada em disponibilizar servios para seus departamentos e outros rgos desta instituio no devem ter acesso a esses servios (RUSCHEL, 2008). As nuvens privadas oferecem vantagens com relao variedade pblica. O controle com granularidade mais baixa com relao a diversos recursos que formam a nuvem fornece a uma empresa todas as opes de configurao disponveis. Alm disso, as nuvens privadas so ideais quando o tipo de trabalho que est sendo realizado no prtico para a nuvem pblica, devido a preocupaes com segurana e regulamentao (AMRHEIN, 2009). Caso o usurio aumentar os recursos utilizados em sua nuvem privada, ele deve adquirir novos equipamentos, como sistemas de armazenamento, por exemplo, j que a sua nuvem est limitada capacidade de seu sistema fsico. Em uma nuvem pblica, no h essa necessidade, uma vez que, como os recursos so facilmente escalveis, basta o usurio reservar uma quantidade maior deles. Devido a essas diferenas, diz-se que as nuvens pblicas so mais adequadas para aplicaes temporrias, enquanto que as nuvens privadas so um ambiente mais apropriado a aplicaes permanentes que demandam nveis especficos de qualidade de servio e de localizao dos dados (CHIRIGATI, 2009).

3.3 Nuvens Hbridas


A nuvem hbrida ou mista se trata de uma combinao de nuvens pblicas e privadas. Essas nuvens seriam geralmente criadas pela empresa e as responsabilidades de 39

gerenciamento seriam divididas entre a empresa e o provedor de nuvem pblica. A nuvem hbrida usa servios que esto no espao pblico e privado (AMRHEIN, 2009).

Nesse sentido, uma empresa pode determinar os objetivos e necessidades de servios e obter os mesmos da nuvem pblica ou privada, conforme apropriado. Uma nuvem hbrida bem construda poderia atender processos seguros crticos para a misso, como o recebimento de pagamentos de clientes, assim como aqueles secundrios para os negcios, como processamento de folha de pagamento de funcionrios (AMRHEIN, 2009).

Com uma nuvem hbrida, as organizaes podem executar servios que no so necessariamente exigidos pela empresa, ou seja, que possam ser repassadas para terceiros, hospedando eles em uma nuvem pblica e mantendo os aplicativos principais e dados sensveis da empresa em casa, na nuvem privada, ver Figura 4 (MATHER, 2009).

Figura 4. Nuvem Hbrida (MATHER, 2009)

A nuvem hbrida pode ter sua configurao descrita pela combinao de um dispositivo local como um computador conectado a uma nuvem de servios. Tambm pode ser descrita com uma configurao que combina recursos virtuais e fsicos como, por exemplo, um ambiente virtual que requer servidores fsicos, roteadores ou outro tipo de hardware como um firewall ou um filtro de spam. (VIEIRA, 2009).

Para Paul Korzeniowski o modelo de nuvem hbrida tenta unir o modelo de datacenter local convencional com a capacidade varivel que esses modelos de nuvem oferecem. Uma empresa pode comprar capacidade de computao sob demanda para lidar com trfego de web em uma grande promoo ou por uma iniciativa de pesquisa sob demanda. Ao invs de comprar hardware que roda com uma capacidade bem mais baixa na maioria das vezes, a

40

abordagem hbrida promete permitir que as empresas rodem seus prprios servidores com utilizao mais alta, comprando capacidade de fluxo sob demanda (DUARTE, 2009).

vlido destacar que as nuvens hbridas introduzem a complexidade de determinar a maneira como as aplicaes so distribudas entre nuvens pblicas e privadas. A relao entre os dados e os recursos de processamento, por exemplo, deve ser considerada. Se uma aplicao possui uma grande quantidade de dados, o seu processamento em uma nuvem pblica pode no ser favorvel, j que passar esses dados de sua nuvem privada para uma nuvem pblica pode ser muito custoso (TAURION, 2009).

3.4 Comparativo entre os Modelos de Nuvens


Nuvem uma palavra que est hoje no vocabulrio de TI das maiores empresas brasileiras. Mas questes como segurana e disponibilidade fazem com que as companhias adotem uma dose extra de cautela. Tanto que o conceito ganhou algumas variaes: existem as nuvens pblicas, as nuvens privadas e as nuvens hbridas. No primeiro caso, esto grandes provedores de servios como a Amazon e o Google cujos equipamentos, infra-estrutura ou aplicaes so compartilhados por milhares de clientes em todo o mundo, por intermdio da internet. J a nuvem privada a que fica dentro do ambiente protegido (firewall) da empresa e tem o acesso restrito, geralmente aos seus funcionrios e parceiros de negcio (SPOSITO, 2009).

As nuvens pblicas so as mais conhecidas e possuem um fcil acesso. Sendo que, em alguns casos a sua utilizao pode ser gratuita ou no, isto vai depender do tipo de servio que o usurio vai precisar.

Nestas nuvens pblicas, os dados dos usurios so armazenados em provedores de servio, os quais so terceirizados, estes vo ser responsveis pelo gerenciamento correto destes dados, pelas instalaes, pela manuteno e fornecimento de recursos de infra-estrutura quando for solicitado pelo usurio.

As nuvens privadas so elaboradas para atender somente uma organizao. Sendo assim, esta tem total controle sobre as operaes na nuvem. 41

Ento podemos perceber que com uma nuvem hbrida, uma empresa tem sua nuvem privada, com servios em execuo no seu firewall. No entanto, com as nuvens hbridas, possvel o usurio acessar os dados armazenados fora do local da empresa atravs da nuvem pblica.

Este modelo de nuvem hbrida til quando uma organizao quer ter o controle sobre o armazenamento de dados, mas precisa de espao adicional para arquivar os seus dados. Ento, a empresa vai ter a segurana e a superviso da nuvem privada em suas redes, mas pode armazenar os dados em excesso em uma nuvem escalvel e sob demanda que a nuvem pblica.

Com base em todas estas concepes mostradas por diversos autores, vamos estabelecer um quadro comparativo das principais diferenas entre os modelos de nuvens pblica e privada.

NUVEM PBLICA - Vrios usurios podem us-las - Quem possui o controle o provedor de servios, pois responsvel pelo gerenciamento - No pode ser implementadas polticas de acesso, mas possvel destinar algumas pores de nuvem pblica para o uso exclusivo de um nico usurio, criando um datacenter privado virtual, que prov ao usurio mais visibilidade de toda a infraestrutura - Recursos facilmente escalveis e consequentemente maior escalabilidade

NUVEM PRIVADA - So feitas para somente um usurio - A organizao quem possui o controle total sobre as aplicaes na nuvem - Pode ser implementadas polticas de acesso ao servio (gerenciamento de rede, configurao dos provedores de servio, utilizao da tecnologia de autenticao e autorizao)

- Aplicaes Temporrias

- Se o usurio precisar aumentar os recursos utilizados em sua nuvem privada ele deve adquirir novos equipamentos a sua infraestrutura, aumentando assim os custos para manter sua nuvem - Aplicaes Permanentes

Tabela 1. Comparao entre os Modelos de Nuvem Pblica e Nuvem Privada

42

4. Modelos de Servios na Computao em Nuvem


No modelo de software tradicional as aplicaes destes softwares so baseados em um modelo com grandes custos de licenciamento inicial e anual e custos de suporte. Aumentar o nmero de usurios pode aumentar o custo da base do pacote, devido a necessidade de implementaes de servidores adicionais de hardware e suporte de TI. Os custos do licenciamento so muitas vezes com base em mtricas que no estejam diretamente alinhados com o uso (tipo de servidor, o nmero de CPUs, etc, ou alguma caracterstica fsica) e no so virtuais. Um pacote de software empresarial tpico requer a implantao de hardware, servidores e backup de rede e provisionamento para acomodar o nmero de usurios dentro e fora dos campos. Arquitetura de segurana tambm tributada em um esforo para proteger este valioso recurso contra acesso no autorizado. Ento nos softwares tradicional as aplicaes tendem a ser altamente customizvel, que tem um custo em dlares e mo de obra (MATHER, 2009).

Existem muitos tipos de servios oferecidos pela computao e nuvem. Esta diversidade de servios muito apropriada, pois permite que a empresa adquira os servios mais adequados s suas necessidades (TAURION, 2009).

Ento, a arquitetura da computao em nuvem pode ser divida em trs camadas abstratas a mais baixa das camadas a de infra-estrutura como servio (IaaS), a segunda camada a de plataforma como servio (PaaS) e ltima, a camada de software como servio (SaaS). Cada camada pode possuir seu gerenciamento ou monitoramento de forma independente das outras camadas, melhorando a flexibilidade, reusabilidade e escalabilidade no sentido de substituio ou adio de recursos computacionais sem afetar as outras camadas (SOUZA, 2009).

Pode-se observar na Figura 5 as camadas de aplicaes, de plataforma e de infraestrutura (RUSCHEL, 2008).

43

Figura 5. Os principais atores que esto relacionados com as camadas de aplicao, de plataforma e de intra-estrutura so, respectivamente, os usurios das nuvens, os prestadores de servios e os prestadores de infra-estrutura (CHIRIGATI, 2009).

De acordo cam a Figura 5, o prestador de servios oferece o servio para o consumidor. A tarefa real do provedor varia dependendo do tipo de servio:

Para software como servio (SaaS), o provedor instala, gerencia e mantm o software. Independentemente disso, o consumidor no tem acesso infraestrutura, eles podem acessar somente os pedidos.

Para a plataforma como servio (PaaS), o provedor gerencia a infra-estrutura para a plataforma da nuvem, normalmente varia para o tipo de aplicao. O consumidor no pode acessar a infra-estrutura sob o plataforma.

Para a infra-estrutura como servio (IaaS), o provedor mantm o armazenamento, banco de dados de fila de mensagens, ou outro middleware, ou o ambiente de hospedagem para mquinas virtuais. O consumidor utiliza o servio como se fosse um disco banco de dados, unidade de fila de mensagem, mas eles no podem acessar o infra-estrutura que o hospeda.

No diagrama de prestador de servios, na Figura 6, a camada mais baixa da pilha o firmware e hardware em que tudo se baseia e composto pelo hardware e pelos componentes de rede, os quais formam o esqueleto da nuvem. Acima disso o kernel de software o qual tem a possibilidade de ser implementado como um kernel de SO ou o gestor da mquina 44

virtual que hospeda a infra-estrutura sob a nuvem. Os recursos virtualizados e imagens incluem os servios bsicos de computao em nuvem, como processamento, armazenamento de energia e middleware. As imagens virtuais controlados pelo gerenciador VM (Virtual Machine) incluem tanto as prprias imagens como os metadados necessrios para gerenci-los (AHRONOVITZ, 2010).

crucial para as operaes do prestador de servios a camada de gesto. Em um nvel baixo de gesto exige a medio para determinar quem usa os servios e que medida, o provisionamento para determinar como os recursos so alocados para consumidores e monitoramento para acompanhar o status do sistema e seus recursos. Em um nvel superior, a gesto envolve cobrana para recuperar os custos, planejamento de capacidade para garantir que as exigncias dos consumidores sero atingidos, gesto de SLA para garantir que os termos de servio acordado entre o fornecedor e o consumidor sejam respeitados e relatrios para os administradores (AHRONOVITZ, 2010).

Segurana se aplica a todos os aspectos das operaes do prestador de servios. Abrir normas aplicveis s operaes do provedor tambm. Um conjunto de normas bem arredondadas, normas para simplificar as operaes dentro do provedor e interoperabilidade com outros prestadores de servios (AHRONOVITZ, 2010).

45

Figura 6. Nveis de diviso da computao em nuvem segundo a ontologia proposta (AHRONOVITZ, 2010).

Para entender melhor a computao em nuvem, pode-se classificar os atores dos modelos de acordo com os papis desempenhados (Marinos e Briscoe, 2009). A Figura 7 ilustra estes papis (SOUZA, 2009).

46

Figura 7. Papis na Computao em Nuvem (SOUZA, 2009)

O provedor responsvel por disponibilizar, gerenciar e monitorar toda a estrutura para a soluo de computao em nuvem, deixando os desenvolvedores e usurios finais sem esses tipos de responsabilidades. Para isso, o provedor fornece servios nos trs modelos de servios. Os desenvolvedores utilizam os recursos fornecidos e provem servios para usurios finais. Esta organizao em papis ajuda a definir os atores e os seus diferentes interesses. Os atores podem assumir vrios papis ao mesmo tempo de acordo com os interesses, sendo que apenas o provedor fornece suporte a todos os modelos de servios (SOUZA, 2009).

Do ponto de vista de interao entre os trs modelos de servios, a IaaS fornece recursos computacionais, seja de hardware ou software, para a PaaS, que por sua vez fornece recursos, tecnologias e ferramentas para o desenvolvimento e execuo dos servios implementados, a serem disponibilizados na viso de SaaS (SOUZA, 2009).

Ento em ambientes de computao em nuvem pode-se ter trs modelos de servios. Estes modelos so importantes, pois eles definem um padro arquitetural para solues em computao em nuvem. A Figura 8 exibe estes modelos de servios (Armbrust et al. 2009) (SOUZA, 2009). 47

Figura 8. Modelos de Servios (SOUZA, 2009)

4.1 Infra-estrutura como Servio (IaaS)


O termo original foi criado em maro de 2006 pelo economista Nicholas Carr e chamava-se Hardware as a Service (HaaS), mas no final de 2006 comeou a ser chamado de pelas empresas como Infra-estrutura como Servio (IaaS) e hoje assim comumente denominado. A idia bsica que o usurio, em vez de adquirir e instalar servidores e equipamentos de rede em um datacenter poderia usar estes recursos a partir de um provedor externo. Mas, diferentemente dos modelos tradicionais de outsourcing, a computao em nuvem no reserva um determinado recurso ao contratante, e sim aloca de forma dinmica e automtica os seus recursos para atender aos requisitos de demanda do cliente (TAURION, 2009).

A capacidade prevista para o usurio a prestao de transformao, armazenamento, redes e outros recursos computacionais fundamentais que o usurio seja capaz de implantar e executar programas arbitrrios, que podem incluir sistemas operacionais e aplicativos. O usurio no administra ou controla a infra-estrutura de nuvem subjacente, mas tem controle sobre os sistemas operacionais, armazenamento, aplicativos implantados, e, eventualmente, o controle limitado de componentes de rede selecionar (por exemplo, firewalls host) (RUSCHEL, 2008).

48

A mais baixa das camadas a de infra-estrutura (IaaS), atravs dela que os prestadores de infra-estrutura disponibilizam os servios de rede e armazenamento da nuvem. Nesta camada temos os datacenters, clusters, desktops e outros recursos de hardware, podendo ter recursos heterogneos (RUSCHEL, 2008).

Portanto, se o usurio contrata uma soluo de IaaS, contrata uma infra-estrutura capaz de executar e hospedar seu software sobre o sistema operacional que o usurio escolher, instalar, administrar e gerenciar. Maior controle igual maior responsabilidade. (CAMBIUCCI, 2010).

A IaaS traz os servios oferecidos na camada de infra-estrutura, nestes servios podemos incluir servidores, roteadores, sistemas de armazenamento de dados, bancos de dados e outros recursos de computao. O IaaS traz algumas caractersticas, como uma interface nica para administrao da infra-estrutura, a aplicao API para interao com hosts, switches, roteadores e o suporte para a adicionar novos equipamentos de forma simples e transparente (RUSCHEL, 2008).

O termo IaaS refere-se a uma infra-estrutura computacional baseada em tcnicas de virtualizao de recursos de computao. Esta infra-estrutura pode escalar dinamicamente, aumentando ou diminuindo os recursos de acordo com as necessidades das aplicaes (SOUZA, 2009).

O modelo IaaS semelhante a Utility Computing, em que a idia bsica oferecer servios de computao. Ou seja, voc paga pela quantidade de poder de processamento, espao em disco, o que voc realmente consumir. IaaS tipicamente um servio associado com a computao em nuvem e se refere a servios online em que abstraido do usurio os detalhes da infra-estrutura, incluindo os recursos de computao fsica, localizao, particionamento de dados, escalonamento, segurana, backup, e assim por diante. Na computao em nuvem, o fornecedor do servio tem o controle completo da infra-estrutura. (PIGATTO, 2009)

O nvel de infra-estrutura de software fornece recursos fundamentais para camadas de nvel superior, permitindo a criao de novos ambientes de software ou novas aplicaes. De 49

acordo com Youseff (2008), este nvel pode ser organizado em: recursos computacionais, armazenamento de dados e comunicao. (PIGATTO, 2009)

a) Recursos computacionais: Neste nvel, mquinas virtuais (virtual machines) so a melhor maneira de oferecer recursos computacionais, j que oferecem ao usurio maior flexibilidade, uma vez que ele normalmente possui permisso total para o uso da mquina virtual, estando apto a personalizar o software e obter maior performance e eficincia. b) Armazenamento de Dados: O segundo recurso de infra-estrutura o armazenamento de dados, o qual permite ao usurio armazenar seus dados em discos remotos e acess-los a qualquer momento e de qualquer lugar. Este servio comumente conhecido como DaaS Data-Storage as a Service

(Aramazenamento de Dados como Servio). c) Comunicao: Uma vez que a necessidade de garantia de QoS Quality of Service (Qualidade de Servio) para uma rede de comunicao cresce ao tratar-se de um sistema em nuvem, a comunicao se torna um componente vital da infraestrutura em questo. Em consequncia disto, estes sistemas possuem a obrigao de fornecer certas capacidades de comunicao orientada a servio, configurveis, programveis, previsveis e confiveis.

4.2 Database-as-a-Service

Taurion (2009) diz que banco de dados so essenciais a qualquer negcio hoje em dia. No incomum vermos empresas com centenas ou milhares de diferentes bancos de dados, muitas deles crticos s operaes, suportados por diversos softwares de gerenciamento de banco de dados, os SGBD. Cada banco de dados colocado em operao significa um aumento nas tarefas de gesto, que envolvem integrao, segurana, disponibilidade e desempenho adequados. E conseqentemente maiores os custos. Fica claro que esta proliferao de banco de dados aumenta bastante a presso por meios mais eficazes de gerenciamento.

Diante deste contexto, nada mais natural que o conceito de computao em nuvem seja tambm uma alternativa problemtica do banco de dados. Surge ento o modelo Database50

as-a-Service (DaaS) provendo banco de dados por demanda. Com o DaaS uma empresa usa uma nuvem para armazenar e acessar informaes sem se preocupar com a infra-estrutura que vai suportar os banco de dados. Neste modelo o usurio paga pelo volume de dados armazenado e pela quantidade de dados transmitidos de e para nuvem. Os custos de infraestrutura e suporte ficam a cargo do provedor da nuvem que mantm o DaaS (TAURION, 2009).

Ainda, conforme Taurion (2009), o modelo DaaS pode ser implementado por trs arquiteturas bsicas. a) Modelo de Container Neste modelo o provedor fornece um container que representa uma coleo de entidades heterogneas, da mesma maneira que um banco de dados possui mltiplas tabelas. Os programas acessam essas entidades nos containers. Esse modelo se adapta bem a empresas de pequeno porte. Um exemplo desse modelo o servio SimpleDB oferecido pela Amazon.

b) Modelo de cpia compartilhada

Neste modelo uma mesma cpia do software de banco de dados residente na nuvem compartilhada por vrios clientes, embora cada um deles possua seu prprio espao de dados (tabelas). O compartilhamento do software de banco de dados e da infra-estrutura computacional.

c) Modelo de cpia exclusiva

Neste modelo cada cliente tem sua prpria cpia do software de banco de dados residente na nuvem. A diferena em relao ao modelo tradicional que os clientes compartilham a mesma infra-estrutura computacional.

J existem algumas ofertas interessantes de DaaS, mas a medida que o mercado amadurecer surgiro outras alternativas. Hoje existe algumas ofertas pioneiras como o SimpleDB da Amazon, o EnterpriseDB e MySQL, oferecidos em cima da nuvem Amazon. 51

Alm disso, empresas tradicionais de banco de dados como a Oracle, IBM e Microsoft j comearam a enderear este mercado (TAURION, 2009).

O Google tambm entra neste servio com a oferta BigTable, um componente do Google AppEngine. O BigTable um ambiente de banco de dados especializado, com aplicaes escritas em Python, que usa o prprio Google File System (GFS) como mtodo de armazenamento. Foi projetado para trabalhar com imensos volumes de dados, distribudos em vrios nodos GFS. Na prtica, utiliza o modelo container. No suporta o modelo relacional e voltado para massiva base de dados (TAURION, 2009).

4.3 Plataforma como Servio (PaaS)


A PaaS oferece uma infra-estrutura de alto nvel de integrao para implementar e testar aplicaes na nuvem. O usurio que assinante em uma plataforma hospedada remotamente, no administra ou controla a infra-estrutura subjacente, incluindo desenvolvimento de aplicativos, de interfaces e de banco de dados, armazenamento, teste e assim por diante, mas tem controle sobre as aplicaes implantadas e, possivelmente, as configuraes de aplicaes hospedadas nesta infra-estrutura. A PaaS fornece um sistema operacional, linguagens de programao e ambientes de desenvolvimento para as aplicaes, auxiliando a implementao de softwares, j que contm ferramentas de desenvolvimento e colaborao entre desenvolvedores (SOUZA, 2009).

Em geral, os desenvolvedores dispem de ambientes escalveis, mas eles tm que aceitar algumas restries sobre o tipo de software que se pode desenvolver. Do ponto de vista do negcio, a PaaS permitir aos usurios utilizarem servios de terceiros, aumentando o uso do modelo de suporte no qual os usurios se inscrevem para solicitaes de servios de TI ou de resolues de problemas pela web. Com isso, pode-se descentralizar uma carga de trabalho e responsabilidades nas equipes de TI das empresas (SOUZA, 2009).

A camada de plataforma como servio (PaaS) esta acima da camada de infra-estrutura e prov os servios para que as aplicaes possam ser desenvolvidas, implementadas, testadas e trazidas para o ambiente da nuvem pelos prestadores de servios. Nesta camada de desenvolvimento os usurios finais no tm acesso, sendo ela destinada aos usurios mais 52

experientes, ou seja, os desenvolvedores das solues para computao em nuvem (RUSCHEL, 2008).

De acordo com a proposta de Youseff (2008), neste segundo nvel se encontra o ambiente de software. Este nvel utilizado por desenvolvedores de aplicaes para as nuvens, que implementam e implantam suas aplicaes diretamente na nuvem. Os provedores destes servios nas nuvens oferecem aos desenvolvedores um conjunto definido de APIs, as quais facilitam a interao entre o ambiente e as aplicaes em nuvem, assim como o aumento da agilidade de implantao e o suporte escalabilidade necessrias para tais aplicaes. Um exemplo deste tipo de servio o Google App Engine, o qual oferece um ambiente de desenvolvimento nas linguagens de programao Python e Java e APIs que permitem aplicaes interagirem com a nuvem do Google (PIGATTO, 2009).

Os prestadores de servios que produzem um PaaS, por exemplo, podem construir essa plataforma considerando a integrao de um sistema operacional, de um mediador, de softwares de aplicao e de um ambiente de desenvolvimento. Os prestadores de servios que usaro essa plataforma vem-na como uma Interface de Programao de Aplicativos, ou API. Eles iro interagir com a plataforma atravs da API sem ter a preocupao de gerenciar e escalar os recursos, o que torna o processo de desenvolvimento de aplicaes mais rpido e simples. Por outro lado, esses prestadores de servios ficam limitados pelas capacidades que a plataforma pode oferecer (CHIRIGATI, 2009).

De acordo com Anthony T. Velte em seu livro Cloud Computing: A Practical Approach PaaS fornece todos os recursos necessrios para construir aplicaes e servios completos a partir da internet, sem precisar baixar ou instalar software. A arquitetura PaaS oferece servios que incluem design, desenvolvimento, testes, implantao e hospedagem. Outros servios oferecidos a colaborao em equipe, integrao de servios web, banco de dados integrados, segurana, escalabilidade, gerenciamento de estado, armazenamento e controle de verso (VELTE, 2009).

Uma falha de PaaS a falta de interoperabilidade e portabilidade entre os provedores. Isto , se voc criar um aplicativo com um fornecedor de cloud e decidir ir para outro provedor, voc pode no ser capaz de fazer isso ou voc vai ter que pagar um preo elevado. 53

Alm disso, se o provedor sai do negcio, suas aplicaes e seus dados sero perdidos. (VELTE, 2009).

4.4 Software como Servio (SaaS)


Em sua essncia o SaaS, trata-se de uma forma de trabalho onde o software oferecido como servio, assim, o usurio no precisa adquirir licenas de uso para instalao ou at mesmo comprar computadores ou servidores para execut-lo. Nessa modalidade, pagase um valor peridico, somente pelos recursos utilizados e/ou pelo tempo de uso (PRADO, 2010).

O modelo SaaS um modelo que entrega software como um servio, de forma diferente do modelo tradicional, no qual a empresa adquire uma licena de uso e instala o software nos seus prprios servidores. Este modelo transforma a maneira como o software ir ser comercializado. Com o SaaS, tambm no so mais necessrios os contratos de manuteno, pois essas atividades ficam a cargo do provedor e no mais da empresa. O usurio passa apenas a usar o software, sem preocupar-se com as atividades de instalao, manuteno e upgrades (TAURION, 2009).

Enquanto o SaaS transfere a responsabilidade da implementao e manuteno do software para o provedor e libera recursos para outros projetos, a TI fica nas mos do fornecedor em questo de disponibilidade, segurana e outros pontos-chave (BIDDICK, 2010).

A idia que o usurio deixe de utilizar o software de caixinha ou sob encomenda e passe a comprar software de acordo com suas necessidades. Por exemplo: Uma empresa de dez pessoas no lugar de encomendar um software pode pagar uma taxa mensal para usar um software com a quantidade de usurios que ela precisa. Essas mensalidades so relativamente baixas e se encaixam melhor na realidade de pequenas e mdias empresas (GONALVES, 2008).

Como o software est na web, ele pode ser acessado pelos usurios de qualquer lugar e a qualquer momento, permitindo mais integrao entre unidades de uma mesma empresa ou 54

outros servios de software. Assim, novos recursos podem ser incorporados automaticamente aos softwares sem que os usurios percebam estas aes, tornando a evoluo e atualizao transparente dos sistemas. O SaaS reduz os custos, pois dispensada a aquisio de licena de software, porm cobrada uma taxa mensal baseada no numero de funcionrios que acessam o servio (SOUZA, 2009).

Um SaaS disponibilizado por prestadores de servios na camada de aplicao. Ele roda inteiramente na nuvem e pode ser considerado uma alternativa a rodar um programa em uma mquina local. Softwares de aplicao, como processadores de texto e sistemas de banco de dados, so exemplos de SaaS (CHIRIGATI, 2009). A InformationWeek fez uma pesquisa, na qual trs quartos das empresas que usam o SaaS consideram os servios do aplicativo muito importantes ou at essenciais, sendo que a pesquisa foi realizada com duzentos e oitenta e um profissionais de tecnologia de negcio, incluindo cento e trita e um que usam o SaaS. Cerca de um tero descreveu seu aplicativo de SaaS como crtico ao negcio. Apesar da importncia, muitos lderes ainda tratam SaaS como ad hoc. Dentre os usurios, 59% dizem que um ponto de soluo ttica e apenas 32% o consideram parte das estratgias a longo prazo (BIDDICK, 2010).

A razo primeiramente citada, para 37% dos usurios do modelo a rapidez na implementao. Conforme as empresas saem da recesso, com alta demanda de novas habilidades e, geralmente, com equipes de TI reduzidas, esse fator torna-se mais importante. A velocidade seguida pela economia nos gastos, citada por 25% dos adeptos. SaaS no universal, mas entre os 47% dos entrevistados que o usam, SaaS vai alm de automao na fora das vendas. Aplicativos de RH, presena web, e-mail, servio de suporte, colaborao, financeiro e backup so usados por um quarto ou mais dos consumidores de software como servio (BIDDICK, 2010).

Outro benefcio, que torna-se poderoso com o tempo, a demanda dos funcionrios por mobilidade. SaaS fora a TI a criar aplicativos acessveis mais seguros fora do ambiente corporativo, seja para uso em home Office, na estrada, via smartphone ou em computador pessoal (BIDDICK, 2010).

55

Ao mesmo tempo, contratar uma soluo SaaS exige o menor envolvimento sobre desenvolvimento, gerenciamento ou administrao da soluo. Porm, o usurio ir depender do software e funcionalidades oferecidas pela soluo SaaS, o que deve oferecer um impacto em caso de mudana do provedor contratado. Por exemplo, contratar uma soluo SaaS CRM da SalesForce.com diferente de contratar uma soluo SaaS CRM da Microsoft, via o Dynamic CRM OnLine. Tem que ter cuidado e reconhecer o tipo de servio de nuvem que est sendo contratando. Reconhecer quais funcionalidades so nicas de cada provedor importante e deve esclarecer seu grau de dependncia com a soluo contratada (CAMBIUCCI, 2010).

56

5. Anlise de Casos: Provedores de Servios de Computao em Nuvem


Vamos detalhar um pouco mais as estratgias e ofertas de alguns dos principais provedores de computao em nuvem. Na verdade, com o imenso potencial do mercado de tecnologias e servios em nuvem, a maioria das empresas de TI est se mobilizando para criar ofertas para computao em nuvem. Ento os provedores selecionados vo estar listados em ordem alfabtica, para evitar qualquer valor subjetivo de sua importncia no mercado.

5.1 Amazon Web Services

Um exemplo j bem conhecido de nuvem so servios da Amazon. A Amazon criou uma subsidiria chamada Amazon Web Service (http://aws.amazon.com/) para ofertar servios em computao em nuvem. Basicamente so quatro ofertas, o EC2 (Elastic Computing Cloud), para alugar mquinas virtuais Linux, nos quais o usurio pode alugar dezenas ou at milhares de CPUs, o S3, servio de armazenamento (storage) em nuvem, o SimpleDB, oferta de Database-as-a-Service e o SQS (Simple Queue Service) para servios de mensagens. A idia que os usrios possam operar seu negcio sem ter a necessidadede investir em infraestrutura, como servidores storage. E a plataforma computacional oferecida a prpria plataforma que roda os aplicativos da Amazon, uma infraestrutura de tecnologia que incluiu milhares de servidores e que levou anos para ser construda e ajustada (TAURION, 2009).

Amazon Web Services (AWS) fornece infra-estrutura como servio (IaaS) como ofertas na nuvem, para as organizaes que exigem poder de processamento, armazenamento e outros servios. Sendo que, a Amazon foi uma das pioneiras em oferecer servios na nuvem para o pblico, lanou seus primeiros servios, os S3 e EC2, em 2006. AWS oferece uma srie de servios, incluindo as seguintes (MATHER, 2009):

5.1.1 Elastic Compute Cloud (EC2)


Para comear a trabalhar com a EC2, necessrio o usurio, de posse de uma conta na Amazon, criar uma Amazon Machine Instance (AMI). Uma AMI uma imagem de mquina 57

(como uma ISO), contendo aplicaes e bibliotecas de programas e componentes. H muitas AMIs comuns disponveis a partir da Amazon e da comunidade EC2. Elas podem usar tanto Windows quanto Linux, e os mais diversos conjuntos de software livre, como o Apache, MySQL e quaisquer linguagens que escolha usar. Caso no encontre uma AMI que atenda suas necessidades, a Amazon fornece ferramentas para criar sua prpria AMI, que pode ser privada ou compartilhada com a comunidade. O fato que uma pequena empresa pode comear a operar aplicaes em poucos minutos, configurando seu ambiente virtual de forma bem rpida e simplificada. Contrasta vivamente com o modelo tradicional, no qual necessrio adquirir um servidor, instal-lo em algum local adequado, configur-lo e mant-lo continuamente atualizado com as ltimas verses de software bsico (TAURION, 2009).

O EC2, fornece um IaaS em que h cobrana pelo uso. O preo inicial, com base em aspectos como o sistema operacional usado, RAM e espao em disco partilhado em cada AMI , de US$ 0,10 por hora. Ele prov um ambiente virtual que permite o desenvolvimento e a execuo de aplicaes baseadas em Linux. Para isso, os prestadores de servios devem criar sua prpria mquina virtual, conhecida como AMI que contm todas as aplicaes, os dados e as bibliotecas necessrias. Alternativamente, os prestadores de servios tambm podem usar AMIs que j esto prontas e disponveis (CHIRIGATI, 2009).

A vantagem da flexibilidade da EC2 que pode-se escolher entre diversas distros do Linux e tambm pode-se utilizar diferentes verses do Windows como operacional para AMIs. Qualquer linguagem de programao pode rodar: Java , PHP, Python, Ruby, etc. (TAURION, 2009).

O servio EC2 permite rodar aplicaes no ambiente de nuvem da Amazon. Os servidores virtuais do EC2 so mquinas virtuais Linux que rodam em cima da plataforma de virtualizao Xen. Recentemente, a Amazon tambm permitiu que as mquinas virtuais sejam imagens do OpenSolaris, mas a maioria continua sendo Linux. Essas mquinas virtuais podem ser servidores de 32 ou 64 bits, baseados em equivalentes a processadores de 1.7 GHz, Opteron ou Xenon.

As instncias das mquinas virtuias podem variar da mais simples, uma mquina de 32 bits, com 1,7 GB de memria, uma unidade de computao EC2, (160 GB de armazenamento 58

e um moderado desempenho de I/O) at uma mquina extra-large de 64 bits, memria de 7 GB, 20 unidades de computao EC2 (8 virtual cores, cada um com 2,5 unidades de computao EC2), 1.690 GB de armazenamento e alto desempenho de I/O (SOUZA, 2009).

A Amazon consegue cobrar preos baixos porque estes refletem diretamente os custos do imenso parque computacional que a empresa possui. Porm, importante lembrar que estes preos incluem a tranferncia de dados e no apenas o seu armazenamento. Assim, aplicaes intensivas em I/O podem ter seus custos bem mais elevados, pois muitas vezes o usurio olha apenas o custo de armazenamento e minimiza os custos de I/O, sendo que, a Amazon no cobra as transferncias de dados entre os servios de S3 e EC2.

A Elastic Compute Cloud (EC2) a principal oferta da AWS e foi uma das primeiras plataformas de computao em nuvem e ainda uma das mais populares. Ela baseada em instncias que so servidores virtuais dedicados prontos para ser customizado e se ajustar a suas necessidades (GOMES, 2010).

De acordo com MILLER (2009), a Amazon permite que seus clientes escolher trs tamanhos de servidores virtuais:

Small, que oferece o equivalente a um sistema com 1,7 GB de memria, 160 GB de armazenamento e um processador de ncleo virtual de 32 bits; Grande, que oferece o equivalente a um sistema com 7,5 GB de memria, 850 GB de armazenamento e dois ncleos virtuais de processamento com 64 bits;

Extra grandes, que oferece o equivalente a um sistema com 15 GB de memria, 1,7 TB de armazenamento e quatro ncleos virtuais de 64 bits.

O EC2 fornece um ambiente altamente confivel, visto que a substituio de instncias pode ser realizada de forma rpida, garantindo o QoS.

59

5.1.2 Simple Storage Solution (S3)

O S3 um sistema de armazenamento pela internet que pode ser usado para armazenar e recuperar ilimitado quantidades de dados, a qualquer hora, de qualquer lugar na internet. Diferentemente do SimpleDB que um banco de dados, o S3 um sistema de arquivos distribudo, utilizado para recuperar e armazenar dados. O S3 fornece um repositrio seguro, confivel e rpido para armazenar as imagens AMI. E ainda armazena e recupera os resultados intermedirios durante a execuo das tarefas de processamento. Durante a execuo, cada tarefa busca o arquivo no S3 e faz o devido processamento. As solues EC2 armazenam arquivos como objetos no S3 e todos os metadados relacionados ao objeto no SimpleDB (SOUZA, 2009).

Geralmente, quando se fala em storage, pensa-se em armazenamento diretamente ligado aos servidores, para evitar demoras (latncias) causadas pelas distncias e meios de comunicao. O S3 muda este conceito ao ofertar um servio de armazenamento remoto, em nuvem. O usurio armazena seus arquivos nos discos da Amazon e os seus servidores acessam estes dispositivos para obter os dados. Em quais discos e onde eles esto fisicamente localizados transparente aplicao do usurio (TAURION, 2009).

O S3 uma oferta de storage on demand porque o usurio paga apenas pela quantidade de dados armazenada, sem a necessidade de reservar espao adicional, prevendo, por exemplo, aumento futuro. Se a demanda por espao aumentar, o sistema automaticamente aumenta o espao disponvel. Se diminuir, o sistema diminui o espao alocado. O preo sempre baseado no uso real do espao em disco e inclui basicamente trs variveis: bytes tranferidos para a nuvem, bytes transferidos da nuvem e gigabytes armazenados. Em novembro de 2008 os preos praticados para os EUA e Europa eram de 12 a 15 centavos de dlar para GB armazenado e 10 centavos por GB lido (TAURION, 2009).

Os dados transferidos dentro de uma Amazon S3 local atravs de uma solicitao de cpia gratuita. Dados transferido atravs de uma solicitao de cpia entre os locais cobrada em preos regulares. Os dados transferidos entre a Amazon EC2 e Amazon S3 dentro da mesma regio gratuito (ou seja, 0,00 dlares por GB). Os dados transferidos entre a Amazon EC2 e Amazon S3 entre regies (ou seja, entre os EUA e a UE), ser cobrada na 60

internet taxas de transferncia de dados em ambos os lados da transferncia. Armazenamento e tamanho de banda inclui todas as despesas gerais do arquivo.

(Source: http://aws.amazon.com/s3/#pricing.) (CHEE, 2010).

5.1.3 Simple Queue Service (SQS)


Amazon Simple Queue Service (SQS) oferece um servio de fila de distribuio de mensagens que suporta o envio de mensagens programadas atravs de aplicaes de Web Services como uma forma de comunicao atravs da internet. Os desenvolvedores podem mover dados entre distribudos componentes de seus aplicativos que executam tarefas diferentes, sem perda de mensagens ou exigindo que cada componente deve estar sempre disponvel. SQS permite um fluxo de trabalho automatizado a ser criado e trabalha em estreita colaborao com Amazon EC2 e outros Amazon Web Services. SQS expe infra-estrutura web de mensagens como um servio na internet. Como tal, qualquer computador na internet pode adicionar ou ler mensagens sem nenhum software especial instalado, firewall ou configuraes especiais. Os componentes da SQS podem ser executados de forma

independente, e no precisam estar na mesma rede (VELTE, 2010).

O Amazon SQS fornece confiabilidade e escalabilidade ao enfileirar e armazenar mensagens que esto sendo trocadas entre os recursos computacionais. Os desenvolvedores podem, de maneira simples, mover dados entre os recursos distribudos das aplicaes entre diferentes domnios com garantia de entrega (SOUZA, 2009).

SQS fornece uma maneira para servios baseados na web para trocar informaes de uma maneira segura. constituda por trs componentes principais:

1.

Autenticao dos servio conseguido atravs do uso de editamentos s credenciais AWS padro. Atravs de um processo de registro, o desenvolvedor cria um conjunto apropriado de credenciais para que os processos possam atingir um modo seguro;

2.

A entrega de mensagens vlida at 8 KB. O que se destaca que a seqncia no garantida, e se for necessrio, ento, os nmeros devem possuir algum tipo de seqncia que deve ser incorporado na mensagem; 61

3.

Mensagem deletadas do sistema devem ser tratadas atravs da aplicao do programador, mas existem temporizadores para a excluso automtica.

5.1.4 SimpleDB
Outro servio interessante o SimpleDB (SDB), um framework que permite aos usurios armazenar e recuperar informaes baseadas na oferta de Web Services da prpria Amazon. Com o SDB o usurio pode, em tese, construir todo ou grande parte do seu portflio de aplicaes no ambiente da Amazon. O SDB no a soluo para todo e qualquer problema de negcio, devido s suas restries de desempenho e escalabilidade, mas serve muito bem para aplicaes simples (TAURION, 2009).

SDB um servio web que fornece as funes de banco central de dados e indexao de consulta. Este servio funciona de forma integrada com o S3 e o EC2, coletivamente, a capacidade de armazenar e processar, define consulta de dados na nuvem, tornando a computao na escala da web mais fcil e mais rentvel para os desenvolvedores. Um exemplo simples desta integrao pode ser uma aplicao de compartilhamento de fotos e vdeos pela web, no qual a aplicao executada no EC2, as fotos e vdeos em si ficam armazenados no S3 e os comentrios e opinies dos usurios do site ficam no SDB (MATHER, 2009).

O servio tem limitaes de recursos (por exemplo, no suporta a linguagem SQL) e seus custos so tambm baseados no modelo usou pagou (TAURION, 2009).

O SDB um servio web que fornece as funcionalidades de um banco de dados como armazemanento, indexao e consultas em ambientes de nuvem. A arquitetura do SDB utilizada para o armazenamento e recuperao dos estados do sistema. A vantagem dessa abordagem que em caso de falhas, um novo n pode ser iniciado quase que imediatamente baseada nas mensagens contidas na fila do Amazon SQS e seu estado pelo SDB (SOUZA, 2009).

62

5.2 Eucalyptus

A Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) um exemplo de software livre que implementa um IaaS. Foi iniciado como um projeto de pesquisa do Departamento de Cincia da Computao de University of California Santa Brbara e comercializado recentemente como Eucalyptus Systems Inc. Eucalyptus ainda mantido e desenvolvido como um projeto de software livre. Eucalyptus Systems est criando produtos adicionais com base no Eucalyptus de software livre e oferece tambm servios de suporte (SOUZA, 2009).

O projeto Eucalyptus (Liu et al. 2007) uma infra-estrutura de cdigo aberto que fornece uma interface compatvel com o Amazon EC2, S3, EBS (Elastic Block Store) e permite aos usurios criarem uma infra-estrutura e experimentar a computao em nuvem. A arquitetura do Eucalyptus simples, flexvel e modular e contm uma concepo hierrquica que reflete os recursos comuns do ambiente (SOUZA, 2009).

O Eucalyptus tem como objetivo auxiliar a pesquisa e o desenvolvimento de tecnologias para computao em nuvem e o possui as seguintes caractersticas: interface compatvel com o EC2, instalao e implantao simples usando ferramentas de gerenciamento de clusters, apresenta um conjunto de polticas de alocao extensvel de nuvem, sobreposio de funcionalidade que no requer nenhuma modificao em ambiente Linux, ferramentas para administrar e auxiliar a gesto do sistema e dos usurios e capacidade de configurar vrios clusters, cada um com endereo privado de rede interna em uma nica nuvem (SOUZA, 2009).

Esse sistema permite aos usurios iniciar, controlar o acesso e gerenciar todas as mquinas virtuais utilizando uma emulao do protocolo SOAP (Simple Object Access Protocol) do Amazon EC2 e interfaces de consulta. Neste sentido, os usurios interagem com o Eucalyptus utilizando as ferramentas e interfaces exatamente do mesmo modo que eles interagiriam com o Amazon EC2 (SOUZA, 2009).

O Eucalyptus implementa o conceito de IaaS (infrastructure-as-a-Service), implementando nuvens privadas. Tambm, por ser um ambiente compatvel com o EC2 da 63

Amazon, permite que as nuvens privadas criadas por ele, interajam com a nuvem publica da Amazon, pois usa a mesma interface de programao. A NASA tem um projeto de computao em nuvem baseado no Eucalyptus, que o NEBULA. Este projeto pode ser observado em http://nebula.nasa.gov/ (TAURION, 2010).

O projeto NEBULA foi iniciado em 2007 pela NASA, que fornece grande capacidade de processamento e armazenamento, alm de conectividade, para a prpria NASA e outros rgos governamentais americanos (ORTEGA, 2010).

Assim como outras empresas (Google, Microsoft e Sun, entre outras) que fornecem computao na nuvem, a NASA montou sua estrutura dentro de containers (ORTEGA, 2010).

Utilizar containers tem sido uma tendncia e segundo especialistas permite agilidade na expanso do datacenter e tambm controle eficiente no uso de energia, j que mais fcil controlar a temperatura (ORTEGA, 2010).

Recentemente o Eucalytpus foi incorporado iniciativa de Cloud Computing Open Source do Ubuntu, que uma bem conhecida distribuio Linux. A base desta iniciativa, o Ubuntu Enterprise Cloud (UEC), o Eucalyptus (http://www.ubuntu.com/cloud). O Eucalyptus pode tambm ser instalado em outros ambientes Linux, como os das distribuies RedHat e Debian (TAURION, 2010).

5.3 Google
O modelo de Computao em Nuvem ganhou espao na mdia pelos exemplos pioneiros de empresas como o Google. Uma nuvem computacional que todos ns usamos, embora muitas vezes passe despercebida, o conhecido mecanismo de busca Google. Uma simples query no Google demanda o acesso a milhares de megabytes e consome dezenas de bilhes de ciclos de processador. Na verdade, o Google mantm em seus datacenters uma cpia de grande frao da internet, cpia esta continuamente atualizada atravs de softwares spiders que percorrem a rede, link por link, procurando o contedo das suas bilhes de pginas. Construir uma infra-estrutura computacional que permita milhares de queries por segundo, e completar o processo em poucos segundos, nos moldes tradicionais, requereria 64

inmeros supercomputadores de centenas de milhes de dlares cada. Ento o Google resolveu o problema, a um custo bem menor, agrupando centenas de milhares de servidores Intel/Linux em seus datacenters espalhados pelo mundo (TAURION, 2009).

A aplicao Google por natureza altamente paralelizvel, permitindo plena explorao do conceito de nuvem. Diferentes consultas rodam em diferentes processadores e o ndice particionado de modo que uma nica query possa tambm usar mltiplos processadores em paralelo (TAURION, 2009).

O resultado que o Google consegue operar pesquisas rpidas, com uma infraestrutura de TI baseada em milhes de servidores comoditizados, reduzindo sensivelmente os custos quando comparado ao que seria necessrio para adquirir um supercomputador que oferecesse a mesma capacidade computacional.

Embora primeira vista poucas aplicaes sejam similares ao Google em termos de paralelismo, existem inmeras outras aplicaes que permitem explorar o paralelismo com bastante eficincia. O prprio Google comeou a expandir o uso das suas nuvens para acomodar outros servios como o YouTube, o Google Maps, o Google Apps entre outros, mas recentemente criou o Google AppEngine (http://code.google.com/intl/pt-BR/appengine), plataforma para desenvolvimento de aplicaes que rodaro na nuvem do Google (TAURION, 2009).

5.3.1 Google Apps


Um exemplo muito conhecido da arquitetura SaaS o Google Apps. Google Apps a forma de computao em nuvem do Google voltada para empresas. So servios baseados na Web, que no usam hardwares ou softwares, e exigem o mnimo de manuteno, o que gera uma grande economia de tempo e custos. A empresa pode usar domnio prprio em diversos aplicativos disponibilizados pelo Google. Uma soluo acessvel, que permite o compartilhamento de informaes importantes entre os usurios.

O Google Apps um conjunto de aplicaes da Google que so fornecidas aos usurios na forma de SaaS, como est exibida na Figura 9. Entre essas aplicaes, podemos 65

encontrar um servio de correio eletrnico (Gmail), um programa de mensagens instantneas (Google Talk), um editor de textos, planilhas e apresentaes (Google Docs), um gerenciamento de agendas on-line e compartilhadas (Google Calender) e compartilhamento de vdeos privados (Google Vdeos) (CHIRIGATI, 2009).

Figura 9. Aplicativos de Trabalho no Google Apps (LUIZ, 2010)

A edio padro gratuita e oferece a mesma capacidade de armazenamento que as contas normais de Google. A edio premier, que oferece 25 GB de armazenamento, tem um valor de 50 dlares anuais por conta de usurio. A edio Educao oferece um conjunto gratuito e sem anncios de ferramentas personalizveis permitem que professores, funcionrios e estudantes trabalhem em grupo e aprendam de forma mais eficiente.

Podemos citar como exemplo aqui no Brasil, o Google Apps passou a ser o pacote de aplicativos de escritrio de mais de 3.500 funcionrios das lojas Renner. A Renner, rede de 120 lojas espalhadas pelo Brasil, decidiu adotar o Google Apps em busca de flexibilidade.

5.3.2 Google App Engine


Desta forma, o Google App Engine tornou-se uma das ferramentas mais conhecida na arquitetura PaaS. Ele fornece um conjunto de APIs e um modelo de aplicao que permite aos desenvolvedores utilizarem servios adicionais fornecidos pelo Google, como o e-mail, armazenamento, entre outros. Os servios disponibilizados proporcionam um ambiente seguro e eficaz para aplicaes que apresentam grandes demandas, fornecendo solues para

66

empresas e desenvolvedores que necessitam superar os desafios de escalabilidade em seus projetos (SOUZA, 2009). O armazenamento de dados no Google App Engine no um banco de dados relacional. O servio de armazenamento de dados do Google App Engine baseado no BigTable, um sistema distribudo de armazenamento de dados em larga escala. O BigTable funciona como um banco de dados orientado a colunas e utiliza o GFS (Google File System) para gerenciar informaes. Uma restrio nesta base de dados que para acessar estes dados, o AppEngine oferece uma linguagem especfica, chamada GQL, que, apesar de ser baseada no SQL, no suporta o modelo relacional e portanto no permite comandos como join. O acesso limitado a apenas uma tabela. (TAURION, 2009).

Por enquanto Bigtable uma ferramenta robusta, os desenvolvedores tm sido cautelosos quanto ao seu uso. Porque um sistema proprietrio, eles ficam presos em Google. Esse tambm o caso da Amazon Web Services e outros provedores de computao em nuvem.

As aplicaes desenvolvidas para o App Engine sero executadas no Google, que realiza, caso necessrio, o dimensionamento automaticamente. Atualmente, o suporte de linguagens de programao no App Engine so Python e Java. O Google App Engine pode ser iniciado gratuitamente. Todos os aplicativos podem usar at 500 MB de armazenamento e CPU e largura de banda suficiente para suportar um aplicativo eficiente que oferece cerca de cinco milhes de visualizaes de pgina por ms, totalmente grtis. Ao ativar o faturamento para o aplicativo, os limites gratuitos aumentam e o usurio paga somente pelos recursos que ultrapassam os nveis gratuitos (SOUZA, 2009).

Ento, o AppEngine oferecido, gratuitamente, para cada desenvolvedor 500 MB de memria, 200 megaciclos de CPU e 10 GB de transferncia de dados, aps isso so cobradas as seguintes taxas:

$ 0.10-$ 0.12 ncleo do processador por horas $ 0.15-$ 0.18 GB de armazenamento por ms $ 0.11-$ 0.13 por GB de banda de sada $ 0.09-$ 0.11 por GB de largura de banda de entrada 67

5.4 IBM

A IBM entrou no setor de computao em nuvem em novembro de 2007 com uma oferta chamada Blue Cloud. Esta oferta um conjunto de tecnologias, algumas proprietrias como o Tivoli Provisioning Maneger e outras open source como o Xen e o Hadoop (verso open source do ambiente de computao paralela do Google, o MapReduce), que permitem uma a organizao contruir sua prpria infra-estrutura de nuvem. Com esta infra-estrutura, a empresa pode utilizar o conceito de computao em nuvem para uso interno ou para prover servios para clientes externos (TAURION, 2009).

Detalhando um pouco mais a arquitetura do Blue Cloud, observamos algumas tecnologias que so fundamentais a um ambiente de nuvem. Uma delas a funcionalidade de provisionamento automtico. Uma funo bsica de qualquer nuvem a capacidade de automaticamente provisionar servidores para atender demanda. No Blue Cloud, atrves de um portal web, o usurio especifica que plataforma de hardware vai necessitar, selecioando tipo de processador, capacidade de memria e armazenamento, sistema operacional e assim por diante. Outra funo a monitorao dinmica dos recursos computacionais. A nuvem precisa ser monitorada continuamente e em tempo real, para ajuste e balanceamento da carga. A Bue Cloud adota o Hadoop, uma plataforma de computao paralela de alto desempenho. (TAURION, 2009).

O Hadoop um software open source gerenciado pela comunidade Apache, projetada para distribuir e processar tarefas em computao distribuda e paralela. Os programas que operam no Hadoop so escritos em um estilo de programao prprio, chamado de estilo Map/Reduce (desenvolvido pelo Google) no qual a tarefa dividida em centenas ou milhares de pequenos pedaos que so processados independentemente, em centenas ou milhares de computadores reais ou virtuais, de acordo com um mapa execuo. Os resultados gerados por estes processos independentes so agrupados e sintetizados (reduzidos) para produzir o resultado final em uma frao de tempo (TAURION, 2009).

68

O Blue Cloud usa os servidores IBM BladeCenter, um sistema operacional Linux, virtualizao baseada em Xen e o software de gerenciamento Tivoli da IBM. Em sntese, o Blue Cloud uma srie de ofertas de computao em nuvem baseadas em padres abertos e software livre que ajudam as corporaes a fornecerem recursos Web 2.0, como mashups, colaborao aberta, redes de relacionamentos e comrcio remoto (SLACK, 2009).

H dois benefcios chave do IBM Blue Cloud, de acordo com Cezar Taurion. Primeiro, o uso de Tivoli na nuvem ajuda as corporaes a reduzirem custos e economizar energia. Por exemplo, reduz as etapas manuais envolvidas em gerenciamento de dados e aumenta a automao do centro de dados. Fornecendo dinamicamente e alocando recursos para melhor gerenciar flutuaes de carga de trabalho, os recursos de TI so executados em nveis mais consistentes. E Tivoli tem a capacidade de gerenciar o consumo de energia alternando servidores para o modo de espera quando no esto em uso e restaurando-os instantaneamente quando necessrio.

Segundo, em vez de parar na idia geral de "rede das redes", o Blue Cloud oferece um desvio: permite que a arquitetura de seus servios de TI imite configuraes bsicas de provedores de servio. Portanto, obtm-se a capacidade de integrar seus servios internos queles de seus parceiros, clientes, fornecedores e provedores (SLACK, 2009).

5.5 Microsoft

Uma ferramenta bem conhecida do PaaS o Microsoft Azure a qual se trata de uma plataforma para a implementao de computao em nuvem que oferece um conjunto especfico de servios para desenvolvedores. Esta plataforma pode ser usada por aplicaes em execuo em nuvem ou fora desta. A plataforma Azure formada pelo sistema operacional Windows Azure e um conjunto de servios: Live Services, .NET Services, SQL Services, SharePoint Services e Dynamics CRM Services (SOUZA, 2009).

A Microsoft iniciou suas ofertas para o modelo de computao em nuvem com o Live e com o Online Services, voltados principalmente para usurios finais e pequenas empresas. Posteriormente, no final de 2008, lanou o Windows Azure e um conjunto de servios de 69

PaaS, chamada Azure Services Platform. A proposta da Azure oferecer uma plataforma e servios hospedados nos seus datacenters. O Azure no uma adaptao da tecnologia .NET, mas uma plataforma nova (TAURION, 2009).

O Azure Services Plataform uma estratgia e um conjunto de produtos que se prope a implementar a viso de nuvem da Microsoft, baseada no conceito de software-plusservices(TAURION, 2009):

Ser uma nova gerao do ambiente Windows para ambiente de computao em nuvem. A funo bsica do Azure automaticamente ligar a aplicao do usurio a mquinas virtuais operando nos datacenters da Microsoft. Na

verdade o Windows Azure essencialmente uma verso modificada do Windows 2008 e do mecanismo de virtualizao chamado Hyper-V, suplementada com software projetado para hospedar e gerenciar aplicaes e servios em nuvem; Fornecer servios orientados aos desenvolvedores, como SQL Services, .Net Services, Live Services, cada um contendo um pequeno nmero de funes, a ser expandido ao longo do tempo. Alm destes servios esto includos o Share Point Services e Dynamic CRM Services. O Share Point Services oferece APIs para funcionalidades do Share Point como sites de colaborao e workflows. O Dynamic CRM Services oferece APIs para interface com as funes do aplicativo Dynamics CRM. Ser um novo modelo de programao. Para a aplicao extrair todos os benefcios do Azure, deve ser desenvolvida com este conceito desde o incio.

70

Figura 10. Servios oferecidos no Windows Azure (ZUNINO, 2008)

Como podemos observar na Figura 10, a plataforma de servio no Azure formada por camadas, dentre elas a camada de nvel mais baixo o windows azure que um sistema operacional distribudo, no nvel mais acima existe um conjunto de servios como Live services, .NET Services, SQL Services e assim por diante, que so servios disponibilizados para que o usurio use ou dentro do windows azure ou em uma aplicao externa. E por fim disponibiliza um conjunto de servios para o usurio final como Windows live, Office Live, Exchange Online, onde o usurio j utiliza suas capacidades de uso para tarefas do dia-a-dia (COELHO, 2008).

Ento, na nuvem temos que abstrair centenas ou ate milhares de servidores que so disponibilizados para que o usurio execute a sua aplicao. Dentro do Windows Azure existem maneiras de abstrao, onde o usurio vai ter o seu servio sendo gerenciado, vai ver sua computao sendo virtualizada e vai possuir um conjunto de mecanismos como blobs, Tables, Queues, Locks etc.. esto la disponibilizados como primitivas, para que o usurio desenvolva seu programa sem ter que saber aonde esta rodando em que hardware que esta rodando. Portanto o Windows Azure um sistema operacional para a nuvem que roda em um conjunto grande de computadores de forma organizada e que abstrai do usuario todo esse hardware e toda esta infraestrutura (COELHO, 2008).

Uma mquina virtual (VM) executa uma funo de imagem do disco rgido virtual um VHD. Este VHD criado usando uma mquina no local do Windows Server, em seguida, enviados para o Windows Azure. Uma vez que armazenada na nuvem, o VHD pode ser 71

carregado sob demanda em uma funo na VM e executado. Os clientes podem configurar, manter o sistema operacional e usar o Windows Services, etc tarefas agendadas no papel VM.

Os desenvolvedores tm a capacidade de escolher o tamanho das VMs para executar a sua aplicao com base nos requisitos da aplicao de recursos. O Windows Azure calcula casos e possui cinco tamanhos originais para permitir aplicaes complexas e cargas de trabalho. Introduziram o Extra Windows Small para tornar o Windows Azure mais acessvel para os desenvolvedores interessados em executar aplicativos menores na plataforma, como podemos observar na Figura 11.

Figura 11. Tamanhos das instncias no Windows Azure (CAMBIUCCI, 2010)

O Live Services um conjunto de componentes dentro do Azure para o tratamento de dados do usurio e recursos da aplicao. Live Services possibilita aos desenvolvedores construrem aplicaes ricas que podem conectar com usurios do Windows Live. O Live Services inclui as tecnologias do Live Mesh para sincronizao de dados dos usurios e possibilita a extenso de aplicaes Web entre mltiplos dispositivos (SOUZA, 2009).

A Microsoft .NET Services um conjunto da Microsoft que hospeda servios de desenvolvimento orientado para fornecer os componentes exigidos por muitas aplicaes baseadas na nuvem. .NET Services semelhante ao .NET Framework, oferecendo bibliotecas de classes de alto nvel que tornam o desenvolvimento muito mais robusto. .NET Services pode ajudar os desenvolvedores a se concentrar mais em seu produto final do que na construo e implantao de infra-estrutura prpria nuvem. .NET Services tambm est disponvel para outras tecnologias de desenvolvimento atravs do uso de protocolos padro da indstria, como REST, SOAP e HTTP (VELTE, 2010).

72

O SQL Services um servio de armazenamento de dados e de processamento de consultas escalvel, sendo construdo com base na tecnologia do SQL Server. O SQL Services possui suporte a interfaces SOAP e REST (Representational state transfer), permitindo que seus dados sejam acessados de vrias formas. Para garantir a escalabilidade, o SQL Services implementa apenas partes do modelo relacional e no possui suporte completo para a linguagem SQL. O componente SharePoint Services permite colaborar e criar aplicaes Intranet e o Dynamics CRM Services um sistema totalmente integrado de CRM (SOUZA, 2009).

O SQL Services amplia as capacidades de armazenamento para a nuvem, como servios baseados na web. Isso permite o armazenamento de dados estruturado, semiestruturadas e dados no estruturados. SQL Services oferece um conjunto de servios integrados que permitem consultas relacionais, pesquisa, elaborao de relatrios, anlises, integrao e sincronizao de dados. Isso pode ser feito por usurios mveis, escritrios remotos ou parceiros de negcios (VELTE, 2010).

5.6 Salerforce
Um dos exemplos mais conhecido de SaaS a Salesforce.com esta foi fundada em 1999 pelo ex-executivo da Oracle Marc Benioff, que foi o primeiro a promover o conceito de fornecimento de aplicativos empresariais atravs de um simples site da web. A Salesforce uma empresa norte americana de tecnologia que desenvolve solues no conceito de computao em nuvem (TAURION, 2009).

A proposta do Salesforce era diferente. Em vez de venda de licenas e contratos de manuteno e a necessidade de adquirir servidores para hospedar os caros aplicativos contratados, o cliente precisava apenas assinar um contrato de uso aplicativo de CRM (gesto de relacionamento com o cliente). Todo o software e a plataforma por trs residiriam no Salesforce.com. O cliente no precisaria mais se preocupar com a infra-estrutura (TAURION, 2009).

Hoje, alm as oferta tradicional, que o CRM via SaaS, oferece ainda duas solues: a Force.com, plataforma de desenvolvimento (PaaS), e o AppExchange, mercado on-line com diretrio de aplicaes desenvolvidas para o ecossistema Salesforce (TAURION, 2009). 73

A plataforma como um servio um servio oferecido aos desenvolvedores de software. Ao se desenvolver aplicativos para a plataforma Force.com eles ficam armazenados na infra-estrutura da Salesforce. Quando um desenvolvedor coloca uma aplicao a venda na AppExchange ele no precisa mais se preocupar em instalar o software, criar instncias ou coisas desse tipo (GONALVES, 2008).

A fim de fornecer uma gama de aplicaes que complementem seu CRM a Salesforce criou o AppExchange. Basicamente um mercado de aplicaes onde clientes do CRM podem consumir produtos desenvolvidos pelos parceiros da plataforma Force.com. Hoje diversas empresas j comercializam seus produtos dentro da Salesforce atravs do AppExchange, dando ao usurio a oportunidade de comprar softwares das mais diversas reas, desde auxlio para gerenciamento e manuteno de contratos at ferramentas de marketing para envio de e-mails (GONALVES, 2008).

A idia da Force.com prover um ambiente de desenvolvimento para desenvolvedores e empresas que queiram se tornar parceiras da Salesforce. No existe nenhum custo para iniciar o desenvolvimento de um aplicativo, o cadastro no site gratuito para obteno de uma conta com todos os recursos necessrios para o desenvolvimento de novos aplicativos (GONALVES, 2008).

Na direo de reforar o Force.com esto recentes mudanas, como o fato do cliente do AppExchange no precisar mais ser cliente do CRM da Salesforce. A razo para esta estratgia da Salesforce simples: constata-se que um grande nmero de desenvolvedores e pequenas empresas de software no ter competncia tecnolgica ou capital para proverem sua prpria nuvem. Neste contexto, a proposta da Salesforce disponibilizar sua plataforma para estes desenvolvedores hospedarem suas aplicaes (TAURION, 2009).

Um outro movimento interessante nesta direo foram as parcerias para integrar o Salesforce com outras nuvens. Uma destas parcerias foi com a Google, para permitir que clientes do Salesforce se integrem s ferramentas de produtividade do Google Apps, como Gmail, e Google Talk. Outra foi com o Facebook, para ligar CRM e a plataforma Force.com s aplicaes de computao social. Uma terceira parceria permite que clientes Salesforce 74

interajam com aplicativos e dados hospedados nas nuvens EC2 e S3 da Amazon (TAURION, 2009).

5.7 Comparativo entre os Modelos de Servios


Os modelos de servios so representados em camadas, cada uma delas possui suas respectivas caractersticas e determinados nveis de abstrao. Sendo que, para cada camada existem provedores de servio disponveis que oferecem seus benefcios diferenciados para que os usurios da computao em nuvem possam escolher o servio que mais se adapta a sua necessidade.

A camada de infra-estrutura inclui o fornecimento de mquinas virtuais nas quais o desenvolvedor possui o controle de seu gerenciamento, permitindo o armazenamento e a execuo de uma ampla diversidade de aplicativos, o servio ainda a responsvel pela adeso de hardware, servidores, roteadores e outros recursos de computao, os quais formam a base dos modelos de servios da computao em nuvem. Sendo assim, existem empresas que disponibilizam servios neste modelo, como por exemplo, a IBM Blue Cloud, GoGrid, Amazon EC2.

Na camada de plataforma como servio os desenvolvedores de servios, adquirem atravs deste modelo, os recursos necessrios (como ambiente de desenvolvimento, linguagens de programao) para construir as suas aplicaes, atravs da internet.

A camada de desenvolvimento e servios de gerenciamento em nuvem tem como exemplo as plataformas de desenvolvimento, como as oferecidas pelo Google App Engine, pelo Force.com. e pelo MS Azure muitas vezes estas camadas usam servios e softwares da camada anterior.

O AppEngine tecnicamente competidor do EC2 da Amazon, mas oferece uma proposta bem diferente. O EC2 permite mais flexibilidade e controle pela parte do usurio, enquanto o AppEngine oferece mais facilidade de uso e uma grande dose de automoo. Com o AppEngine o usurio escreve o cdigo, carrega sua aplicao e deixa que o Google faa todo o resto. Na Amazon, essas atividades so por conta do usurio. Alm disso, o AppEngine, ao contrrio do EC2, comea gratuito e, apenas caso demande mais recursos ele pago. No 75

EC2, tambm s paga pelo que se usa, mas no existe carncia. Outra diferena que o AppEngine ainda est restrito a duas linguagens de programao. O EC2 no limita a linguagem a ser usada. Assim, se uma determinada aplicao precisar de extenses em C++, por exemplo, o AppEngine no vai atender.

E finalmente na camada de software como servio, no seu mais alto nvel de abstrao nela que est sendo oferecida as diversas aplicaes como servios para os usurios, atravs da internet. Os exemplos de empresas que oferecem este tipo de servio so as seguintes: Salesforce.com, Google Docs, outras aplicaes da web 2.0 como o Facebook e LinkedIn so servios baseados em nuvem tambm. Nesta camada o usurio paga somente pelo uso do software, assim o provedor de servio oferece a plataforma mais o software para o usurio.

76

6. Concluso
De modo que, a evoluo da tecnologia nos ltimos anos tem contribudo muito para a difuso do termo de computao em nuvem, este modelo considerado um software disponvel na internet, em que o usurio no compra hardware ou software, mas aluga e paga o que utilizar.

Podemos observar no decorrer deste trabalho, que a implantao na computao em nuvem pode acontecer de trs formas, que so as seguintes: nuvens pblicas que so as mais conhecidas, pois o modelo de servios oferecidos atualmente, em sua maioria, adotam a nuvem pblica, na qual mltiplos usurios tm acesso a um software em comum na internet, na qual as empresas provedoras de servio so as responsveis pelos recursos necessrios para os usurios. As nuvens privadas so adotadas somente por uma organizao, onde estas so responsveis pela adoo de recursos computacionais quando necessrio, por isso possui um acesso restrito aos seus respectivos funcionrios. E o ltimo modelo a nuvem hbrida, a qual tenta implantar estes dois tipos de modelos ao mesmo tempo.

A computao em nuvem, ainda possui trs modelos de servios, os quais so oferecidos pelos seus provedores. Estes provedores so empresas que adotam um tipo de servio, e os disponibilizam com seus respectivos modos de pagamentos para os usurios.

As empresas que se baseiam no modelo de servio da IaaS, podem incluir em seus sistemas: roteadores, servidores, sistemas de armazenamento, banco de dados e outros recursos computacionais, para oferecer aos seus usurios. As que oferecem modelos de servios baseados na PaaS, inclui os sistemas operacionais, linguagens de programao e ambientes de desenvolvimento para as aplicaes, auxiliando a implementao de softwares, 77

j que contm ferramentas de desenvolvimento e colaborao entre desenvolvedores. No ltimo modelo que a SaaS, as empresas oferecem o software real como servio via internet, no qual a empresa adquire uma licena de uso atravs de um pagamento peridico e instala o software nos seus prprios servidores.

Alguns cuidados que se deve ter ao efetuar um contrato com uma empresa provedora de servio em nuvem, saber a taxa de transmisso da rede, fazer uma avaliao do desempenho dessa rede, saber se ela no esta sujeita a congestionamentos no trfego de dados e fazer ainda uma avaliao para saber se vivel migrar os dados de uma empresa para um ambiente virtual.

A computao em nuvem, com certeza vai ser um termo cada vez mais aceito pelas empresas em todo o mundo, pois a cada dia que passa, ofertas com mais segurana vo surgindo, fazendo com que as empresas tenham mais confiabilidade em adotar este tipo de servio.

Com o resultado desta pesquisa bibliogrfica, tem-se como objetivo principal prover esclarecimentos referentes computao em nuvem, para que este trabalho sirva de referncia para desenvolvimento e aquisies futuras de aplicaes em nuvem.

Ento existem algumas sugestes para a realizao de trabalhos futuros, como a resoluo de algumas questes de segurana na nuvem. Tambm, pode ser feito um acompanhamento desta tecnologia, para aprofundar ainda mais os conhecimentos da mesma. Existe ainda a possibilidade de desenvolver algum aplicativo envolvendo a plataforma do Google AppEngine.

78

7. Referncias Bibliogrficas
AHRONOVITZ, M.; AMRHEIN, D.; ANDERSON, P.. Cloud Computing Use Cases: A white paper produced by the Cloud Computing Use Case Discussion Group. Edio 4. Julho, 2010. AMRHEIN, D.; QUINT, S. (2009). Computao em nuvem para a empresa: Parte 1: Capturando a nuvem. Disponvel em: <http://www.ibm.com/developerworks/br/websphere/techjournal/0904_amrhein/0904_amrhei n.html>. Acessado em Abril de 2009. BIDDICK, M. (2010). hora de investir em uma estratgia de SaaS. So Paulo: InformationWeek. Edio 225. Editora it mdia. Maro, 2010. P 90. CAMBIUCCI, W. (2010). Computao em Nuvem: algumas perguntas sobre desafios em projetos. Microsoft Brasil. Disponvel em: <http://blogs.msdn.com/b/wcamb/archive/2010/05/07/computa-o-em-nuvem-algumasperguntas-sobre-desafios-em-projetos.aspx>. Acessado em Maio de 2010. CAPRAROLI, E. (2009). O Futuro Nublado. Disponvel em: <http://imasters.uol.com.br/artigo/14462/o_futuro_e_nublado>. Acessado em Outubro de 2009. CAROLINY, R. (2010). Parte 4: Vantagens e Desvantagens Cloud Computing. Disponvel em: <http://depositodeartigos.blogspot.com/2010/03/parte-4-vantagens-e-desvantagens.html>. Acessado em Maro de 2010. CARVALHO, Davi. Cloud da Amazon: US$ 220 milhes/ano. Disponvel em: <http://soasimples.com/blog/?tag=cloud>. Acessado em Outubro de 2009. CHEE, B. J. S.; FRANKLIN, C..(2010). Cloud Computing: Technologies and Strategies of the Ubiquitous Data Center. Editora CRC Press. 2010. CHIRIGATI, F. (2009). Computao em Nuvem. Disponvel em: <http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2009_2/seabra/index.html>. Acessado em Novembro de 2009. COELHO, O. P; COND, L.; CHRISTEN, M.; CAMBIUCCI, W.. Azure Academy: O Sistema Operacional Azure. Disponvel em: <http://blogs.msdn.com/otavio>. Acessado em Novembro de 2010. DELMIRO, E. (2010). Voc sabe o que computao em nuvem?. Disponvel em: <http://www.sapienzae.com.br/?p=847>. Acessado em junho de 2010. 79

DUARTE, R. (2009). FinancialWeb: ABC da computao em nuvem. Disponvel em: <http://www.robertodiasduarte.com.br/financialweb-abc-da-computacao-em-nuvem/>. Acessado em Novembro de 2009. ESCOBAR, F. (2009). Impacto do Gerenciamento de Projetos nas Organizaes. Disponvel em: <http://www.managerbrazil.com.br/?FuseAction=Biblioteca>. Acessado em Maio de 2009. FREZENDE, R. (2009). A Relao entre Computao em Nuvem e SaaS. Disponvel em: <http://www.scribd.com/doc/22719402/A-relacao-entre-Computacao-em-nuvem-e-SaaS>. Acessado em Novembro de 2009. FUGULIN, M. (2010). Entendendo a Computao em Nuvem. Disponvel em: <http://www.tecmedia.com.br/novidades/artigos/entendendo-a-computacao-em-nuvem>. Acessado em Janeiro de 2010. GOMES, D. (2010). Escolhendo sua Plataforma de Cloud Computing Parte 1 Amazon EC2. Disponvel em: <http://escalabilidade.com/2010/02/23/escolhendo-sua-plataforma-decloud-computing-parte-1-amazon-ec2/>. Acessado em Fevereiro de 2010. GONALVES, D.; JUNIOR, J. (2008). Integrao de Aplicaes ao SalesForce. White Papers. Digital Assets. GUN, M. (2008). Software como Servio: benefcios e precaues. Disponvel em: <http://webinsider.uol.com.br/2008/05/20/software-como-servico-beneficios-e-precaucoes/>. Acessado em Maio de 2009. JOBSTRAIBIZER, F. Cloud Computing. So Paulo: Linux Magazine. Editora Linux New Midia. Edio 69. Agosto, 2010. P 31. LIMA, J. (2009). Porqu Inovar nas Empresas?. Disponvel em: <http://aportar.blogspot.com/2009/04/porque-inovar-nas-empresas.html>. Acessado em Abril de 2010. LUIZ, A. Google Apps na INFOGLOBO. Disponvel em: <http://estagioboachance.blogspot.com/2010/11/google-apps-na-infoglobo.html>. Acessado em Dezembro de 2010. MATHER, T.; KUMARASWAMY, S.; LATIF, S.. Cloud Security and Privacy. Editora OReilly Media; Setembro, 2009.

80

MILLER, M.. Cloud Computing: Web-Based Applications That Change the Way You Work and Collaborate Online. Editora Copyright; 2009. MOREIRA, D. (2009). Cloud Computing: Entenda este novo modelo de computao. IDG Now. OLIVEIRA, R.; MAADA, A. C.; VANTI, A.. (2009). Infra-estrutura de Tecnologia de Informao Anlise da Viso e Conjunto de Servios - Estudo Piloto. Universidade Federal do Rio Grande do Sul (UFRGS) Porto Alegre, RS. ORTEGA, A. (2010). NASA e Cisco: Nuvem dentro de containers. Disponvel em: <http://www.brainwork.com.br/blog/tag/nebula/>. Acessado em Junho de 2010. PRADO, B. (2010). O que Cloud Computing?. Disponvel em: <http://bloglog.globo.com/blog/blog.do?act=loadSite&id=221&postId=23389&permalink=tru e>. Acessado em Junho de 2010. PIGATTO, D. F.(2009) Estudo e Implementao de Uma Soluo de Softwares Aplicativos Utilizando Computao nas Nuvens. Universidade Regional Integrada do Alto Uruguai e das Misses. Erechim, RS. PINA, A. C. (2010). Cloud Computing. So Paulo: Linux Magazine. Editora Linux New Midia. Edio 69. Agosto, 2010. P 30. PUPIM, M. (2010). Cloud Computing: cinco erros conceituais. Disponvel em: <http://www.estudameufilho.com.br/?p=410>. Acessado em Maio de 2010. RUSCHEL, H; ZANOTTO, M; MOTA, W. (2008). Computao em Nuvem. Especializao em Redes e Segurana de Sistemas 2008/2. Pontifcia Universidade Catlica do Paran (PUC). Curitiba, PR. SISNEMA. (2009). Cloud Computing Novo Modelo de Computao. Disponvel em: <http://sisnema.com.br/Materias/idmat019433.htm>. Acessado em Fevereiro de 2010.

SLACK, S. E.(2009). H Valor na Computao em Nuvem? A computao em nuvem e seu impacto no futuro da arquitetura. Disponvel em: < http://www.ibm.com/developerworks/br/library/ar-valuecloudcomputing/#blue_cloud >. Acessado em Maio de 2010.

SOUZA, F; MOREIRA, L; MACHADO, J. (2009). Computao em Nuvem: Conceitos, Tecnologias, Aplicaes e Desaos. Captulo 7. Universidade Federal do Piau (UFPI). 81

SPOSITO, R. Nuvem Pblica ou Privada?. Disponvel em: <http://epocanegocios.globo.com/Revista/Common/0,,EMI96465-17453,00NUVEM+PUBLICA+OU+PRIVADA.html>. Acessado em Abril de 2010. SUN, Microsystems. (2009). Take your business to a higher level. Disponvel em: <http://www.scribd.com/doc/13892125/Everything-You-Need-to-Know-About-CloudComputing>. Acessado em Agosto de 2010 TAURION, Cezar. Cloud Computing Computao em Nuvem: Transformando o mundo da Tecnologia da Informao. Editora Brasport, 2009. VELTE, A. T; VELTE, T. J; ELSENPETER, R. Cloud Computing: A Practical Approach. Editor Copyright. 2010. VERAS, C. (2009). Por que mesmo a Empresa deve Inovar?. Disponvel em: <http://clariceveras.wordpress.com/2009/04/02/por-que-mesmo-a-empresa-deve-inovar/>. Acessado em Abril de 2010. VERDI, F. L; ROTHENBERG, C. E; PESQUINI, R; MAGALHES, M. F.. (2010). Novas Arquiteturas de Data Center para Cloud Computing. Universidade Federal de So Carlos UFSCar. Faculdade de Engenharia Eltrica e Computao (FEEC) - Unicamp

VIEIRA, A. L.; PEREIRA, F.; TOLEDO, M. B.; CARNEIRO, P.; ARANHA, R.. (2009). Computao em Nuvem. Universidade Federal Fluminense (UFF). ZUNINO, M..(2008). Microsoft Anuncia Windows Azure. Disponvel em:

<http://www.guiadopc.com.br/noticias/4933/microsoft-anuncia-windows-azure.html>. Acessado em Novembro de 2010.

82