introdução a cloud computing

82
UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO DO RIO GRANDE DO SUL CURSO DE BACHARELADO EM INFORMÁTICA – SISTEMAS DE INFORMAÇÃO Camila Cerezer Possobom ESTUDO DE CASO: CLOUD COMPUTING - COMPUTAÇÃO EM NUVEM Monografia apresentada ao Curso de Bacharelado em Informática – Sistemas de Informação da Universidade Regional do Noroeste do Estado do Rio Grande do Sul de Ijuí, para a obtenção do título de Bacharel em Informática – Sistemas de Informação. Edson Luiz Padoin Ijuí/RS, Novembro de 2010

Upload: vbecker-becker

Post on 05-Aug-2015

110 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução a cloud computing

UNIVERSIDADE REGIONAL DO NOROESTE DO ESTADO

DO RIO GRANDE DO SUL

CURSO DE BACHARELADO EM INFORMÁTICA –

SISTEMAS DE INFORMAÇÃO

Camila Cerezer Possobom

ESTUDO DE CASO: CLOUD COMPUTING -

COMPUTAÇÃO EM NUVEM

Monografia apresentada ao Curso de Bacharelado em Informática – Sistemas de Informação da Universidade Regional do Noroeste do Estado do Rio Grande do Sul de Ijuí, para a obtenção do título de Bacharel em Informática – Sistemas de Informação.

Edson Luiz Padoin

Ijuí/RS, Novembro de 2010

Page 2: Introdução a cloud computing

ESTUDO DE CASO: CLOUD COMPUTING -

COMPUTAÇÃO EM NUVEM

Camila Cerezer Possobom

Esta Monografia foi julgada adequada para a obtenção do título de Bacharel em Informática – Sistemas de Informação e aprovada em sua forma final pelo Curso de Bacharelado em Informática – Sistemas de Informação.

______________________________________

Edson Luiz Padoin (Orientador)

Banca Examinadora

______________________________________

Marcos Ronaldo Melo Cavalheiro

Page 3: Introdução a cloud computing

Universidade Regional do Noroeste do Estado do Rio Grande do Sul – UNIJUÍ Curso Superior em Informática – Sistemas de Informação - Campus Ijuí Reitor:

Gilmar Antônio 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 Informática – Sistemas de Informação Prof. Ms. Edson Luiz Padoin

Coordenador da Disciplina de Trabalho de Conclusão 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 – Catalogação na Publicação

Endereço: Universidade Regional do Noroeste do Estado do Rio Grande do Sul Campus Ijuí Rua São Francisco, 501 – Bairro São Geraldo CEP 98700-000 Ijuí – RS - Brasil

Possobom, Camila Cerezer

Trabalho de Conclusão de Curso (Graduação em Informática - Sistemas de Informações). Universidade Regional do Noroeste do Estado do Rio Grande do Sul, 2010.

1. Introdução. 2. Conceituando Computação em Nuvem. 3. Modelos de Implantação de Computação em Nuvem. 4. Modelos de Serviços na Computação em Nuvem. 5. Estudo de Caso: Provedores de Serviços de Computação em Nuvem.

Page 4: Introdução a cloud computing

"...É incansável buscar o conhecimento ! Interminável é sua procura !

Aos mestres, que nos abreviam esta procura ! O Reconhecimento sempre !!!!..."

Page 5: Introdução a cloud computing

Agradecimentos

Agradeço, primeiramente, a Deus pelas oportunidades que me foram oferecidas na

vida, principalmente por ter conhecido pessoas muito especiais e lugares diferentes, mas, além

disto, por estar sempre ao meu lado nas horas mais difíceis e me ajudando na conclusão deste

trabalho.

Não posso deixar de agradecer a toda a minha família, mas em especial aos meus pais

Ademir Luiz Possobom e Liane Cerezer Possobom, os responsáveis diretos pela minha

formação, sem os quais não estaria aqui, por terem me fornecido condições para me tornar

uma profissional, por me entenderem e me incentivarem a perseguir no que acredito, por mais

que isso traga restrições ao nosso convívio.

A minha avó Santina Menegazzi Cerezer, a qual me ajudou nas horas mais difíceis e me

incentivou muito para a conclusão deste curso.

Ao meu namorado Glauber e toda a família dele a Mari, o Marion, o Glauco e a avó

Otillia, pelo apoio recebido e pela compreensão nos momentos em eu mais precisei durante

toda a minha formação, as quais são 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, auxílio e

apoio.

Aos demais professores pelos anos de convivência e troca de informação, os quais

foram muito importantes na minha formação acadêmica.

A todos só posso dizer: Muito Obrigado!

Page 6: Introdução a cloud computing

Sumário

1. Introdução .............................................................................................................. 10

1.1 Objetivo Geral ....................................................................................................... 12

1.2 Organização do Trabalho ..................................................................................... 12

2. Conceituando Computação em Nuvem ............................................................... 14

2.1 Tecnologias Relevantes na Computação em Nuvem ............................................ 19

2.1.1 Recursos Compartilhados ................................................................................... 20

2.1.2 Escalabilidade ..................................................................................................... 20

2.1.3 Elasticidade ......................................................................................................... 21

2.1.4 Dispositivos de Acesso ....................................................................................... 22

2.1.5 Pay as you go ...................................................................................................... 22

2.1.7 Alta velocidade no acesso de banda larga .......................................................... 24

2.1.8 Os Dispositivos de Armazenamento................................................................... 25

2.1.9 As Tecnologias de Virtualização ........................................................................ 26

2.1.10 Orientada a serviços............................................................................................ 27

2.1.11 Pooling de Recursos ........................................................................................... 28

2.1.12 Serviço Medido .................................................................................................. 28

2.1.13 Service Level Agreement (SLA) ........................................................................ 29

2.1.14 Interoperabilidade ............................................................................................... 29

2.1.15 Portabilidade ....................................................................................................... 30

2.1.16 Integração ........................................................................................................... 30

2.1.17 Disponibilidade ................................................................................................... 31

2.1.18 Application Programming Interface (API) ......................................................... 31

2.1.19 Segurança............................................................................................................ 31

Page 7: Introdução a cloud computing

3. Modelos de Implantação de Computação em Nuvem ........................................ 35

3.1 Nuvens Públicas ............................................................................................... 36

3.2 Nuvens Privadas .............................................................................................. 38

3.3 Nuvens Híbridas .............................................................................................. 39

3.4 Comparativo entre os Modelos de Nuvens ...................................................... 41

4. Modelos de Serviços na Computação em Nuvem .................................................. 43

4.1 Infra-estrutura como Serviço (IaaS) ..................................................................... 48

4.2 Database-as-a-Service ........................................................................................... 50

4.3 Plataforma como Serviço (PaaS) .......................................................................... 52

4.4 Software como Serviço (SaaS) ............................................................................ 54

5. Análise de Caso: Provedores de Serviços de Computação 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 Serviços ......................................................... 75

6. Conclusão .................................................................................................................. 77

7. Referências Bibliográficas ....................................................................................... 79

Page 8: Introdução a cloud computing

Lista de Abreviaturas

TI – Tecnologia da Informação

IaaS – Infra-estrutura como Serviço

PaaS – Plataforma como Serviço

SaaS – Software como Serviço

SOA - Service Oriented Architecture (Arquitetura Orientada a serviço)

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 Nível de Serviço)

QoS – Qualidade de Serviço

VM – Virtual Machine (Máquina 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 Relações com Clientes

PC - Computador Pessoal

Page 9: Introdução a cloud computing

Lista de Figuras

Figura 1. Evolução da Tecnologia (CAMBIUCCI, 2010) .................................................................... 15

Figura 2. Tipos de Nuvens (AMRHEIN, 2009) .................................................................................... 36

Figura 3. Nuvem Pública (MATHER, 2009) ........................................................................................ 37

Figura 4. Nuvem Híbrida (MATHER, 2009) ........................................................................................ 40

Figura 5. Os principais atores que estão relacionados com as camadas de aplicação, de plataforma e de intra-estrutura são, respectivamente, os usuários das nuvens, os prestadores de serviços e os prestadores de infra-estrutura (CHIRIGATI, 2009). ............................................................................. 44

Figura 6. Níveis de divisão da computação em nuvem segundo a ontologia proposta (AHRONOVITZ, 2010). .................................................................................................................................................... 46

Figura 7. Papéis na Computação em Nuvem (SOUZA, 2009).............................................................. 47

Figura 8. Modelos de Serviços (SOUZA, 2009) ................................................................................... 48

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

Figura 10. Serviços oferecidos no Windows Azure (ZUNINO, 2008) ................................................. 71

Figura 11. Tamanhos das instâncias no Windows Azure (CAMBIUCCI, 2010).................................. 72

Page 10: Introdução a cloud computing

10

1. Introdução

O setor da Tecnologia da Informação (TI) vem sofrendo muitas transformações nos

últimos anos. A virtualização e computação em nuvem, ou também tem pessoas usando o

termo computação na nuvem ou computação nas nuvens, quaisquer destes termos são achados

na web referindo-se todos ao mesmo conceito, estas duas tecnologias estão sendo as principais

estratégias em tecnologia nas empresas.

As evoluções constantes da tecnologia e das telecomunicações estão fazendo com que

o acesso à internet se torne cada vez mais amplo e mais rápido. Em países mais desenvolvidos

como Japão, Estados Unidos e Alemanha, é possível ter acesso rápido à internet pagando-se

muito pouco. Estes fatos criam uma situação perfeita para a difusão da computação em

nuvem, embora esse conceito esteja tornando-se conhecido no mundo todo, inclusive no

Brasil (PRADO, 2010).

Não há dúvidas de que esta evolução esteja ligada diretamente à evolução dos

processadores e ao crescimento da internet banda larga. A idéia de computação em nuvem não

pode ser considerada uma nova tecnologia, mas sim uma nova aplicação da internet a um

conceito que existia desde os primórdios da computação. O modelo computacional dos

datacenters começou 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 distribuído. Esta fase foi seguida pelos sistemas

distribuídos baseados no modelo cliente/servidor e, consequentemente, pelo crescimento

explosivo da internet e da web. Mais recentemente, a evolução das técnicas de virtualização

tem propiciado o desenvolvimento de aplicações que compartilham a mesma infra-estrutura

de hardware, alavancando o surgimento de soluções para serviços em nuvem (VERDI, 2010).

Cada vez mais o processamento e o armazenamento estão sendo movidos dos

computadores pessoais para grandes provedores de serviços, sendo que, o usuário não precisa

saber em que local estes dados estão sendo processados e armazenados, pois tudo fica na

nuvem. Fotos, vídeos e aplicações que antes eram armazenadas e processadas nos

Page 11: Introdução a cloud computing

11

computadores, agora migram para serem hospedadas e processadas por provedores sob o

formato de serviços web.

A computação em nuvem pode ser visto como um estágio mais evoluído da

virtualização, pois tem a possibilidade de virtualizar e compartilhar recursos entre diferentes

aplicativos para uma melhor utilização do servidor (TAURION, 2009).

Com a disseminação da internet, a computação em nuvem é a sua evolução natural.

Agora que temos tecnologia para transmitir dados em grande quantidade para qualquer ponto

do planeta, o que as empresas estão fazendo é “terceirizando” suas necessidades

computacionais para os grandes datacenters que são capazes de realizar as operações com

mais velocidade. Computação em nuvem é a computação considerada como um serviço, ou

seja, é considerada como um software. Você não compra hardware ou software, mas você o

aluga e paga apenas pelo que utilizar (FUGULIN, 2010).

De modo que, a computação em nuvem é a evolução da infra-estrutura de internet,

então 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, desperdiçando recursos importantes.

Com a computação em nuvem, a empresa tem acesso instantâneo a milhares de servidores

disponíveis na nuvem, sendo possível contratar mais recursos de processamento, espaço e

memória a qualquer instante, além de ser mais seguro, pois a tecnologia responde

imediatamente em caso de falhas movendo suas aplicações automaticamente garantindo

estabilidade.

Gartner avalia que o serviço de computação em nuvem em todo o mundo movimentou

US$ 56,3 bilhões no ano de 2009, chegando a US$ 153 bilhões em 2013. Com estes números,

podemos dizer que o conceito está evoluindo gradativamente (TAURION, 2009).

Page 12: Introdução a cloud computing

12

1.1 Objetivo Geral

O objetivo deste trabalho é elaborar uma pesquisa bibliográfica, na qual pretende-se

mostrar que a tecnologia está sempre em constantes mudanças e inovações, através do

esclarecimento do conceito de Computação em nuvem e suas funcionalidades, conforme

concepções apresentadas por diversos autores. Para isso, articulamos os conceitos de

computação em nuvem com os seus vários aplicativos e serviços já existentes.

Na computação 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 à computação em nuvem e também estabelecer um comparativo

entre os modelos de serviços que as empresas estão oferecendo no mercado, para que este

trabalho sirva de referência para desenvolvimento e aquisições futuras em aplicações na

nuvem.

1.2 Organização do Trabalho

No Capítulo 2 são apresentadas a evolução nas empresas do ramo de negócios atuais,

em seguida são introduzidos alguns conceitos de tecnologias relevantes para melhor

compreensão da computação em nuvem e logo após é inserido os conceitos e as opiniões de

diversos autores, dessa tecnologia que já esta inserida no mercado e se tornando a melhor

estratégia de negócios para as empresas no contexto da atualidade.

No Capítulo 3 trata dos quatro tipos de implantações de serviços na computação em

nuvem por grau de compartilhamento entre as nuvens empresarias, a nuvem pública, nuvem

privada e nuvem híbrida, por fim é feito um comparativo entre elas.

No Capítulo 4 está sendo abordado os modelos de serviços disponíveis para a

computação em nuvem. O modelo de banco de dados utilizado pela computação em nuvem

que se chama Database-as-a-Service (DaaS). Então a arquitetura da computação em nuvem

esta divida em camadas abstratas, primeiro temos a camada de infra-estrutura (IaaS). Na

Page 13: Introdução a cloud computing

13

camada acima temos a de plataforma (PaaS). E por fim temos a camada de arquitetura na sua

forma mais abstrata que é as aplicações (SaaS).

No capítulo 5 nos traz os conceitos de provedores de serviços na computação em

nuvem, cada um com seus devidos conceitos, por fim um comparativo entre os modelos de

serviços.

Por fim, são apresentadas as conclusões, trabalhos futuros e referências bibliográficas.

Page 14: Introdução a cloud computing

14

2. Conceituando Computação em Nuvem

Para entender o que é a computação em nuvem, é importante compreender como este

modelo de computação evoluiu. Como Alvin Toffler observa em seu famoso livro, “The

Third Wave” (Bantam, 1980), a civilização progrediu em ondas, sendo que, a primeira onda

foi em sociedades agrícolas, a segunda foi a era industrial e a terceira é a era da informação.

Dentro de cada onda, houveram fatos importantes. Neste pós-industrial da era de informação,

estamos agora no início do que muitas pessoas chamam de uma era da computação em nuvem

(MATHER, 2009).

Observando a Revolução Industrial e seu impacto na economia mundial, a própria

revolução não aconteceu de um dia para outro, mas sim através de uma série de mudanças.

Neste contexto se observarmos a internet, esta também tem se desenvolvido através de uma

sequência de mudanças. E a computação em nuvem é o assunto do momento (MATHER,

2009).

Então, vive-se o auge da era de informação, com os avanços da tecnologia, e também

com a introdução de tantos meios onde a informação torna-se cada vez mais acessível.

Desde a década de 90 que os grandes negócios mundiais estão sendo impulsionados

pela TI computacional. Isto acontece porque as empresas atualmente estão em um mercado

novo com desenvolvimentos tecnológicos muito grandes e rápidos (LIMA, 2009).

O cenário de negócios atual exige das empresas maior velocidade, flexibilidade e

consistência na implantação de suas estratégias para sobrevivência e crescimento. A execução

destas estratégias envolve certas etapas que competem por recursos (humanos, financeiros e

materiais) com as atividades rotineiras da organização, aumentando a complexidade da gestão

empresarial (ESCOBAR, 2009).

A inovação possibilita que a empresa cresça no mercado, aumente sua lucratividade,

enfrente a concorrência de maneira igual e se mantenha adequada no mercado, ou seja, seus

produtos, processos e práticas de marketing em permanente sintonia com as necessidades dos

Page 15: Introdução a cloud computing

15

seus clientes. É preciso inovar e renovar a organização do empreendimento e acelerar e

aumentar a produtividade (VERAS, 2009).

Então esta evolução de negócio ágil, de dispositivos e de tecnologias elas ocorrem ao

longo do tempo e isso acontece quando diferentes abordagens para construção de arquiteturas

direcionam a TI. De acordo com a visão de Waldemir Cambiucci arquiteto de Soluções

Microsoft Brasil, essa evolução ao longo do tempo se deu de dez em dez anos, onde para cada

período tem-se um destaque em especial, como mostra a Figura 1.

Figura 1. Evolução da Tecnologia (CAMBIUCCI, 2010)

• Nos anos de 1970, nós podemos observar que a visão da tecnologia era

centralizada, com aplicações monolíticas que exigia uma grande expertise para

programação, coordenação e administração deste ambiente.

• Nos anos de 1980, temos uma computação pessoal surgindo e com uma visão do

cliente/servidor, com o foco mais descentralizado, distribuído e tinha também o

usuário com poder de controle e de acesso na máquina desktop.

• Nos anos de 1990, é consolidada a visão da web, de fato as pessoas começam a se

conectar e a partir daí, obtemos a própria web tornando-se uma plataforma para

novos sistemas e novas aplicações.

1970 1980 1990 2000 2009+

Page 16: Introdução a cloud computing

16

• Nesses últimos anos, temos muitas discussões em volta de serviços e então

Waldemir Cambiucci fala de SOA (Service Oriented Architecture), esta arquitetura

orientada para serviços tem sido uma visão perseguida por várias empresas. Que

basicamente buscam a diminuição de custo operacional, a consolidação de

funcionalidades, a maior eficiência na operação de TI e a reutilização de recursos

implementados.

• Então depois de SOA, vai ter-se uma maturidade de serviços locais que as

aplicações já consomem, mas também será consumido serviços remotos, aonde

vem a aplicação do conceito de computação em nuvem.

Então pode-se destacar um fator complicador hoje em dia é que as mudanças ocorrem

muito rápido. Analisando o mundo atual e comparando com alguns anos atrás, quando não

havia o Google, Wikipédia, Orkut, iPhones e outros...e até hoje ela esta em constante

mudanças 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 negócio seja tão flexível quanto à demanda do mercado. Daí então surgiu o conceito de

computação em nuvem. O qual refere-se à utilização da memória, das capacidades de

armazenamento, cálculo de computadores, servidores compartilhados e interligados por meio

da internet, ainda implementa o conceito de virtualização permitindo que estes computadores

fiquem interligados os quais geram uma imagem de um super computador (TAURION,

2009).

Então, a computação em nuvem surgiu como um novo modelo de computação

distribuída que aproveita conceitos de clusters e grids, além de basear-se nos avanços de

técnicas de virtualização conquistados nos últimos anos. O conceito de “nuvem” surge da

disposição física 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 localização. Para

tal, adotou-se o termo “nuvem”, significando então, um emaranhado de servidores disponíveis

via internet (PIGATTO, 2009).

Page 17: Introdução a cloud computing

17

De acordo com Andy Bechtolsheim (2008):

“O modelo de computação em nuvem é a quinta geração da computação, depois do mainframe, PC (Personal Computer), modelo cliente/servidor e web. Trata-se de uma evolução do modelo cliente/servidor, diferindo na distribuição do processamento, o qual é em grande parte centralizado no servidor remoto, cabendo ao terminal cliente efetuar pequenas tarefas de processamento locais” (PIGATTO, 2009).

Computação em nuvem, portanto, trata-se da utilização de softwares ou sistemas em

rede e da capacidade de prover recursos sob demanda ao usuário. Desta maneira, as

informações são permanentemente armazenadas em servidores na internet (localizados na

“nuvem”), sendo realizadas caches destes dados em computadores desktops, notebooks,

dispositivos móveis, entre outros, os quais estarão fazendo uso da infra-estrutura em nuvem

(PIGATTO, 2009).

O termo computação em nuvem, como qualquer novo termo, possui várias definições

possíveis, muito embora todas relativamente parecidas. O mais importante é entendermos que

a definição do conceito está ainda em evolução e novas definições poderão surgir. O trabalho

(Vaquero et al. 2009) faz uma análise das definições utilizadas na literatura atual e adota a

seguinte opção:

“Computação em Nuvem é um conjunto de recursos virtuais facilmente usáveis e acessíveis tais como hardware, plataformas de desenvolvimento e serviços. Estes recursos podem ser dinamicamente re-configurados para se ajustarem a uma carga variável, permitindo a otimização do uso dos recursos. Este conjunto de recursos é tipicamente explorado através de um modelo pay-per-use com garantias oferecidas pelo provedor através de acordos de nível de serviço (Service Level Agreements-SLAs)” (VERDI, 2010).

De acordo com Antônio Carlos Pina, líder técnico do projeto “Cloud Computing da

Tecla Internet”, de quatro anos pra cá, fala-se muito em computação em nuvem, desde então,

vários fornecedores se apropriaram da expressão computação em nuvem e suas variantes

(IaaS, PaaS, SaaS) para vender seus serviços. Fornecedores com diferentes plataformas

competem, isto é ótimo, pois a longo prazo, quem ganhará com esse movimento é o usuário

que poderá escolher o serviço do fornecedor que melhor atender suas demandas (PINA,

2010).

Page 18: Introdução a cloud computing

18

Antônio Carlos Pina ainda diz que, no ponto de vista do usuário, computação em

nuvem nada mais é, do que o fornecimento de serviços via internet pagos pelo uso. É muito

parecido com a eletricidade nos tempos atuais (Utility Computing), se o usuário usa muito

paga muito, se usa pouco paga pouco. E o usuário não precisou investir em geração própria

(geradores) para ter acesso a eletricidade, pois a companhia elétrica já faz isso (PINA, 2010).

É comum referir-se ao modelo como Utility Computing (computação como uma

utilidade), o que significa que o usuário poderá acessar aplicações de negócios online, a partir

de qualquer dispositivo virtualmente disponível, mediante um pagamento por uso.

Neste mesmo contexto, com a nuvem, o usuário não investe na compra de

computadores e infra-estrutura em geral (switches, roteadores, etc.), mas utiliza os

dispositivos na nuvem. O fornecedor de computação em nuvem possui uma estrutura

escalável e elástica, daí então consegue cobrar apenas o que foi demandado desta grande

estrutura (PINA, 2010).

Tratando-se especificamente da definição, ainda não se tem uma definição amplamente

aceita. Esta definição a baixo é do mais recente projeto da

NIST Trabalho de Definição de Cloud Computing publicado por os EUA Governo Instituto

Nacional de Padrões e tecnologia e pode ser encontrado no seguinte endereço:

http://csrc.nist.gov/groups/SNS/cloud-computing/

“Computação em nuvem é um modelo que possibilita acesso, de modo conveniente e sob demanda, a um conjunto de recursos computacionais configuráveis (por exemplo, redes, servidores, armazenamento, aplicações e serviços) que podem ser rapidamente adquiridos e liberados com mínimo esforço gerencial ou interação com o provedor de serviços” (SOUZA, 2009).

Já (Armbrust et al. 2009) propõem a seguinte definição:

“A computação em nuvem é um conjunto de serviços de rede ativados, proporcionando escalabilidade, qualidade de serviço, infra-estrutura barata de computação sob demanda e que pode ser acessada de uma forma simples e pervasiva” (SOUZA, 2009).

Page 19: Introdução a cloud computing

19

Gartner afirma que:

“A computação em nuvem é como um estilo de computação onde capacidades de TI altamente escaláveis são fornecidas como um serviço para consumidores externos usando tecnologias de internet” (FREZENDE, 2009).

O termo computação em nuvem estará sendo considerado nas estratégias de tecnologia

de informações das empresas e dos prestadores de serviço. Estamos ainda no início da

computação em nuvem, por ser um tema muito recente, ainda existe muito desconhecimento.

Mas com certeza este termo computação em nuvem no futuro vai transformar o modo como

as empresas operam sua TI (TAURION, 2009).

2.1 Tecnologias Relevantes na Computação em Nuvem

O conceito de computação em nuvem, já não é mais tão abstrato como era há um

tempo. Hoje é possível não somente armazenar dados online, mas também trabalhar em uma

máquina remota, acessível de qualquer lugar e disponível o tempo todo, como se o usuário

estivesse levando seu computador sempre junto. Não é mais necessário preocupar-se com

hardware, sistema operacional ou aplicativos instalados. Até mesmo o backup passa a ser

uma preocupação a menos, já que a maioria das empresas fornece planos para garantir a

segurança e integridade dos seus dados (JOBSTRAIBIZER, 2010)

De fato a computação em nuvem não é vista como uma nova tecnologia, mas sim a

combinação de muitas tecnologias já existentes. Essas tecnologias têm amadurecido a ritmos

diferentes, em diferentes contextos e não foram concebidos como um todo coerente, no

entanto, elas se uniram para criar um ecossistema para a computação em nuvem. Novos

avanços tecnológicos em transformações como, a tecnologia de virtualização, discos de

armazenamento, acesso à internet de banda larga e rápida, servidores baratos, então se uniram

para fazer a nuvem uma solução mais atraente (MATHER, 2009).

O entusiasmo com a computação em nuvem se deve às inúmeras vantagens que ele

pode oferecer tanto aos fornecedores de tecnologia quanto aos usuários.

Em primeiro lugar, este é um modelo que prevê um melhor aproveitamento dos

investimentos em hardware. Um dos pilares da computação em nuvem é a consolidação dos

Page 20: Introdução a cloud computing

20

recursos de hardware para que eles possam ser aproveitados ao máximo e gerenciados de

forma inteligente, proporcionando economia de custos (MOREIRA, 2009).

Então nos próximos subtítulos abordaremos as tecnologias relevantes que fazem parte

desta evolução computacional, chamada de computação em nuvem, com definições

apresentadas por alguns autores.

2.1.1 Recursos Compartilhados

Ao contrário dos modelos anteriores de computação, que assumiram recursos

dedicados (isto é, a instalações dedicadas a um único usuário ou proprietário), a computação

em nuvem é baseada em um modelo de negócio em que os recursos são partilhados (isto é,

vários usuários usam o mesmo recurso) no nível de rede (MATHER, 2009).

De acordo com NIST, a proposta do modelo de computação em nuvem é ter uma

aplicação atendendo a múltiplos clientes, chamados de tenants ou inquilinos. Inquilinos não

são usuários individuais, mas empresas clientes do software. Uma arquitetura multi-inquilino

é essencial para a computação em nuvem pois permite que múltiplos inquilinos compartilhem

recursos físicos 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 organizações possam ter centenas ou milhares de sistemas, a computação

em nuvem fornece a capacidade de escala a dezenas de milhares de sistemas, bem como a

capacidade de massividade de escala, de banda e espaço de armazenamento (MATHER,

2009).

Se o usuário é surpreendido por uma demanda repentina, a computação em nuvem

pode ajudá-lo a gerenciar. Ao invés de ter que comprar, instalar e configurar novos

equipamentos, o usuário pode comprar os ciclos da CPU ou armazenamento de um terceiro.

Uma vez que os custos são baseados no consumo, provavelmente não teria de pagar tanto

Page 21: Introdução a cloud computing

21

como se tivesse que comprar o equipamento. Depois de ter cumprido a necessidade de

equipamento adicional, basta parar de usar o prestador de serviços em nuvem e o usuário não

terá que lidar com equipamentos desnecessários. Irá simplesmente adicionar ou subtrair com

base na necessidade da sua organização (RUSCHEL, 2008).

A escalabilidade é uma característica fundamental na computação em nuvem. As

nuvens de serviço e as plataformas oferecidas podem ser dimensionadas por vários fatores,

tais como a localizações geográficas, desempenho ou configurações. As aplicações

desenvolvidas para uma nuvem precisam ser escaláveis, de forma que os recursos utilizados

possam ser ampliados ou reduzidos de acordo com a demanda. Para que isso seja possível, as

aplicações e os dados devem ser flexíveis o suficiente. Porém, tornar estes dados “elásticos”

não tem sido uma tarefa muito fácil, dependendo da sua implementação (CHIRIGATI, 2009);

2.1.3 Elasticidade

Dimensionamento rápido e automático para a escalabilidade, freqüentemente

aparentando possuir recursos ilimitados. Os recursos podem ser adquiridos de forma rápida e

elástica, em alguns casos automaticamente, caso haja a necessidade de escalar com o aumento

da demanda e liberados, na retração dessa demanda. Para os usuários, os recursos disponíveis

para uso parecem ser ilimitados e podem ser adquiridos em qualquer quantidade e a qualquer

momento. O que ajuda muito na característica de elasticidade rápida na computação em

nuvem é a virtualização, criando várias instâncias de recursos requisitados utilizando um

único recurso real. Virtualização é a criação de ambientes virtuais com o propósito de abstrair

características físicas do hardware, podendo emular vários sistemas operacionais em uma

única plataforma computacional (AHRONOVITZ, 2010).

A elasticidade é definida como a capacidade de dimensionar os recursos, conforme

necessário. Para o consumidor, a nuvem parece ser infinita e o consumidor pode comprar

muita ou pouca potência de computação, como for necessário. Esta é uma das características

essenciais de computação em nuvem, na definição do NIST. (AHRONOVITZ, 2010).

Page 22: Introdução a cloud computing

22

2.1.4 Dispositivos de Acesso

A gama de dispositivos de acesso para a nuvem tem se expandido nos últimos anos.

Computadores domésticos, computadores empresariais, computadores pessoais, dispositivos

de telefonia móvel, dispositivos móveis personalizados, todos estão online. Curiosamente, o

crescimento do iPhone e da proliferação de aplicações disponíveis a partir de sua App Store

ilustra uma melhoria em termos de acesso à nuvem. Este maior acesso está resultando em uma

maior utilização e crescimento dos serviços utilizados na nuvem. Por exemplo, você pode

agora utilizar o Skype através do iPhone e outros dispositivos móveis, trazendo esta rede mais

próximo dos usuários, e a Salesforce.com lançou uma aplicação que permite aos usuários

acessar seus serviços a partir do iPhone, assim como muitos outros fornecedores. (MATHER,

2009).

Computadores de baixo custo para o usuário, aqui está uma vantagem quantitativa

financeira. Na qual o usuário não precisa de um computador potente (e, portanto, de alto

preço) precisa sim de um computador para executar a computação em nuvem que é baseado

nas aplicações da web. Como o aplicativo é executado na nuvem, o computador não precisa

do poder de processamento e espaço em disco rígido exigido pelo software tradicional. Por

isso os computadores de clientes em computação em nuvem pode ser de menor custo, com

menos discos rígidos, menos memória, processadores mais eficientes, e assim por diante. Na

verdade, um computador de usuário neste cenário nem sequer precisa de um drive de CD ou

DVD, porque não existem programas de software a serem carregados e os arquivos de

documentos não precisam ser salvos (MILLER, 2009)

2.1.5 Pay as you go

Este termo pay as you go refere-se que, os usuários irão pagar apenas os recursos que

eles realmente irão usar e só o tempo que lhes impõem os valores (MATHER, 2009).

O usuário tem um melhor controle de gastos ao usar aplicativos, pois a maioria dos

sistemas de computação em nuvem fornece aplicações gratuitamente e, quando não gratuitas,

são pagas somente pelo tempo de utilização dos recursos. Não é necessário pagar por uma

licença integral de uso de software (DELMIRO, 2010).

Page 23: Introdução a cloud computing

23

Embora pesquisas em computação tenham investigado vários modelos econômicos de

infra-estrutura computacional durante a última década, a computação em nuvem tem uma

abordagem mais aplicada aos negócios e relacionada ao custo. Assim, a computação em

nuvem apresenta diversos modelos de preço, sendo estes organizados em três grupos: preço

diferenciado, preços por unidade e assinatura de serviços básicos. Preço diferenciado é o

modelo adotado pela Amazon, onde os serviços são oferecidos em vários níveis de

especificações, tais como alocação de memória e tipo de CPU, o valor cobrado é um preço

específico por unidade de tempo. Preço por unidade é normalmente aplicado a dados

transferidos ou ao uso de memória. Este modelo é mais flexível do que o de preço

diferenciado, já que permite aos usuários personalizarem a alocação de memória de seus

sistemas baseados nas necessidades de aplicações específicas. O modelo de assinatura de

serviços básicos é o modelo de preços mais amplamente utilizado, permitindo aos usuários

preverem suas despesas previamente na utilização de um serviço. Contudo, este modelo não

tem a precisão em cobrar dos usuários o que eles têm realmente utilizado (SOUZA, 2009).

2.1.6 Auto Serviço sob demanda

O usuário pode adquirir unilateralmente recurso computacional, como tempo de

processamento no servidor ou armazenamento na rede na medida em que necessite e sem

precisar de interação humana com os provedores de cada serviço. Dentro de uma nuvem, o

hardware e o software podem ser automaticamente reconfigurados e estas modificações são

apresentadas de forma transparente para os usuários, que possuem perfis diferentes e assim

podem personalizar os seus ambientes computacionais, por exemplo, a configuração de rede

para a definição de determinados privilégios, instalação de algum software (RUSCHEL,

2008).

Os usuários provisionam a utilização de recursos, tais como sistemas complementares

(capacidade de processamento, software, recursos de armazenamento) e da rede (MATHER,

2009).

A computação em nuvem é um sistema autônomo gerenciado de forma transparente

para os usuários. Hardware e software dentro de nuvens podem ser automaticamente

reconfigurados, orquestrados e estas modificações são apresentadas ao usuário como uma

Page 24: Introdução a cloud computing

24

imagem única. Essa autonomia é importante, pois reduz o custo de equipe de monitoramento

do sistema tanto no âmbito centralizado quanto distribuído (Birman et al. 2009). Comparados

com sistemas tradicionais, é possível identificar três fatores complexos: intervenção humana

limitada, alta alternância na carga de processamento e uma variedade de infra-estruturas

compartilhadas. Na maioria dos casos, não existem administradores de sistemas para ajudar os

desenvolvedores que acessam a nuvem, fazendo com que a plataforma seja automatizada ao

máximo e os usuários podem variar a carga de trabalho habitual, necessitando de uma infra-

estrutura de virtualização eficaz. A gerência também é importante no contexto do

desenvolvimento de tecnologia de auto-sintonia. Assim sendo, técnicas adaptativas e online

deverão ser desenvolvidas para tornar estes sistemas viáveis (Aboulnaga et al. 2009)

(SOUZA, 2009).

Os usuários não são mais confrontados com a escolha entre software obsoleto e

atualização de alta despesas. Quando o aplicativo é baseado na web, as atualizações

acontecem automaticamente e são disponibilizados na próxima vez que o usuário ocupar a

nuvem. Sempre que o usuário acessar um aplicação baseado na web, ele está recebendo a

versão mais recente, sem a necessidade de pagar ou fazer o download de uma atualização

(MILLER, 2009).

2.1.7 Alta velocidade no acesso de banda larga

Um componente crítico da nuvem é a rede banda larga, que oferece os meios para

contato entre os componentes e proporciona uma das diferenças substanciais a partir do

conceito de Utility Computing de trinta anos atrás. Acesso à banda larga é hoje amplamente

disponível, especialmente em áreas metropolitanas. O acesso generalizado sem fio (por

exemplo, Wi-Fi, celular, emergentes WiMAX) está disponível, e estabelece dispositivos

móveis como pontos de entrada para os recursos de TI da empresa e da nuvem (MATHER,

2009).

Uma vez que não se pode exigir que os sistemas que constituem uma nuvem sejam da

mesma tecnologia. Os recursos estão disponíveis através da rede e acessados por meio de

mecanismos que promovam o padrão utilizado por plataformas heterogêneas (por exemplo,

telefones celulares, laptops e PDAs). A interface de acesso a nuvem não obriga os usuários a

Page 25: Introdução a cloud computing

25

mudarem suas condições e ambientes de trabalho, como por exemplo, linguagens de

programação e sistema operacional. Já os softwares clientes instalados localmente para o

acesso à nuvem são 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 substituído por redes de armazenamento (SANs), que

reduziram os custos e permitiram muito mais flexibilidade em armazenamento no sistema

corporativo. SAN software gerencia a integração dos dispositivos de armazenamento e pode

independentemente alocar espaço de armazenamento sob demanda através de um número de

dispositivos (MATHER, 2009).

Vamos olhar mais para o que ocorre quando um computador não tem espaço para

armazenar e executar uma tonelada de aplicativos baseados em software. Com menos

programas sobrecarregando a memória do computador, os usuários verão melhor o

desempenho de seus computadores. Simplificando, computadores em um sistema de

computação em nuvem irão arrancar mais rápido e terão maior velocidade, porque eles têm

menos programas e processos carregados na memória (MILLER, 2009).

A nuvem oferece capacidade de armazenamento praticamente ilimitada. Considere

quando o seu computador está funcionando fora do espaço de armazenamento. Por exemplo,

um computador com 200 GB de disco rígido é muito pouco, quando comparado com as

centenas de petabytes (um milhão de gigabytes), disponíveis na nuvem. Tudo que é preciso

armazenar é possível, mas não podemos esquecer que a quantidade de dados armazenados

acarreta em valores pagos aos provedores de serviços de nuvem (MILLER, 2009).

O gerenciamento de dados é considerado um ponto crítico no contexto de computação

em nuvem. Os SGBDs relacionais não possuem escalabilidade quando milhares de sítios são

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 não existem soluções que combinem estes aspectos de

Page 26: Introdução a cloud computing

26

forma a melhorar o desempenho sem comprometer a consistência 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 serviços. Os serviços

em nuvem para dados oferecem APIs mais restritas do que os SGBD relacionais, com uma

linguagem minimalista de consulta e garantia de consistência limitada (Abouzeid et al. 2009).

Isso exige mais esforço de programação dos desenvolvedores, mas permite aos provedores

construírem serviços mais previsíveis e oferecerem SLA. De acordo com (Armbrust et al.

2009), a criação de um sistema de armazenamento que combina os diversos aspectos de

computação em nuvem, de forma a aumentar a escalabilidade, a disponibilidade e

consistência dos dados é um problema de pesquisa em aberto (SOUZA, 2009).

2.1.9 As Tecnologias de Virtualização

A virtualização é uma plataforma tecnológica fundamental para promover a

computação em nuvem. O termo virtualização refere-se à abstração de recursos

computacionais (CPU, armazenamento, memória, rede, pilha de aplicativos e banco de dados)

de aplicações e usuários finais que utilizam o serviço. Fornece a capacidade de reunir recursos

para ser disponibilizado e acessível a qualquer pessoa autorizada a utilizá-las através de

métodos padronizados (MATHER, 2009).

É um arquivo (geralmente chamado de uma imagem) que, quando executado, olha

para o usuário como uma máquina real. A infra-estrutura como serviço muitas vezes é

fornecido como uma imagem de máquina virtual que pode ser iniciado ou parado, conforme

necessário (AHRONOVITZ, 2010).

A virtualização é uma técnica de projeto fundamental para todas as arquiteturas em

nuvem. Em computação em nuvem se refere principalmente à virtualização de plataforma. A

virtualização 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 computação em

nuvem, estamos interessados em técnicas tais como virtualização, que permite que um único

Page 27: Introdução a cloud computing

27

servidor pode ser tratado como vários servidores virtuais, uma aglomeração, o que permite

múltiplos servidores serem tratados como um único servidor (MATHER, 2009).

O uso de nível de sistema operacional virtualizado ou de particionamento (como

LPARs, vPars, nPars, Sistema Dinâmico de domínios e assim por diante) nas arquiteturas em

nuvem pode ajudar a resolver alguns problemas do centro de segurança, privacidade e

questões regulatórias que poderiam dificultar a adoção de computação em nuvem (SUN,

2009).

Por exemplo, a virtualização do sistema operacional, como o previsto pelo Solaris

Containers torna possível manter um modelo de implantação 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 serviços com limites definidos por software e permitem

que muitos ambientes de execução privados possam ser criados em uma única instância do

Solaris OS. Cada ambiente tem sua própria identidade, separado do hardware subjacente, de

modo que se comporta como se estivesse rodando em seu próprio sistema. Isso torna possível

para reduzir as despesas administrativas, a complexidade do gerenciamento de múltiplos

sistemas operacionais e a melhor utilização, ao mesmo tempo (SUN, 2009).

2.1.10 Orientada a serviços

Abstração e acessibilidade são dois pontos chaves para atingir a concepção de serviço

orientado. Através da virtualização e outras tecnologias, a arquitetura subjacente é abstraída

sem se expor muito ao usuário. A abstração reduz tanto a necessidade do usuário para

aprender detalhes da arquitetura sobre a nuvem e do limiar de aplicação de desenvolvimento.

Ao mesmo tempo, os elementos chave da arquitetura subjacente podem ser simplesmente

acessados pelo usuário da nuvem. O usuário pode facilmente explorar parâmetros do sistema,

tais como o desempenho de processamento e capacidade de armazenamento. Em geral, de

acordo com o tipo de capacidade, os serviços de computação em nuvem são amplamente

divididos em três categorias: Infra-estrutura como Serviço (IaaS), Plataforma como Serviço

(PaaS), e Software como Serviço (SaaS). Então, o usuário não precisa se preocupar com a

estrutura para executar a aplicação: hardware, procedimentos de backup, controle de

Page 28: Introdução a cloud computing

28

segurança, manutenção, entre outros, ficam de forma abstrata para o cliente, porém quem é

responsável por esta infra-estrutura é o fornecedor de serviço (RUSCHEL, 2008).

Na maioria das vezes o usuário não 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 atenção na computação em nuvem. Um dos motivos que tem feito o modelo

alavancar é a melhoria contínua dos serviços de internet, hoje está cada vez mais fácil de obter

acesso e estar online em tempo integral. Isso faz com que novos serviços possam ser

centralizados na web (CAROLINY, 2010).

O trabalho corporativo e o compartilhamento de arquivos se tornam mais fáceis, uma

vez que todas as informações se encontram no mesmo lugar, ou seja, na nuvem (CAROLINY,

2010).

2.1.11 Pooling de Recursos

O provedor de recursos de computação é agrupado para atender vários consumidores

através de um modelo multi-tenant ou também conhecido como Multi-Inquilino, com

diferentes recursos físicos e virtuais atribuídos dinamicamente e novamente de acordo com a

demanda do consumidor. Há um senso de independência local em que o cliente geralmente

não tem nenhum controle ou conhecimento sobre a localização exata dos recursos

disponibilizados, mas pode ser capaz de especificar o local em um nível maior de abstração

(por exemplo, país, estado ou do data Center). Exemplos de recursos incluem o

armazenamento, processamento, memória, largura de banda de rede e máquinas virtuais

(RUSCHEL, 2008).

2.1.12 Serviço Medido

Os sistemas em nuvem automaticamente controlam e otimizam a utilização dos

recursos, alavancando a capacidade de medição em algum nível de abstração adequado para o

tipo de serviço (por exemplo, armazenamento, processamento, largura de banda, e contas de

usuários ativos). Uso de recursos pode ser monitorado, controlado e relatado a existência de

Page 29: Introdução a cloud computing

29

transparência para o fornecedor e o consumidor do serviço utilizado. Podemos monitorar e

controlar o uso de recursos, garantindo a transparência para o provedor e o usuário do serviço

utilizado. Utiliza-se a abordagem baseada em nível de serviço SLA (Services Level

Agreement) para garantir a qualidade de serviço (QoS). O SLA fornece informações sobre os

níveis de disponibilidade, funcionalidade, desempenho ou outros atributos do serviço como o

faturamento e até mesmo penalidades em caso de violação destes níveis (RUSCHEL, 2008).

A computação em nuvem reduz bastante os custos com hardware e manutenção de

software para organizações de todos os tamanhos. Em primeiro lugar, o hardware. Com

menos hardware (servidores a menos) necessários na organização, os custos de manutenção

são imediatamente reduzidos. Quanto à manutenção de software, devemos lembrar que todas

as aplicações em nuvem são baseados em outros lugares, portanto não há software em

computadores da organização para a equipe de TI manter (MILLER, 2009).

2.1.13 Service Level Agreement (SLA)

Um SLA é um contrato entre prestador de serviço e um consumidor, que especifica as

exigências dos consumidores e o empenho do provedor para eles. Normalmente, um SLA

inclui itens como tempo de atividade, privacidade, segurança e procedimentos de backup

(AHRONOVITZ, 2010).

A política é um termo geral para um procedimento operacional. Por exemplo, uma

política de segurança pode especificar que todos os pedidos para um serviço na nuvem

particular devem ser criptografada (AHRONOVITZ, 2010).

A governança diz respeito aos controles e processos que garantem que políticas serão

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 informação comunicada seja compreendida pelo sistema de

recepção. No mundo da computação em nuvem, isso significa a capacidade de escrever

Page 30: Introdução a cloud computing

30

código que trabalha com mais de um fornecedor de nuvem simultaneamente,

independentemente das diferenças entre os prestadores de serviços (AHRONOVITZ, 2010).

A interoperabilidade diz respeito à capacidade dos usuários de executar os seus

programas e os seus dados em diferentes nuvens e plataformas. Isso permite, por exemplo,

que as aplicações não fiquem restritas a somente uma nuvem. Essa é uma característica

amplamente desejável no ambiente da computação em nuvem. Ultimamente, muitas

aplicações têm sido desenvolvidas considerando esse fator. Porém, ainda há a necessidade da

implementação de padrões e interfaces para que essa portabilidade seja possível

(CHIRIGATI, 2009).

Empresas de desenvolvimento de software têm interesse que aplicações possam ser

transferidas para a nuvem de forma simples. Essas empresas também esperam que exista

interoperabilidade entre diferentes serviços de nuvem, como por exemplo, entre serviços de

armazenamento. As APIs da Amazon estão se tornando um padrão de fato para serviços sob

demanda [OpenCloud 2009]. Contudo, a quantidade de tecnologias envolvidas é muito

grande, tornando-se um desafio padronizar as diversas interfaces e serviços (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 computação em nuvem, este inclui ambientes de

software e hardware (físico e virtual) (AHRONOVITZ, 2010).

2.1.16 Integração

A integração é o processo de combinação de componentes na nuvem ou sistemas em

um sistema global. A integração entre os componentes baseados na nuvem e sistemas pode ser

complicado por questões como multiplas locações e regulamentos da federação dos governos

(AHRONOVITZ, 2010).

Page 31: Introdução a cloud computing

31

2.1.17 Disponibilidade

Dependendo do fornecedor, o usuário 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 serviço (RUSCHEL, 2008).

Os usuários da computação em nuvem possuem uma grande preocupação com a

questão da disponibilidade dos serviços. Eles esperam que as aplicações estejam sempre

disponíveis, ou seja, em execução durante todo o tempo, principalmente nos momentos

necessários. Esse tipo de problema pode ser prejudicial aos usuários quando os mesmos

possuem um ponto único de falha, ou seja, uma única nuvem com as suas aplicações e os seus

dados. Portanto, uma alternativa é ter mais de um prestador e, conseqüentemente, mais de

uma nuvem, o que permite aos usuários executar seus programas em uma nuvem enquanto a

outra apresenta problemas técnicos (CHIRIGATI, 2009).

2.1.18 Application Programming Interface (API)

É uma programação de aplicações interface é um contrato que diz para o

desenvolvedor escrever código para interagir com algum tipo de sistema. A API descreve a

sintaxe das operações apoiadas pelo sistema. Para cada operação, a API especifica as

informações que devem ser enviadas para o sistema, a informação de que o sistema irá enviar

de volta, e qualquer condições de erro que possam ocorrer (AHRONOVITZ, 2010).

2.1.19 Segurança

Um dos maiores desafios da computação em nuvem é a segurança, pois este modelo

utiliza a internet para disponibilizar seus serviços. Com isso, os usuários desconhecem tanto a

localização exata de seus dados quanto à fonte destes. Assim, devem existir formas para

impedir o acesso não autorizado a informações e que os dados sensíveis permaneçam

privados, pois estes serão processados fora da empresa. Questões de segurança devem ser

consideradas para prover a autenticidade, confiabilidade e integridade (SOUZA, 2009).

Page 32: Introdução a cloud computing

32

Um sistema é dito confiável se ele não falha com freqüência e, mais importante, se ele

não perde os dados ao falhar (SUN 2009a). As aplicações desenvolvidas para a computação

em nuvem devem ser confiáveis, ou seja, elas devem possuir uma arquitetura que permita que

os dados permaneçam intactos mesmo que haja falhas ou erros em um ou mais servidores ou

máquinas virtuais sobre os quais essas aplicações estão decompostas. Essa característica está

associada à realização de cópias de segurança dos dados. O armazenamento dessas cópias

deve ser feito em local seguro para que, caso haja alguma falha nas aplicações e elas percam

os dados, estes, ou pelo menos uma parte deles, possam ser recuperados (CHIRIGATI, 2009);

A disponibilidade de serviços permite os usuários acessar e utilizar a nuvem onde e

quando quiserem. Como se trata da internet pode ocorrer atrasos e sistemas indisponíveis. Os

ambientes de computação em nuvem devem possuir alta disponibilidade. Portanto, estes

podem utilizar técnicas de balanceamento de carga dinâmico e composição de nuvens de

forma a atender as necessidades dos usuários. Por exemplo, podem-se construir aplicações

altamente disponíveis com a implantação de duas ofertas de nuvem diferentes. Caso uma das

nuvens falhe, a outra nuvem continua a apoiar a disponibilidade das aplicações (SOUZA,

2009).

O fato de juntar todas estas tecnologias, que evoluíram de forma independente, geram

muitos problemas que ainda precisam ser resolvidos. A computação em nuvem é uma

tecnologia recente e esta em contínua evolução por isso ainda veremos muitas mudanças e

transformações (TAURION, 2009).

Um ponto adicional de atenção é a questão da plataforma de computação em nuvem

ser aberta ou proprietária (é portanto, fechada). Até o momento, as ofertas de nuvem, como o

Amazon Web Services, Salesforce e o Google Docs, são proprietárias. Isto significa que, por

exemplo, só pode-se usar o Google Docs na nuvem do Google e não em nenhuma outra

nuvem, como as nuvens da Yahoo ou Microsoft. Esta limitação às tecnologias proprietárias

gera o aprisionamento do usuário, restringindo sua liberdade de migrar de uma nuvem para

outra (VELTE, 2010).

Ainda não surgiram propostas de nuvens abertas que permitam a portabilidade de

aplicações entre os diversos fornecedores de serviços de computação em nuvem. Entretanto,

Page 33: Introdução a cloud computing

33

recentemente começaram a surgir alguns movimentos em direção a um padrão aberto para

interoperabilidade entre nuvens e foi, inclusive, criado um manifesto, chamado “OpenCloud

Manifesto” (www.opencloudmanifesto.org) que se propõe a aglutinar empresas em torno da

especificação de um padrão aberto para a computação em nuvem (TAURION, 2009).

O OpenCloud Manifesto estabelece um conjunto de princípios, denominados

princípios para nuvens abertas, que asseguram que as organizações que usarem nuvens

computacionais não ficarão restritas a padrões fechados, mas terão liberdade de escolha,

flexibilidade e abertura para não ficarem aprisionadas a uma nuvem. Embora a computação

em nuvem traga claros benefícios, existe o potencial de aprisionamento e perda de

flexibilidade, caso padrões abertos não sejam adotados. Dentro de dois meses após o seu

anúncio, mais de 250 organizações assinaram como patrocinadores. Esta atividade do grupo é

feito à luz de seis princípios do Open Cloud Manifesto, os quais estão descritos a seguir:

(AHRONOVITZ, 2010)

1. Os fornecedores de serviços em nuvem devem trabalhar juntos para garantir

que os desafios para adoção da nuvem (segurança, integração, portabilidade,

interoperabilidade, governança / gestão, medição / monitoramento) sejam

abordados através de colaboração aberta e ao uso adequado de normas.

2. Os fornecedores de serviços em nuvem não devem usar sua posição no

mercado em forma de bloqueio de clientes em suas plataformas específicas e

não devem limitar a sua escolha de fornecedores.

3. Os prestadores de serviço na computação em nuvem devem usar e adotar as

normas existentes, sempre que adequadas. A indústria de TI tem investido

fortemente em padrões existentes e as normas das organizações, não há

necessidade de duplicar ou reinventar elas.

4. Quando novos padrões (ou a adaptação às normas existentes) são

necessários, temos de ser criteriosos e pragmáticos para evitar a criação de

muitas normas. Devemos garantir que as normas promovam a inovação e

não inibi-la.

5. Qualquer esforço da comunidade em torno da nuvem aberta deve ser

impulsionada por necessidades do cliente, não apenas as necessidades

Page 34: Introdução a cloud computing

34

técnicas dos provedores de computação em nuvem, e devem ser verificados

em relação às necessidades reais dos clientes.

6. Os padrões de computação em nuvem em organizações, grupos de

advocacia e nas comunidades devem trabalhar em conjunto e coordenado,

certificando-se que os interesses não estão em conflito.

De forma que o modelo de computação em nuvem é composto, tipicamente, pelas

tecnologias mostradas anteriormente, três modelos de implantação na nuvem e três modelos

de serviços, conforme serão descritos nas próximas seções.

Page 35: Introdução a cloud computing

35

3. Modelos de Implantação de Computação em Nuvem

Tratando-se do acesso a da disponibilidade de ambientes de computação em nuvem,

tem-se tipos diferentes de implantação. A restrição ou abertura de acesso depende do processo

de negócios, do tipo de informação e do nível de visão desejado. Pode-se perceber que certas

empresas não desejam que todos os usuários possam acessar e utilizar determinados recursos

no seu ambiente de computação em nuvem. Dessa forma, surge a necessidade da criação de

ambientes mais restritos, onde somente alguns usuários devidamente autorizados possam

utilizar os serviços providos. Então neste sentido, podemos de afirmar que existem três tipos

de ofertas de computação em nuvem (TAURION, 2009).

O termo nuvem é uma metáfora usada para a internet e é uma representação simplificada da complexidade que esta se encontra, onde dispositivos são interconectados formando a internet. Nuvens privadas e públicas são subconjuntos da internet e são definidas com base na relação do usuário com a empresa. Nuvens privadas e nuvens públicas também podem ser referidas como nuvens internas ou externas, a diferenciação é baseado na relação da nuvem com a empresa (MATHER, 2009).

Os conceitos de nuvens públicas e privadas são importantes porque suportam a

computação em nuvem, que permite o provisionamento da dinâmica, são escaláveis e

possuem recursos virtualizados através da internet. Os usuários finais que utilizam os serviços

oferecidos via computação em nuvem pode não ter conhecimento, experiência, ou controle

sobre a infra-estrutura tecnológica que os suporta (MATHER, 2009).

As ofertas são classificadas pelo grau de compartilhamento entre os setores de uma

empresa, que pode dividir a nuvem em três tipos básicos de implantação: público, privado e

híbrido. Como mostra a Figura 2.

Page 36: Introdução a cloud computing

36

Figura 2. Tipos de Nuvens (AMRHEIN, 2009)

3.1 Nuvens Públicas

Em termos simples, serviços de nuvem pública são caracterizados por estar disponível

para os clientes de um provedor de serviços terceirizado através da internet. O termo

"público" não significa sempre livre, mesmo que ele possa ser gratuito ou razoavelmente

barato de usar. Uma nuvem pública não significa que os dados de um usuário é publicamente

visível, fornecedores de nuvem pública normalmente fornecem um controle de acesso e

mecanismo para seus usuários. Nuvens públicas oferecem um custo, elástico efetivo para

implementar meios de soluções (AHRONOVITZ, 2010).

São serviços em nuvem fornecidos por terceiros (fornecedor). Elas existem além do

firewall da empresa e são completamente hospedadas e gerenciadas pelo provedor da nuvem

(AMRHEIN, 2009).

Uma nuvem pública pode estar sendo hospedada, operada e gerida por um fornecedor

terceirizado de um ou mais centro de dados. O serviço é oferecido a múltiplos clientes sobre

uma infra-estrutura em comum, ver na Figura 3 (MATHER, 2009).

Page 37: Introdução a cloud computing

37

Figura 3. Nuvem Pública (MATHER, 2009)

Taurion (2009), diz que estas nuvens públicas podem oferecer às empresas um acesso

rápido a infra-estruturas computacionais, com custos mínimos. Entretanto, alguns desafios

referentes à segurança, confiabilidade e portabilidade com outras nuvens são reais e precisam

ser endereçados corretamente.

As nuvens públicas tentam fornecer aos consumidores elementos de TI sem

problemas. Seja software, infra-estrutura de aplicativo ou infra-estrutura física, o provedor de

nuvem assume as responsabilidades de instalação, gerenciamento, fornecimento e manutenção

(AMRHEIN, 2009).

No modelo de implantação público, a infra-estrutura de nuvens é disponibilizada

para o público em geral, sendo acessado por qualquer usuário que conheça a localização do

serviço. Neste modelo de implantação não podem ser aplicadas restrições de acesso quanto ao

gerenciamento de redes, e menos ainda, aplicar técnicas de autenticação e autorização

(SOUZA, 2009).

Um dos benefícios das nuvens públicas é que elas podem ser muito maiores do que

uma nuvem privada, por exemplo, já que elas permitem uma maior escalabilidade dos

recursos. Essa característica evita a compra de equipamentos adicionais para resolver alguma

necessidade temporária, deslocando os riscos de infra-estrutura para os prestadores de infra-

estrutura da nuvem. Há ainda a possibilidade de destinar algumas porções da nuvem pública

Page 38: Introdução a cloud computing

38

para o uso exclusivo de um único usuário, criando o chamado datacenter privado virtual, que

provê a esse usuário uma maior visibilidade de toda a infra-estrutura (CHIRIGATI, 2009).

3.2 Nuvens Privadas

Taurion (2009) diz que nuvens privadas, também são chamadas de nuvens

empresariais, correspondem ao uso do conceito de nuvem computacional aplicado aos

servidores localizados internamente no firewall da empresa e são gerenciadas pelas mesmas.

As nuvens privadas são construídas exclusivamente para um único usuário.

Diferentemente de um datacenter privado virtual, a infra-estrutura utilizada pertence ao

usuário, e, portanto, ele possui total controle sobre como as aplicações são implementadas na

nuvem. Uma nuvem privada é, em geral, construída sobre um datacenter privado

(RUSCHEL, 2008).

Nuvens privadas diferem das nuvens públicas em que a rede, computação e

armazenamento de infra-estrutura associada com nuvens privadas é dedicado a uma única

organização e não é compartilhado com outras organizações. Como tal, uma variedade de

padrões de nuvens privadas surgiram: (MATHEL, 2009).

- Dedicado

Nuvens privadas hospedada em um centro de dados do cliente ou em uma instalação

que são operadas por departamentos internos de TI.

- Comunidade

Nuvens privadas localizadas nas instalações de terceiros, gerenciados e operados por

um vendedor que está vinculado por SLAs de costume e cláusulas contratuais, com segurança

e requisitos de conformidade.

No modelo de implantação comunidade ocorre o compartilhamento por diversas

empresas de uma nuvem, sendo esta suportada por uma comunidade específica que partilhou

seus interesses, tais como a missão, os requisitos de segurança, política e considerações sobre

flexibilidade. Este tipo de modelo de implantação pode existir localmente ou remotamente e

pode ser administrado por alguma empresa da comunidade ou por terceiros. Os membros que

Page 39: Introdução a cloud computing

39

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 implantação são empregados políticas de acesso aos serviços. As

técnicas utilizadas para prover tais características podem ser em nível de gerenciamento de

redes, configurações dos provedores de serviços e a utilização de tecnologias de autenticação

e autorização. Um exemplo deste modelo seria o cenário de uma universidade e seus

departamentos. A universidade pode estar interessada em disponibilizar serviços para seus

departamentos e outros órgãos desta instituição não devem ter acesso a esses serviços

(RUSCHEL, 2008).

As nuvens privadas oferecem vantagens com relação à variedade pública. O controle

com granularidade mais baixa com relação a diversos recursos que formam a nuvem fornece a

uma empresa todas as opções de configuração disponíveis. Além disso, as nuvens privadas

são ideais quando o tipo de trabalho que está sendo realizado não é prático para a nuvem

pública, devido a preocupações com segurança e regulamentação (AMRHEIN, 2009).

Caso o usuário 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 físico. Em uma nuvem pública, não há essa

necessidade, uma vez que, como os recursos são facilmente escaláveis, basta o usuário

reservar uma quantidade maior deles. Devido a essas diferenças, diz-se que as nuvens

públicas são mais adequadas para aplicações temporárias, enquanto que as nuvens privadas

são um ambiente mais apropriado a aplicações permanentes que demandam níveis específicos

de qualidade de serviço e de localização dos dados (CHIRIGATI, 2009).

3.3 Nuvens Híbridas

A nuvem híbrida ou mista se trata de uma combinação de nuvens públicas e privadas.

Essas nuvens seriam geralmente criadas pela empresa e as responsabilidades de

Page 40: Introdução a cloud computing

40

gerenciamento seriam divididas entre a empresa e o provedor de nuvem pública. A nuvem

híbrida usa serviços que estão no espaço público e privado (AMRHEIN, 2009).

Nesse sentido, uma empresa pode determinar os objetivos e necessidades de serviços e

obter os mesmos da nuvem pública ou privada, conforme apropriado. Uma nuvem híbrida

bem construída poderia atender processos seguros críticos para a missão, como o recebimento

de pagamentos de clientes, assim como aqueles secundários para os negócios, como

processamento de folha de pagamento de funcionários (AMRHEIN, 2009).

Com uma nuvem híbrida, as organizações podem executar serviços que não são

necessariamente exigidos pela empresa, ou seja, que possam ser repassadas para terceiros,

hospedando eles em uma nuvem pública e mantendo os aplicativos principais e dados

sensíveis da empresa em casa, na nuvem privada, ver Figura 4 (MATHER, 2009).

Figura 4. Nuvem Híbrida (MATHER, 2009)

A nuvem híbrida pode ter sua configuração descrita pela combinação de um

dispositivo local como um computador conectado a uma nuvem de serviços. Também pode

ser descrita com uma configuração que combina recursos virtuais e físicos como, por

exemplo, um ambiente virtual que requer servidores físicos, roteadores ou outro tipo de

hardware como um firewall ou um filtro de spam. (VIEIRA, 2009).

Para Paul Korzeniowski “o modelo de nuvem híbrida tenta unir o modelo de datacenter local convencional com a capacidade variável que esses modelos de nuvem oferecem. Uma empresa pode comprar capacidade de computação sob demanda para lidar com tráfego de web em uma grande promoção ou por uma iniciativa de pesquisa sob demanda. Ao invés de comprar hardware que roda com uma capacidade bem mais baixa na maioria das vezes, a

Page 41: Introdução a cloud computing

41

abordagem híbrida promete permitir que as empresas rodem seus próprios servidores com utilização mais alta, comprando capacidade de fluxo sob demanda” (DUARTE, 2009).

É válido destacar que as nuvens híbridas introduzem a complexidade de determinar a

maneira como as aplicações são distribuídas entre nuvens públicas e privadas. A relação entre

os dados e os recursos de processamento, por exemplo, deve ser considerada. Se uma

aplicação possui uma grande quantidade de dados, o seu processamento em uma nuvem

pública pode não ser favorável, já que passar esses dados de sua nuvem privada para uma

nuvem pública pode ser muito custoso (TAURION, 2009).

3.4 Comparativo entre os Modelos de Nuvens

Nuvem é uma palavra que está hoje no vocabulário de TI das maiores empresas

brasileiras. Mas questões como segurança e disponibilidade fazem com que as companhias

adotem uma dose extra de cautela. Tanto que o conceito ganhou algumas variações: existem

as nuvens públicas, as nuvens privadas e as nuvens híbridas. No primeiro caso, estão grandes

provedores de serviços – como a Amazon e o Google – cujos equipamentos, infra-estrutura ou

aplicações são compartilhados por milhares de clientes em todo o mundo, por intermédio da

internet. Já a nuvem privada é a que fica dentro do ambiente protegido (firewall) da empresa e

tem o acesso restrito, geralmente aos seus funcionários e parceiros de negócio (SPOSITO,

2009).

As nuvens públicas são as mais conhecidas e possuem um fácil acesso. Sendo que, em

alguns casos a sua utilização pode ser gratuita ou não, isto vai depender do tipo de serviço que

o usuário vai precisar.

Nestas nuvens públicas, os dados dos usuários são armazenados em provedores de

serviço, os quais são terceirizados, estes vão ser responsáveis pelo gerenciamento correto

destes dados, pelas instalações, pela manutenção e fornecimento de recursos de infra-estrutura

quando for solicitado pelo usuário.

As nuvens privadas são elaboradas para atender somente uma organização. Sendo

assim, esta tem total controle sobre as operações na nuvem.

Page 42: Introdução a cloud computing

42

Então podemos perceber que com uma nuvem híbrida, uma empresa tem sua nuvem

privada, com serviços em execução no seu firewall. No entanto, com as nuvens híbridas, é

possível o usuário acessar os dados armazenados fora do local da empresa através da nuvem

pública.

Este modelo de nuvem híbrida é útil quando uma organização quer ter o controle sobre

o armazenamento de dados, mas precisa de espaço adicional para arquivar os seus dados.

Então, a empresa vai ter a segurança e a supervisão da nuvem privada em suas redes, mas

pode armazenar os dados em excesso em uma nuvem escalável e sob demanda que é a nuvem

pública.

Com base em todas estas concepções mostradas por diversos autores, vamos

estabelecer um quadro comparativo das principais diferenças entre os modelos de nuvens

pública e privada.

NUVEM PÚBLICA NUVEM PRIVADA

- Vários usuários podem usá-las - São feitas para somente um usuário - Quem possui o controle é o provedor de serviços, pois é responsável pelo gerenciamento

- A organização é quem possui o controle total sobre as aplicações na nuvem

- Não pode ser implementadas políticas de acesso, mas é possível destinar algumas porções de nuvem pública para o uso exclusivo de um único usuário, criando um datacenter privado virtual, que provê ao usuário mais visibilidade de toda a infra-estrutura

- Pode ser implementadas políticas de acesso ao serviço (gerenciamento de rede, configuração dos provedores de serviço, utilização da tecnologia de autenticação e autorização)

- Recursos facilmente escaláveis e consequentemente maior escalabilidade

- Se o usuário precisar aumentar os recursos utilizados em sua nuvem privada ele deve adquirir novos equipamentos a sua infra-estrutura, aumentando assim os custos para manter sua nuvem

- Aplicações Temporárias - Aplicações Permanentes

Tabela 1. Comparação entre os Modelos de Nuvem Pública e Nuvem Privada

Page 43: Introdução a cloud computing

43

4. Modelos de Serviços na Computação em Nuvem No modelo de software tradicional as aplicações destes softwares são baseados em um

modelo com grandes custos de licenciamento inicial e anual e custos de suporte. Aumentar o

número de usuários pode aumentar o custo da base do pacote, devido a necessidade de

implementações de servidores adicionais de hardware e suporte de TI. Os custos do

licenciamento são muitas vezes com base em métricas que não estejam diretamente alinhados

com o uso (tipo de servidor, o número de CPUs, etc, ou alguma característica física) e não são

virtuais. Um pacote de software empresarial típico requer a implantação de hardware,

servidores e backup de rede e provisionamento para acomodar o número de usuários dentro e

fora dos campos. Arquitetura de segurança também é tributada em um esforço para proteger

este valioso recurso contra acesso não autorizado. Então nos softwares tradicional as

aplicações tendem a ser altamente customizável, que tem um custo em dólares e mão de obra

(MATHER, 2009).

Existem muitos tipos de serviços oferecidos pela computação e nuvem. Esta

diversidade de serviços é muito apropriada, pois permite que a empresa adquira os serviços

mais adequados às suas necessidades (TAURION, 2009).

Então, a arquitetura da computação em nuvem pode ser divida em três camadas

abstratas a mais baixa das camadas é a de infra-estrutura como serviço (IaaS), a segunda

camada é a de plataforma como serviço (PaaS) e última, a camada de software como serviço

(SaaS). Cada camada pode possuir seu gerenciamento ou monitoramento de forma

independente das outras camadas, melhorando a flexibilidade, reusabilidade e escalabilidade

no sentido de substituição ou adição de recursos computacionais sem afetar as outras camadas

(SOUZA, 2009).

Pode-se observar na Figura 5 as camadas de aplicações, de plataforma e de infra-

estrutura (RUSCHEL, 2008).

Page 44: Introdução a cloud computing

44

Figura 5. Os principais atores que estão relacionados com as camadas de aplicação, de plataforma e de intra-estrutura são, respectivamente, os usuários das nuvens, os prestadores de serviços e os

prestadores de infra-estrutura (CHIRIGATI, 2009).

De acordo cam a Figura 5, o prestador de serviços oferece o serviço para o

consumidor. A tarefa real do provedor varia dependendo do tipo de serviço:

• Para software como serviço (SaaS), o provedor instala, gerencia e mantém o

software. Independentemente disso, o consumidor não tem acesso à infra-

estrutura, eles podem acessar somente os pedidos.

• Para a plataforma como serviço (PaaS), o provedor gerencia a infra-estrutura

para a plataforma da nuvem, normalmente varia para o tipo de aplicação. O

consumidor não pode acessar a infra-estrutura sob o plataforma.

• Para a infra-estrutura como serviço (IaaS), o provedor mantém o

armazenamento, banco de dados de fila de mensagens, ou outro middleware,

ou o ambiente de hospedagem para máquinas virtuais. O consumidor utiliza o

serviço como se fosse um disco banco de dados, unidade de fila de mensagem,

mas eles não podem acessar o infra-estrutura que o hospeda.

No diagrama de prestador de serviços, 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 máquina

Page 45: Introdução a cloud computing

45

virtual que hospeda a infra-estrutura sob a nuvem. Os recursos virtualizados e imagens

incluem os serviços básicos de computação em nuvem, como processamento, armazenamento

de energia e middleware. As imagens virtuais controlados pelo gerenciador VM (Virtual

Machine) incluem tanto as próprias imagens como os metadados necessários para gerenciá-los

(AHRONOVITZ, 2010).

É crucial para as operações do prestador de serviços é a camada de gestão. Em um

nível baixo de gestão exige a medição para determinar quem usa os serviços e que medida, o

provisionamento para determinar como os recursos são alocados para consumidores e

monitoramento para acompanhar o status do sistema e seus recursos. Em um nível superior, a

gestão envolve cobrança para recuperar os custos, planejamento de capacidade para garantir

que as exigências dos consumidores serão atingidos, gestão de SLA para garantir que os

termos de serviço acordado entre o fornecedor e o consumidor sejam respeitados e relatórios

para os administradores (AHRONOVITZ, 2010).

Segurança se aplica a todos os aspectos das operações do prestador de serviços. Abrir

normas aplicáveis às operações do provedor também. Um conjunto de normas bem

arredondadas, normas para simplificar as operações dentro do provedor e interoperabilidade

com outros prestadores de serviços (AHRONOVITZ, 2010).

Page 46: Introdução a cloud computing

46

Figura 6. Níveis de divisão da computação em nuvem segundo a ontologia proposta (AHRONOVITZ, 2010).

Para entender melhor a computação em nuvem, pode-se classificar os atores dos

modelos de acordo com os papéis desempenhados (Marinos e Briscoe, 2009). A Figura 7

ilustra estes papéis (SOUZA, 2009).

Page 47: Introdução a cloud computing

47

Figura 7. Papéis na Computação em Nuvem (SOUZA, 2009)

O provedor é responsável por disponibilizar, gerenciar e monitorar toda a estrutura

para a solução de computação em nuvem, deixando os desenvolvedores e usuários finais sem

esses tipos de responsabilidades. Para isso, o provedor fornece serviços nos três modelos de

serviços. Os desenvolvedores utilizam os recursos fornecidos e provêem serviços para

usuários finais. Esta organização em papéis ajuda a definir os atores e os seus diferentes

interesses. Os atores podem assumir vários papéis ao mesmo tempo de acordo com os

interesses, sendo que apenas o provedor fornece suporte a todos os modelos de serviços

(SOUZA, 2009).

Do ponto de vista de interação entre os três modelos de serviços, 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 execução dos serviços

implementados, a serem disponibilizados na visão de SaaS (SOUZA, 2009).

Então em ambientes de computação em nuvem pode-se ter três modelos de serviços.

Estes modelos são importantes, pois eles definem um padrão arquitetural para soluções em

computação em nuvem. A Figura 8 exibe estes modelos de serviços (Armbrust et al. 2009)

(SOUZA, 2009).

Page 48: Introdução a cloud computing

48

Figura 8. Modelos de Serviços (SOUZA, 2009)

4.1 Infra-estrutura como Serviço (IaaS)

O termo original foi criado em março de 2006 pelo economista Nicholas Carr e

chamava-se Hardware as a Service (HaaS), mas no final de 2006 começou a ser chamado de

pelas empresas como Infra-estrutura como Serviço (IaaS) e hoje é assim comumente

denominado. A idéia básica é que o usuário, 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 computação em

nuvem não reserva um determinado recurso ao contratante, e sim aloca de forma dinâmica e

automática os seus recursos para atender aos requisitos de demanda do cliente (TAURION,

2009).

A capacidade prevista para o usuário é a prestação de transformação, armazenamento,

redes e outros recursos computacionais fundamentais que o usuário seja capaz de implantar e

executar programas arbitrários, que podem incluir sistemas operacionais e aplicativos. O

usuário não 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).

Page 49: Introdução a cloud computing

49

A mais baixa das camadas é a de infra-estrutura (IaaS), através dela que os prestadores

de infra-estrutura disponibilizam os serviços de rede e armazenamento da nuvem. Nesta

camada temos os datacenters, clusters, desktops e outros recursos de hardware, podendo ter

recursos heterogêneos (RUSCHEL, 2008).

Portanto, se o usuário contrata uma solução de IaaS, contrata uma infra-estrutura

capaz de executar e hospedar seu software sobre o sistema operacional que o usuário escolher,

instalar, administrar e gerenciar. Maior controle igual maior responsabilidade. (CAMBIUCCI,

2010).

A IaaS traz os serviços oferecidos na camada de infra-estrutura, nestes serviços

podemos incluir servidores, roteadores, sistemas de armazenamento de dados, bancos de

dados e outros recursos de computação. O IaaS traz algumas características, como uma

interface única para administração da infra-estrutura, a aplicação API para interação 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 técnicas de

virtualização de recursos de computação. Esta infra-estrutura pode escalar dinamicamente,

aumentando ou diminuindo os recursos de acordo com as necessidades das aplicações

(SOUZA, 2009).

O modelo IaaS é semelhante a Utility Computing, em que a idéia básica é oferecer

serviços de computação. Ou seja, você paga pela quantidade de poder de processamento,

espaço em disco, o que você realmente consumir. IaaS é tipicamente um serviço associado

com a computação em nuvem e se refere a serviços online em que é abstraido do usuário os

detalhes da infra-estrutura, incluindo os recursos de computação física, localização,

particionamento de dados, escalonamento, segurança, backup, e assim por diante. Na

computação em nuvem, o fornecedor do serviço tem o controle completo da infra-estrutura.

(PIGATTO, 2009)

O nível de infra-estrutura de software fornece recursos fundamentais para camadas de

nível superior, permitindo a criação de novos ambientes de software ou novas aplicações. De

Page 50: Introdução a cloud computing

50

acordo com Youseff (2008), este nível pode ser organizado em: recursos computacionais,

armazenamento de dados e comunicação. (PIGATTO, 2009)

a) Recursos computacionais: Neste nível, máquinas virtuais (virtual machines) são

a melhor maneira de oferecer recursos computacionais, já que oferecem ao usuário

maior flexibilidade, uma vez que ele normalmente possui permissão total para o

uso da máquina virtual, estando apto a personalizar o software e obter maior

performance e eficiência.

b) Armazenamento de Dados: O segundo recurso de infra-estrutura é o

armazenamento de dados, o qual permite ao usuário armazenar seus dados em

discos remotos e acessá-los a qualquer momento e de qualquer lugar. Este serviço

é comumente conhecido como DaaS – Data-Storage as a Service

(Aramazenamento de Dados como Serviço).

c) Comunicação: Uma vez que a necessidade de garantia de QoS – Quality of

Service (Qualidade de Serviço) para uma rede de comunicação cresce ao tratar-se

de um sistema em nuvem, a comunicação se torna um componente vital da infra-

estrutura em questão. Em consequência disto, estes sistemas possuem a obrigação

de fornecer certas capacidades de comunicação “orientada a serviço”,

configuráveis, programáveis, previsíveis e confiáveis.

4.2 Database-as-a-Service

Taurion (2009) diz que banco de dados são essenciais a qualquer negócio hoje em dia.

Não é incomum vermos empresas com centenas ou milhares de diferentes bancos de dados,

muitas deles críticos às operações, suportados por diversos softwares de gerenciamento de

banco de dados, os SGBD. Cada banco de dados colocado em operação significa um aumento

nas tarefas de gestão, que envolvem integração, segurança, disponibilidade e desempenho

adequados. E conseqüentemente maiores os custos. Fica claro que esta proliferação de banco

de dados aumenta bastante a pressão por meios mais eficazes de gerenciamento.

Diante deste contexto, nada mais natural que o conceito de computação em nuvem seja

também uma alternativa à problemática do banco de dados. Surge então o modelo Database-

Page 51: Introdução a cloud computing

51

as-a-Service (DaaS) provendo banco de dados por demanda. Com o DaaS uma empresa usa

uma nuvem para armazenar e acessar informações sem se preocupar com a infra-estrutura que

vai suportar os banco de dados. Neste modelo o usuário paga pelo volume de dados

armazenado e pela quantidade de dados transmitidos de e para nuvem. Os custos de infra-

estrutura e suporte ficam a cargo do provedor da nuvem que mantém o DaaS (TAURION,

2009).

Ainda, conforme Taurion (2009), o modelo DaaS pode ser implementado por três

arquiteturas básicas.

a) Modelo de Container

Neste modelo o provedor fornece um container que representa uma coleção de

entidades heterogêneas, da mesma maneira que um banco de dados possui múltiplas tabelas.

Os programas acessam essas entidades nos containers. Esse modelo se adapta bem a empresas

de pequeno porte. Um exemplo desse modelo é o serviço SimpleDB oferecido pela Amazon.

b) Modelo de cópia compartilhada

Neste modelo uma mesma cópia do software de banco de dados residente na nuvem é

compartilhada por vários clientes, embora cada um deles possua seu próprio espaço de dados

(tabelas). O compartilhamento é do software de banco de dados e da infra-estrutura

computacional.

c) Modelo de cópia exclusiva

Neste modelo cada cliente tem sua própria cópia do software de banco de dados

residente na nuvem. A diferença em relação 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 surgirão outras alternativas. Hoje existe algumas ofertas pioneiras como o

SimpleDB da Amazon, o EnterpriseDB e MySQL, oferecidos em cima da nuvem Amazon.

Page 52: Introdução a cloud computing

52

Além disso, empresas tradicionais de banco de dados como a Oracle, IBM e Microsoft já

começaram a endereçar este mercado (TAURION, 2009).

O Google também entra neste serviço com a oferta BigTable, um componente do

Google AppEngine. O BigTable é um ambiente de banco de dados especializado, com

aplicações escritas em Python, que usa o próprio Google File System (GFS) como método de

armazenamento. Foi projetado para trabalhar com imensos volumes de dados, distribuídos em

vários nodos GFS. Na prática, utiliza o modelo container. Não suporta o modelo relacional e é

voltado para massiva base de dados (TAURION, 2009).

4.3 Plataforma como Serviço (PaaS)

A PaaS oferece uma infra-estrutura de alto nível de integração para implementar e testar

aplicações na nuvem. O usuário que é assinante em uma plataforma hospedada remotamente,

não 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 aplicações implantadas e, possivelmente, as configurações de aplicações

hospedadas nesta infra-estrutura. A PaaS fornece um sistema operacional, linguagens de

programação e ambientes de desenvolvimento para as aplicações, auxiliando a implementação

de softwares, já que contém ferramentas de desenvolvimento e colaboração entre

desenvolvedores (SOUZA, 2009).

Em geral, os desenvolvedores dispõem de ambientes escaláveis, mas eles têm que

aceitar algumas restrições sobre o tipo de software que se pode desenvolver. Do ponto de

vista do negócio, a PaaS permitirá aos usuários utilizarem serviços de terceiros, aumentando o

uso do modelo de suporte no qual os usuários se inscrevem para solicitações de serviços de TI

ou de resoluções 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 serviço (PaaS) esta acima da camada de infra-estrutura

e provê os serviços para que as aplicações possam ser desenvolvidas, implementadas, testadas

e trazidas para o ambiente da nuvem pelos prestadores de serviços. Nesta camada de

desenvolvimento os usuários finais não têm acesso, sendo ela destinada aos usuários mais

Page 53: Introdução a cloud computing

53

experientes, ou seja, os desenvolvedores das soluções para computação em nuvem

(RUSCHEL, 2008).

De acordo com a proposta de Youseff (2008), neste segundo nível se encontra o

ambiente de software. Este nível é utilizado por desenvolvedores de aplicações para as

nuvens, que implementam e implantam suas aplicações diretamente na nuvem. Os provedores

destes serviços nas nuvens oferecem aos desenvolvedores um conjunto definido de APIs, as

quais facilitam a interação entre o ambiente e as aplicações em nuvem, assim como o aumento

da agilidade de implantação e o suporte à escalabilidade necessárias para tais aplicações. Um

exemplo deste tipo de serviço é o Google App Engine, o qual oferece um ambiente de

desenvolvimento nas linguagens de programação Python e Java e APIs que permitem

aplicações interagirem com a nuvem do Google (PIGATTO, 2009).

Os prestadores de serviços que produzem um PaaS, por exemplo, podem construir essa

plataforma considerando a integração de um sistema operacional, de um mediador, de

softwares de aplicação e de um ambiente de desenvolvimento. Os prestadores de serviços que

usarão essa plataforma vêem-na como uma Interface de Programação de Aplicativos, ou API.

Eles irão interagir com a plataforma através da API sem ter a preocupação de gerenciar e

escalar os recursos, o que torna o processo de desenvolvimento de aplicações mais rápido e

simples. Por outro lado, esses prestadores de serviços 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 necessários para construir aplicações e serviços

completos a partir da internet, sem precisar baixar ou instalar software. A arquitetura PaaS

oferece serviços que incluem design, desenvolvimento, testes, implantação e hospedagem.

Outros serviços oferecidos é a colaboração em equipe, integração de serviços web, banco de

dados integrados, segurança, escalabilidade, gerenciamento de estado, armazenamento e

controle de versão (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 não ser capaz de fazer isso ou você vai ter que pagar um preço elevado.

Page 54: Introdução a cloud computing

54

Além disso, se o provedor sai do negócio, suas aplicações e seus dados serão perdidos.

(VELTE, 2009).

4.4 Software como Serviço (SaaS)

Em sua essência o SaaS, trata-se de uma forma de trabalho onde o software é

oferecido como serviço, assim, o usuário não precisa adquirir licenças de uso para instalação

ou até mesmo comprar computadores ou servidores para executá-lo. Nessa modalidade, paga-

se um valor periódico, somente pelos recursos utilizados e/ou pelo tempo de uso (PRADO,

2010).

O modelo SaaS é um modelo que entrega software como um serviço, de forma

diferente do modelo tradicional, no qual a empresa adquire uma licença de uso e instala o

software nos seus próprios servidores. Este modelo transforma a maneira como o software irá

ser comercializado. Com o SaaS, também não são mais necessários os contratos de

manutenção, pois essas atividades ficam a cargo do provedor e não mais da empresa. O

usuário passa apenas a usar o software, sem preocupar-se com as atividades de instalação,

manutenção e upgrades (TAURION, 2009).

Enquanto o SaaS transfere a responsabilidade da implementação e manutenção do

software para o provedor e libera recursos para outros projetos, a TI fica nas mãos do

fornecedor em questão de disponibilidade, segurança e outros pontos-chave (BIDDICK,

2010).

A idéia é que o usuário 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 usuários que ela precisa. Essas mensalidades são relativamente

baixas e se encaixam melhor na realidade de pequenas e médias empresas (GONÇALVES,

2008).

Como o software está na web, ele pode ser acessado pelos usuários de qualquer lugar e

a qualquer momento, permitindo mais integração entre unidades de uma mesma empresa ou

Page 55: Introdução a cloud computing

55

outros serviços de software. Assim, novos recursos podem ser incorporados automaticamente

aos softwares sem que os usuários percebam estas ações, tornando a evolução e atualização

transparente dos sistemas. O SaaS reduz os custos, pois é dispensada a aquisição de licença de

software, porém é cobrada uma taxa mensal baseada no numero de funcionários que acessam

o serviço (SOUZA, 2009).

Um SaaS é disponibilizado por prestadores de serviços na camada de aplicação. Ele

roda inteiramente na nuvem e pode ser considerado uma alternativa a rodar um programa em

uma máquina local. Softwares de aplicação, como processadores de texto e sistemas de banco

de dados, são exemplos de SaaS (CHIRIGATI, 2009).

A InformationWeek fez uma pesquisa, na qual três quartos das empresas que usam o

SaaS consideram os serviços do aplicativo muito importantes ou até essenciais, sendo que a

pesquisa foi realizada com duzentos e oitenta e um profissionais de tecnologia de negócio,

incluindo cento e trita e um que usam o SaaS. Cerca de um terço descreveu seu aplicativo de

SaaS como crítico ao negócio. Apesar da importância, muitos líderes ainda tratam SaaS como

ad hoc. Dentre os usuários, 59% dizem que é um ponto de solução tática e apenas 32% o

consideram parte das estratégias a longo prazo (BIDDICK, 2010).

A razão primeiramente citada, para 37% dos usuários do modelo é a rapidez na

implementação. Conforme as empresas saem da recessão, 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 não é

universal, mas entre os 47% dos entrevistados que o usam, SaaS vai além de automação na

força das vendas. Aplicativos de RH, presença web, e-mail, serviço de suporte, colaboração,

financeiro e backup são usados por um quarto ou mais dos consumidores de software como

serviço (BIDDICK, 2010).

Outro benefício, que torna-se poderoso com o tempo, é a demanda dos funcionários

por mobilidade. SaaS força a TI a criar aplicativos acessíveis mais seguros fora do ambiente

corporativo, seja para uso em home Office, na estrada, via smartphone ou em computador

pessoal (BIDDICK, 2010).

Page 56: Introdução a cloud computing

56

Ao mesmo tempo, contratar uma solução SaaS exige o menor envolvimento sobre

desenvolvimento, gerenciamento ou administração da solução. Porém, o usuário irá depender

do software e funcionalidades oferecidas pela solução SaaS, o que deve oferecer um impacto

em caso de mudança do provedor contratado. Por exemplo, contratar uma solução SaaS CRM

da SalesForce.com é diferente de contratar uma solução SaaS CRM da Microsoft, via o

Dynamic CRM OnLine. Tem que ter cuidado e reconhecer o tipo de serviço de nuvem que

está sendo contratando. Reconhecer quais funcionalidades são únicas de cada provedor é

importante e deve esclarecer seu grau de dependência com a solução contratada

(CAMBIUCCI, 2010).

Page 57: Introdução a cloud computing

57

5. Análise de Casos: Provedores de Serviços de Computação em Nuvem

Vamos detalhar um pouco mais as estratégias e ofertas de alguns dos principais

provedores de computação em nuvem. Na verdade, com o imenso potencial do mercado de

tecnologias e serviços em nuvem, a maioria das empresas de TI está se mobilizando para criar

ofertas para computação em nuvem. Então os provedores selecionados vão estar listados em

ordem alfabética, para evitar qualquer valor subjetivo de sua importância no mercado.

5.1 Amazon Web Services

Um exemplo já bem conhecido de nuvem são serviços da Amazon. A Amazon criou

uma subsidiária chamada Amazon Web Service (http://aws.amazon.com/) para ofertar serviços

em computação em nuvem. Basicamente são quatro ofertas, o EC2 (Elastic Computing

Cloud), para alugar máquinas virtuais Linux, nos quais o usuário pode alugar dezenas ou até

milhares de CPUs, o S3, serviço de armazenamento (storage) em nuvem, o SimpleDB, oferta

de Database-as-a-Service e o SQS (Simple Queue Service) para serviços de mensagens. A

idéia é que os usários possam operar seu negócio sem ter a necessidadede investir em infra-

estrutura, como servidores storage. E a plataforma computacional oferecida é a própria

plataforma que roda os aplicativos da Amazon, uma infraestrutura de tecnologia que incluiu

milhares de servidores e que levou anos para ser construída e ajustada (TAURION, 2009).

Amazon Web Services (AWS) fornece infra-estrutura como serviço (IaaS) como ofertas

na nuvem, para as organizações que exigem poder de processamento, armazenamento e outros

serviços. Sendo que, a Amazon foi uma das pioneiras em oferecer serviços na nuvem para o

público, lançou seus primeiros serviços, os S3 e EC2, em 2006. AWS oferece uma série de

serviços, incluindo as seguintes (MATHER, 2009):

5.1.1 Elastic Compute Cloud (EC2)

Para começar a trabalhar com a EC2, é necessário o usuário, de posse de uma conta na

Amazon, criar uma Amazon Machine Instance (AMI). Uma AMI é uma imagem de máquina

Page 58: Introdução a cloud computing

58

(como uma ISO), contendo aplicações e bibliotecas de programas e componentes. Há muitas

AMIs comuns disponíveis 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 não encontre uma AMI que atenda suas

necessidades, a Amazon fornece ferramentas para criar sua própria AMI, que pode ser privada

ou compartilhada com a comunidade. O fato é que uma pequena empresa pode começar a

operar aplicações em poucos minutos, configurando seu ambiente virtual de forma bem rápida

e simplificada. Contrasta vivamente com o modelo tradicional, no qual é necessário adquirir

um servidor, instalá-lo em algum local adequado, configurá-lo e mantê-lo continuamente

atualizado com as últimas versões de software básico (TAURION, 2009).

O EC2, fornece um IaaS em que há cobrança pelo uso. O preço inicial, com base em

aspectos como o sistema operacional usado, RAM e espaço em disco partilhado em cada AMI ,

é de US$ 0,10 por hora. Ele provê um ambiente virtual que permite o desenvolvimento e a

execução de aplicações baseadas em Linux. Para isso, os prestadores de serviços devem criar

sua própria máquina virtual, conhecida como AMI que contém todas as aplicações, os dados e

as bibliotecas necessárias. Alternativamente, os prestadores de serviços também podem usar

AMIs que já estão prontas e disponíveis (CHIRIGATI, 2009).

A vantagem da flexibilidade da EC2 é que pode-se escolher entre diversas distros do

Linux e também pode-se utilizar diferentes versões do Windows como operacional para AMIs.

Qualquer linguagem de programação pode rodar: Java , PHP, Python, Ruby, etc. (TAURION,

2009).

O serviço EC2 permite rodar aplicações no ambiente de nuvem da Amazon. Os

servidores virtuais do EC2 são máquinas virtuais Linux que rodam em cima da plataforma de

virtualização Xen. Recentemente, a Amazon também permitiu que as máquinas virtuais sejam

imagens do OpenSolaris, mas a maioria continua sendo Linux. Essas máquinas virtuais podem

ser servidores de 32 ou 64 bits, baseados em equivalentes a processadores de 1.7 GHz,

Opteron ou Xenon.

As instâncias das máquinas virtuias podem variar da mais simples, uma máquina de 32

bits, com 1,7 GB de memória, uma unidade de computação EC2, (160 GB de armazenamento

Page 59: Introdução a cloud computing

59

e um moderado desempenho de I/O) até uma máquina “extra-large” de 64 bits, memória de 7

GB, 20 unidades de computação EC2 (8 virtual cores, cada um com 2,5 unidades de

computação EC2), 1.690 GB de armazenamento e alto desempenho de I/O (SOUZA, 2009).

A Amazon consegue cobrar preços baixos porque estes refletem diretamente os custos

do imenso parque computacional que a empresa possui. Porém, é importante lembrar que

estes preços incluem a tranferência de dados e não apenas o seu armazenamento. Assim,

aplicações intensivas em I/O podem ter seus custos bem mais elevados, pois muitas vezes o

usuário olha apenas o custo de armazenamento e minimiza os custos de I/O, sendo que, a

Amazon não cobra as transferências de dados entre os serviços de S3 e EC2.

A Elastic Compute Cloud (EC2) é a principal oferta da AWS e foi uma das primeiras

plataformas de computação em nuvem e ainda é uma das mais populares. Ela é baseada em

instâncias que são 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 três

tamanhos de servidores virtuais:

• Small, que oferece o equivalente a um sistema com 1,7 GB de memória,

160 GB de armazenamento e um processador de núcleo virtual de 32 bits;

• Grande, que oferece o equivalente a um sistema com 7,5 GB de memória,

850 GB de armazenamento e dois núcleos virtuais de processamento com 64

bits;

• Extra grandes, que oferece o equivalente a um sistema com 15 GB de

memória, 1,7 TB de armazenamento e quatro núcleos virtuais de 64 bits.

O EC2 fornece um ambiente altamente confiável, visto que a substituição de instâncias

pode ser realizada de forma rápida, garantindo o QoS.

Page 60: Introdução a cloud computing

60

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

distribuído, utilizado para recuperar e armazenar dados. O S3 fornece um repositório seguro,

confiável e rápido para armazenar as imagens AMI. E ainda armazena e recupera os resultados

intermediários durante a execução das tarefas de processamento. Durante a execução, cada

tarefa busca o arquivo no S3 e faz o devido processamento. As soluções 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 (latências) causadas pelas distâncias e meios de

comunicação. O S3 muda este conceito ao ofertar um serviço de armazenamento remoto, em

nuvem. O usuário armazena seus arquivos nos discos da Amazon e os seus servidores acessam

estes dispositivos para obter os dados. Em quais discos e onde eles estão fisicamente

localizados é transparente à aplicação do usuário (TAURION, 2009).

O S3 é uma oferta de “storage on demand” porque o usuário paga apenas pela

quantidade de dados armazenada, sem a necessidade de reservar espaço adicional, prevendo,

por exemplo, aumento futuro. Se a demanda por espaço aumentar, o sistema automaticamente

aumenta o espaço disponível. Se diminuir, o sistema diminui o espaço alocado. O preço

sempre é baseado no uso real do espaço em disco e inclui basicamente três variáveis: bytes

tranferidos para a nuvem, bytes transferidos da nuvem e gigabytes armazenados. Em

novembro de 2008 os preços praticados para os EUA e Europa eram de 12 a 15 centavos de

dólar para GB armazenado e 10 centavos por GB lido (TAURION, 2009).

Os dados transferidos dentro de uma Amazon S3 local através de uma solicitação de

cópia é gratuita. Dados transferido através de uma solicitação de cópia entre os locais é

cobrada em preços regulares. Os dados transferidos entre a Amazon EC2 e Amazon S3 dentro

da mesma região é gratuito (ou seja, 0,00 dólares por GB). Os dados transferidos entre a

Amazon EC2 e Amazon S3 entre regiões (ou seja, entre os EUA e a UE), será cobrada na

Page 61: Introdução a cloud computing

61

internet taxas de transferência de dados em ambos os lados da transferência. 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 serviço de fila de distribuição de

mensagens que suporta o envio de mensagens programadas através de aplicações de Web

Services como uma forma de comunicação através da internet. Os desenvolvedores podem

mover dados entre distribuídos componentes de seus aplicativos que executam tarefas

diferentes, sem perda de mensagens ou exigindo que cada componente deve estar sempre

disponível. SQS permite um fluxo de trabalho automatizado a ser criado e trabalha em estreita

colaboração com Amazon EC2 e outros Amazon Web Services. SQS expõe infra-estrutura web

de mensagens como um serviço na internet. Como tal, qualquer computador na internet pode

adicionar ou ler mensagens sem nenhum software especial instalado, firewall ou

configurações especiais. Os componentes da SQS podem ser executados de forma

independente, e não precisam estar na mesma rede (VELTE, 2010).

O Amazon SQS fornece confiabilidade e escalabilidade ao enfileirar e armazenar

mensagens que estão sendo trocadas entre os recursos computacionais. Os desenvolvedores

podem, de maneira simples, mover dados entre os recursos distribuídos das aplicações entre

diferentes domínios com garantia de entrega (SOUZA, 2009).

SQS fornece uma maneira para serviços baseados na web para trocar informações de

uma maneira segura. É constituída por três componentes principais:

1. Autenticação dos serviço é conseguido através do uso de editamentos às

credenciais AWS padrão. Através 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 é válida até 8 KB. O que se destaca é que a

seqüência não é garantida, e se for necessário, então, os números devem

possuir algum tipo de seqüência que deve ser incorporado na mensagem;

Page 62: Introdução a cloud computing

62

3. Mensagem deletadas do sistema devem ser tratadas através da aplicação do

programador, mas existem temporizadores para a exclusão automática.

5.1.4 SimpleDB

Outro serviço interessante é o SimpleDB (SDB), um framework que permite aos

usuários armazenar e recuperar informações baseadas na oferta de Web Services da própria

Amazon. Com o SDB o usuário pode, em tese, construir todo ou grande parte do seu portfólio

de aplicações no ambiente da Amazon. O SDB não é a solução para todo e qualquer problema

de negócio, devido ás suas restrições de desempenho e escalabilidade, mas serve muito bem

para aplicações simples (TAURION, 2009).

SDB é um serviço web que fornece as funções de banco central de dados e indexação

de consulta. Este serviço 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

computação na escala da web mais fácil e mais rentável para os desenvolvedores. Um

exemplo simples desta integração pode ser uma aplicação de compartilhamento de fotos e

vídeos pela web, no qual a aplicação é executada no EC2, as fotos e vídeos em si ficam

armazenados no S3 e os comentários e opiniões dos usuários do site ficam no SDB

(MATHER, 2009).

O serviço tem limitações de recursos (por exemplo, não suporta a linguagem SQL) e

seus custos são também baseados no modelo usou – pagou (TAURION, 2009).

O SDB é um serviço web que fornece as funcionalidades de um banco de dados como

armazemanento, indexação e consultas em ambientes de nuvem. A arquitetura do SDB é

utilizada para o armazenamento e recuperação 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).

Page 63: Introdução a cloud computing

63

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 Ciência da Computação de University of

California Santa Bárbara 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

também serviços de suporte (SOUZA, 2009).

O projeto Eucalyptus (Liu et al. 2007) é uma infra-estrutura de código aberto que

fornece uma interface compatível com o Amazon EC2, S3, EBS (Elastic Block Store) e

permite aos usuários criarem uma infra-estrutura e experimentar a computação em nuvem. A

arquitetura do Eucalyptus é simples, flexível e modular e contém uma concepção hierárquica

que reflete os recursos comuns do ambiente (SOUZA, 2009).

O Eucalyptus tem como objetivo auxiliar a pesquisa e o desenvolvimento de

tecnologias para computação em nuvem e o possui as seguintes características: interface

compatível com o EC2, instalação e implantação simples usando ferramentas de

gerenciamento de clusters, apresenta um conjunto de políticas de alocação extensível de

nuvem, sobreposição de funcionalidade que não requer nenhuma modificação em ambiente

Linux, ferramentas para administrar e auxiliar a gestão do sistema e dos usuários e capacidade

de configurar vários clusters, cada um com endereço privado de rede interna em uma única

nuvem (SOUZA, 2009).

Esse sistema permite aos usuários iniciar, controlar o acesso e gerenciar todas as

máquinas virtuais utilizando uma emulação do protocolo SOAP (Simple Object Access

Protocol) do Amazon EC2 e interfaces de consulta. Neste sentido, os usuários 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. Também, por ser um ambiente compatível com o EC2 da

Page 64: Introdução a cloud computing

64

Amazon, permite que as nuvens privadas criadas por ele, interajam com a nuvem publica da

Amazon, pois usa a mesma interface de programação. A NASA tem um projeto de

computação 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, além de conectividade, para a própria NASA e outros

órgãos governamentais americanos (ORTEGA, 2010).

Assim como outras empresas (Google, Microsoft e Sun, entre outras) que fornecem

computação na nuvem, a NASA montou sua estrutura dentro de containers (ORTEGA, 2010).

Utilizar containers tem sido uma tendência e segundo especialistas permite agilidade

na expansão do datacenter e também controle eficiente no uso de energia, já que é mais fácil

controlar a temperatura (ORTEGA, 2010).

Recentemente o Eucalytpus foi incorporado à iniciativa de Cloud Computing Open

Source do Ubuntu, que é uma bem conhecida distribuição Linux. A base desta iniciativa, o

Ubuntu Enterprise Cloud (UEC), é o Eucalyptus (http://www.ubuntu.com/cloud). O

Eucalyptus pode também ser instalado em outros ambientes Linux, como os das distribuições

RedHat e Debian (TAURION, 2010).

5.3 Google

O modelo de Computação em Nuvem ganhou espaço na mídia pelos exemplos

pioneiros de empresas como o Google. Uma nuvem computacional que todos nós 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

bilhões de ciclos de processador. Na verdade, o Google mantém em seus datacenters uma

cópia de grande fração da internet, cópia esta continuamente atualizada através de softwares

“spiders” que percorrem a rede, link por link, procurando o conteúdo das suas bilhões de

páginas. Construir uma infra-estrutura computacional que permita milhares de queries por

segundo, e completar o processo em poucos segundos, nos moldes tradicionais, requereria

Page 65: Introdução a cloud computing

65

inúmeros supercomputadores de centenas de milhões de dólares cada. Então 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 aplicação Google é por natureza altamente paralelizável, permitindo plena

exploração do conceito de nuvem. Diferentes consultas rodam em diferentes processadores e

o índice é particionado de modo que uma única query possa também usar múltiplos

processadores em paralelo (TAURION, 2009).

O resultado é que o Google consegue operar pesquisas rápidas, com uma infra-

estrutura de TI baseada em milhões de servidores comoditizados, reduzindo sensivelmente os

custos quando comparado ao que seria necessário para adquirir um supercomputador que

oferecesse a mesma capacidade computacional.

Embora à primeira vista poucas aplicações sejam similares ao Google em termos de

paralelismo, existem inúmeras outras aplicações que permitem explorar o paralelismo com

bastante eficiência. O próprio Google começou a expandir o uso das suas nuvens para

acomodar outros serviços 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 aplicações que rodarão 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 computação em nuvem do Google voltada para empresas. São serviços baseados na

Web, que não usam hardwares ou softwares, e exigem o mínimo de manutenção, o que gera

uma grande economia de tempo e custos. A empresa pode usar domínio próprio em diversos

aplicativos disponibilizados pelo Google. Uma solução acessível, que permite o

compartilhamento de informações importantes entre os usuários.

O Google Apps é um conjunto de aplicações da Google que são fornecidas aos

usuários na forma de SaaS, como está exibida na Figura 9. Entre essas aplicações, podemos

Page 66: Introdução a cloud computing

66

encontrar um serviço de correio eletrônico (Gmail), um programa de mensagens instantâneas

(Google Talk), um editor de textos, planilhas e apresentações (Google Docs), um

gerenciamento de agendas on-line e compartilhadas (Google Calender) e compartilhamento

de vídeos privados (Google Vídeos) (CHIRIGATI, 2009).

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

A edição padrão é gratuita e oferece a mesma capacidade de armazenamento que as

contas normais de Google. A edição premier, que oferece 25 GB de armazenamento, tem um

valor de 50 dólares anuais por conta de usuário. A edição Educação oferece um conjunto

gratuito e sem anúncios de ferramentas personalizáveis permitem que professores,

funcionários 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 escritório de mais de 3.500 funcionários 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 aplicação que permite aos

desenvolvedores utilizarem serviços adicionais fornecidos pelo Google, como o e-mail,

armazenamento, entre outros. Os serviços disponibilizados proporcionam um ambiente seguro

e eficaz para aplicações que apresentam grandes demandas, fornecendo soluções para

Page 67: Introdução a cloud computing

67

empresas e desenvolvedores que necessitam superar os desafios de escalabilidade em seus

projetos (SOUZA, 2009).

O armazenamento de dados no Google App Engine não é um banco de dados

relacional. O serviço de armazenamento de dados do Google App Engine é baseado no

BigTable, um sistema distribuído 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 informações. Uma restrição nesta base de dados é que para acessar estes dados,

o AppEngine oferece uma linguagem específica, chamada GQL, que, apesar de ser baseada no

SQL, não suporta o modelo relacional e portanto não permite comandos como join. O acesso é

limitado a apenas uma tabela. (TAURION, 2009).

Por enquanto Bigtable é uma ferramenta robusta, os desenvolvedores têm sido

cautelosos quanto ao seu uso. Porque é um sistema proprietário, eles ficam presos em Google.

Esse é também o caso da Amazon Web Services e outros provedores de computação em

nuvem.

As aplicações desenvolvidas para o App Engine serão executadas no Google, que

realiza, caso necessário, o dimensionamento automaticamente. Atualmente, o suporte de

linguagens de programação no App Engine são 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 milhões de visualizações de página por mês, totalmente grátis. Ao ativar o faturamento

para o aplicativo, os limites gratuitos aumentam e o usuário paga somente pelos recursos que

ultrapassam os níveis gratuitos (SOUZA, 2009).

Então, o AppEngine é oferecido, gratuitamente, para cada desenvolvedor 500 MB de

memória, 200 megaciclos de CPU e 10 GB de transferência de dados, após isso são cobradas

as seguintes taxas:

• $ 0.10-$ 0.12 núcleo do processador por horas

• $ 0.15-$ 0.18 GB de armazenamento por mês

• $ 0.11-$ 0.13 por GB de banda de saída

• $ 0.09-$ 0.11 por GB de largura de banda de entrada

Page 68: Introdução a cloud computing

68

5.4 IBM

A IBM entrou no setor de computação em nuvem em novembro de 2007 com uma

oferta chamada Blue Cloud. Esta oferta é um conjunto de tecnologias, algumas proprietárias

como o Tivoli Provisioning Maneger e outras open source como o Xen e o Hadoop (versão

open source do ambiente de computação paralela do Google, o MapReduce), que permitem

uma a organização contruir sua própria infra-estrutura de nuvem. Com esta infra-estrutura, a

empresa pode utilizar o conceito de computação em nuvem para uso interno ou para prover

serviços para clientes externos (TAURION, 2009).

Detalhando um pouco mais a arquitetura do Blue Cloud, observamos algumas

tecnologias que são fundamentais a um ambiente de nuvem. Uma delas é a funcionalidade de

provisionamento automático. Uma função básica de qualquer nuvem é a capacidade de

automaticamente provisionar servidores para atender à demanda. No Blue Cloud, atráves de

um portal web, o usuário especifica que plataforma de hardware vai necessitar, selecioando

tipo de processador, capacidade de memória e armazenamento, sistema operacional e assim

por diante. Outra função é a monitoração dinâmica 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 computação paralela de alto desempenho.

(TAURION, 2009).

O Hadoop é um software open source gerenciado pela comunidade Apache, projetada

para distribuir e processar tarefas em computação distribuída e paralela. Os programas que

operam no Hadoop são escritos em um estilo de programação próprio, chamado de estilo

Map/Reduce (desenvolvido pelo Google) no qual a tarefa é dividida em centenas ou milhares

de pequenos pedaços que são processados independentemente, em centenas ou milhares de

computadores reais ou virtuais, de acordo com um mapa execução. Os resultados gerados por

estes processos independentes são agrupados e sintetizados (reduzidos) para produzir o

resultado final em uma fração de tempo (TAURION, 2009).

Page 69: Introdução a cloud computing

69

O Blue Cloud usa os servidores IBM BladeCenter, um sistema operacional Linux,

virtualização baseada em Xen e o software de gerenciamento Tivoli da IBM. Em síntese, o

Blue Cloud é uma série de ofertas de computação em nuvem baseadas em padrões abertos e

software livre que ajudam as corporações a fornecerem recursos Web 2.0, como mashups,

colaboração aberta, redes de relacionamentos e comércio remoto (SLACK, 2009).

Há dois benefícios chave do IBM Blue Cloud, de acordo com Cezar Taurion. Primeiro,

o uso de Tivoli na nuvem ajuda as corporações a reduzirem custos e economizar energia. Por

exemplo, reduz as etapas manuais envolvidas em gerenciamento de dados e aumenta a

automação do centro de dados. Fornecendo dinamicamente e alocando recursos para melhor

gerenciar flutuações de carga de trabalho, os recursos de TI são executados em níveis mais

consistentes. E Tivoli tem a capacidade de gerenciar o consumo de energia alternando

servidores para o modo de espera quando não estão em uso e restaurando-os instantaneamente

quando necessário.

Segundo, em vez de parar na idéia geral de "rede das redes", o Blue Cloud oferece um

desvio: permite que a arquitetura de seus serviços de TI imite configurações básicas de

provedores de serviço. Portanto, obtém-se a capacidade de integrar seus serviços 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 implementação de computação em nuvem que oferece um conjunto

específico de serviços para desenvolvedores. Esta plataforma pode ser usada por aplicações

em execução em nuvem ou fora desta. A plataforma Azure é formada pelo sistema

operacional Windows Azure e um conjunto de serviços: Live Services, .NET Services, SQL

Services, SharePoint Services e Dynamics CRM Services (SOUZA, 2009).

A Microsoft iniciou suas ofertas para o modelo de computação em nuvem com o Live

e com o “Online Services”, voltados principalmente para usuários finais e pequenas empresas.

Posteriormente, no final de 2008, lançou o Windows Azure e um conjunto de serviços de

Page 70: Introdução a cloud computing

70

PaaS, chamada Azure Services Platform. A proposta da Azure é oferecer uma plataforma e

serviços hospedados nos seus datacenters. O Azure não é uma adaptação da tecnologia .NET,

mas uma plataforma nova (TAURION, 2009).

O Azure Services Plataform é uma estratégia e um conjunto de produtos que se propõe

a implementar a visão de nuvem da Microsoft, baseada no conceito de “software-plus-

services”(TAURION, 2009):

• Ser uma nova geração do ambiente Windows para ambiente de computação em

nuvem. A função básica do Azure é automaticamente ligar a aplicação do

usuário a máquinas virtuais operando nos datacenters da Microsoft. Na

verdade o Windows Azure é essencialmente uma versão modificada do

Windows 2008 e do mecanismo de virtualização chamado Hyper-V,

suplementada com software projetado para hospedar e gerenciar aplicações e

serviços em nuvem;

• Fornecer serviços orientados aos desenvolvedores, como SQL Services, .Net

Services, Live Services, cada um contendo um pequeno número de funções, a

ser expandido ao longo do tempo. Além destes serviços estão incluídos o Share

Point Services e Dynamic CRM Services. O Share Point Services oferece APIs

para funcionalidades do Share Point como sites de colaboração e workflows. O

Dynamic CRM Services oferece APIs para interface com as funções do

aplicativo Dynamics CRM.

• Ser um novo modelo de programação. Para a aplicação extrair todos os

benefícios do Azure, deve ser desenvolvida com este conceito desde o início.

Page 71: Introdução a cloud computing

71

Figura 10. Serviços oferecidos no Windows Azure (ZUNINO, 2008)

Como podemos observar na Figura 10, a plataforma de serviço no Azure é formada

por camadas, dentre elas a camada de nível mais baixo é o windows azure que é um sistema

operacional distribuído, no nível mais acima existe um conjunto de serviços como Live

services, .NET Services, SQL Services e assim por diante, que são serviços disponibilizados

para que o usuário use ou dentro do windows azure ou em uma aplicação externa. E por fim

disponibiliza um conjunto de serviços para o usuário final como Windows live, Office Live,

Exchange Online, onde o usuário já utiliza suas capacidades de uso para tarefas do dia-a-dia

(COELHO, 2008).

Então, na nuvem temos que abstrair centenas ou ate milhares de servidores que são

disponibilizados para que o usuário execute a sua aplicação. Dentro do Windows Azure

existem maneiras de abstração, onde o usuário vai ter o seu serviço sendo gerenciado, vai ver

sua computação sendo virtualizada e vai possuir um conjunto de mecanismos como blobs,

Tables, Queues, Locks etc.. estão la disponibilizados como primitivas, para que o usuário

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 máquina virtual (VM) executa uma função de imagem do disco rígido virtual um

VHD. Este VHD é criado usando uma máquina no local do Windows Server, em seguida,

enviados para o Windows Azure. Uma vez que é armazenada na nuvem, o VHD pode ser

Page 72: Introdução a cloud computing

72

carregado sob demanda em uma função 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 têm a capacidade de escolher o tamanho das VMs para executar a

sua aplicação com base nos requisitos da aplicação de recursos. O Windows Azure calcula

casos e possui cinco tamanhos originais para permitir aplicações complexas e cargas de

trabalho. Introduziram o Extra Windows Small para tornar o Windows Azure mais acessível

para os desenvolvedores interessados em executar aplicativos menores na plataforma, como

podemos observar na Figura 11.

Figura 11. Tamanhos das instâncias no Windows Azure (CAMBIUCCI, 2010)

O Live Services é um conjunto de componentes dentro do Azure para o tratamento de

dados do usuário e recursos da aplicação. Live Services possibilita aos desenvolvedores

construírem aplicações ricas que podem conectar com usuários do Windows Live. O Live

Services inclui as tecnologias do Live Mesh para sincronização de dados dos usuários e

possibilita a extensão de aplicações Web entre múltiplos dispositivos (SOUZA, 2009).

A Microsoft .NET Services é um conjunto da Microsoft que hospeda serviços de

desenvolvimento orientado para fornecer os componentes exigidos por muitas aplicações

baseadas na nuvem. .NET Services é semelhante ao .NET Framework, oferecendo bibliotecas

de classes de alto nível que tornam o desenvolvimento muito mais robusto. .NET Services

pode ajudar os desenvolvedores a se concentrar mais em seu produto final do que na

construção e implantação de infra-estrutura própria nuvem. .NET Services também está

disponível para outras tecnologias de desenvolvimento através do uso de protocolos padrão da

indústria, como REST, SOAP e HTTP (VELTE, 2010).

Page 73: Introdução a cloud computing

73

O SQL Services é um serviço de armazenamento de dados e de processamento de

consultas escalável, sendo construído 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 várias formas. Para garantir a escalabilidade, o SQL Services

implementa apenas partes do modelo relacional e não possui suporte completo para a

linguagem SQL. O componente SharePoint Services permite colaborar e criar aplicações

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

serviços baseados na web. Isso permite o armazenamento de dados estruturado, semi-

estruturadas e dados não estruturados. SQL Services oferece um conjunto de serviços

integrados que permitem consultas relacionais, pesquisa, elaboração de relatórios, análises,

integração e sincronização de dados. Isso pode ser feito por usuários móveis, escritórios

remotos ou parceiros de negócios (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 através de um simples site da web. A Salesforce é

uma empresa norte americana de tecnologia que desenvolve soluções no conceito de

computação em nuvem (TAURION, 2009).

A proposta do Salesforce era diferente. Em vez de venda de licenças e contratos de

manutenção e a necessidade de adquirir servidores para hospedar os caros aplicativos

contratados, o cliente precisava apenas assinar um contrato de uso aplicativo de CRM (gestão

de relacionamento com o cliente). Todo o software e a plataforma por trás residiriam no

Salesforce.com. O cliente não precisaria mais se preocupar com a infra-estrutura (TAURION,

2009).

Hoje, além as oferta tradicional, que o CRM via SaaS, oferece ainda duas soluções: a

Force.com, plataforma de desenvolvimento (PaaS), e o AppExchange, mercado on-line com

diretório de aplicações desenvolvidas para o ecossistema Salesforce (TAURION, 2009).

Page 74: Introdução a cloud computing

74

A plataforma como um serviço é um serviço 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 aplicação a venda na

AppExchange ele não precisa mais se preocupar em instalar o software, criar instâncias ou

coisas desse tipo (GONÇALVES, 2008).

A fim de fornecer uma gama de aplicações que complementem seu CRM a Salesforce

criou o AppExchange. Basicamente é um mercado de aplicações onde clientes do CRM

podem consumir produtos desenvolvidos pelos parceiros da plataforma Force.com. Hoje

diversas empresas já comercializam seus produtos dentro da Salesforce através do

AppExchange, dando ao usuário a oportunidade de comprar softwares das mais diversas áreas,

desde auxílio para gerenciamento e manutenção de contratos até ferramentas de marketing

para envio de e-mails (GONÇALVES, 2008).

A idéia da Force.com é prover um ambiente de desenvolvimento para desenvolvedores

e empresas que queiram se tornar parceiras da Salesforce. Não existe nenhum custo para

iniciar o desenvolvimento de um aplicativo, o cadastro no site é gratuito para obtenção de

uma conta com todos os recursos necessários para o desenvolvimento de novos aplicativos

(GONÇALVES, 2008).

Na direção de reforçar o Force.com estão recentes mudanças, como o fato do cliente

do AppExchange não precisar mais ser cliente do CRM da Salesforce. A razão para esta

estratégia da Salesforce é simples: constata-se que um grande número de desenvolvedores e

pequenas empresas de software não terá competência tecnológica ou capital para proverem

sua própria nuvem. Neste contexto, a proposta da Salesforce é disponibilizar sua plataforma

para estes desenvolvedores hospedarem suas aplicações (TAURION, 2009).

Um outro movimento interessante nesta direção 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 aplicações de computação social. Uma terceira parceria permite que clientes Salesforce

Page 75: Introdução a cloud computing

75

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

2009).

5.7 Comparativo entre os Modelos de Serviços

Os modelos de serviços são representados em camadas, cada uma delas possui suas

respectivas características e determinados níveis de abstração. Sendo que, para cada camada

existem provedores de serviço disponíveis que oferecem seus benefícios diferenciados para

que os usuários da computação em nuvem possam escolher o serviço que mais se adapta a sua

necessidade.

A camada de infra-estrutura inclui o fornecimento de máquinas virtuais nas quais o

desenvolvedor possui o controle de seu gerenciamento, permitindo o armazenamento e a

execução de uma ampla diversidade de aplicativos, o serviço ainda é a responsável pela

adesão de hardware, servidores, roteadores e outros recursos de computação, os quais formam

a base dos modelos de serviços da computação em nuvem. Sendo assim, existem empresas

que disponibilizam serviços neste modelo, como por exemplo, a IBM Blue Cloud, GoGrid,

Amazon EC2.

Na camada de plataforma como serviço os desenvolvedores de serviços, adquirem

através deste modelo, os recursos necessários (como ambiente de desenvolvimento,

linguagens de programação) para construir as suas aplicações, através da internet.

A camada de desenvolvimento e serviços 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 serviços 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 usuário,

enquanto o AppEngine oferece mais facilidade de uso e uma grande dose de automoção. Com

o AppEngine o usuário escreve o código, carrega sua aplicação e deixa que o Google faça

todo o resto. Na Amazon, essas atividades são por conta do usuário. Além disso, o AppEngine,

ao contrário do EC2, começa gratuito e, apenas caso demande mais recursos ele é pago. No

Page 76: Introdução a cloud computing

76

EC2, também só paga pelo que se usa, mas não existe carência. Outra diferença é que o

AppEngine ainda está restrito a duas linguagens de programação. O EC2 não limita a

linguagem a ser usada. Assim, se uma determinada aplicação precisar de extensões em C++ ,

por exemplo, o AppEngine não vai atender.

E finalmente na camada de software como serviço, no seu mais alto nível de abstração

é nela que está sendo oferecida as diversas aplicações como serviços para os usuários, através

da internet. Os exemplos de empresas que oferecem este tipo de serviço são as seguintes:

Salesforce.com, Google Docs, outras aplicações da web 2.0 como o Facebook e LinkedIn são

serviços baseados em nuvem também. Nesta camada o usuário paga somente pelo uso do

software, assim o provedor de serviço oferece a plataforma mais o software para o usuário.

Page 77: Introdução a cloud computing

77

6. Conclusão

De modo que, a evolução da tecnologia nos últimos anos tem contribuído muito para a

difusão do termo de computação em nuvem, este modelo é considerado um software

disponível na internet, em que o usuário não compra hardware ou software, mas aluga e paga

o que utilizar.

Podemos observar no decorrer deste trabalho, que a implantação na computação em

nuvem pode acontecer de três formas, que são as seguintes: nuvens públicas que são as mais

conhecidas, pois o modelo de serviços oferecidos atualmente, em sua maioria, adotam a

nuvem pública, na qual múltiplos usuários têm acesso a um software em comum na internet,

na qual as empresas provedoras de serviço são as responsáveis pelos recursos necessários para

os usuários. As nuvens privadas são adotadas somente por uma organização, onde estas são

responsáveis pela adoção de recursos computacionais quando necessário, por isso possui um

acesso restrito aos seus respectivos funcionários. E o último modelo a nuvem híbrida, a qual

tenta implantar estes dois tipos de modelos ao mesmo tempo.

A computação em nuvem, ainda possui três modelos de serviços, os quais são

oferecidos pelos seus provedores. Estes provedores são empresas que adotam um tipo de

serviço, e os disponibilizam com seus respectivos modos de pagamentos para os usuários.

As empresas que se baseiam no modelo de serviço da IaaS, podem incluir em seus

sistemas: roteadores, servidores, sistemas de armazenamento, banco de dados e outros

recursos computacionais, para oferecer aos seus usuários. As que oferecem modelos de

serviços baseados na PaaS, inclui os sistemas operacionais, linguagens de programação e

ambientes de desenvolvimento para as aplicações, auxiliando a implementação de softwares,

Page 78: Introdução a cloud computing

78

já que contém ferramentas de desenvolvimento e colaboração entre desenvolvedores. No

último modelo que é a SaaS, as empresas oferecem o software real como serviço via internet,

no qual a empresa adquire uma licença de uso através de um pagamento periódico e instala o

software nos seus próprios servidores.

Alguns cuidados que se deve ter ao efetuar um contrato com uma empresa provedora

de serviço em nuvem, é saber a taxa de transmissão da rede, fazer uma avaliação do

desempenho dessa rede, saber se ela não esta sujeita a congestionamentos no tráfego de dados

e fazer ainda uma avaliação para saber se é viável migrar os dados de uma empresa para um

ambiente virtual.

A computação 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 segurança vão

surgindo, fazendo com que as empresas tenham mais confiabilidade em adotar este tipo de

serviço.

Com o resultado desta pesquisa bibliográfica, tem-se como objetivo principal prover

esclarecimentos referentes à computação em nuvem, para que este trabalho sirva de referência

para desenvolvimento e aquisições futuras de aplicações em nuvem.

Então existem algumas sugestões para a realização de trabalhos futuros, como a

resolução de algumas questões de segurança na nuvem. Também, 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.

Page 79: Introdução a cloud computing

79

7. Referências Bibliográficas

AHRONOVITZ, M.; AMRHEIN, D.; ANDERSON, P.. Cloud Computing Use Cases: A white paper produced by the Cloud Computing Use Case Discussion Group. Edição 4. Julho, 2010.

AMRHEIN, D.; QUINT, S. (2009). Computação em nuvem para a empresa: Parte 1:

Capturando a nuvem. Disponível em: <http://www.ibm.com/developerworks/br/websphere/techjournal/0904_amrhein/0904_amrhein.html>. Acessado em Abril de 2009.

BIDDICK, M. (2010). É hora de investir em uma estratégia de SaaS. São Paulo:

InformationWeek. Edição 225. Editora it mídia. Março, 2010. P 90. CAMBIUCCI, W. (2010). Computação em Nuvem: algumas perguntas sobre desafios em

projetos. Microsoft Brasil. Disponível em: <http://blogs.msdn.com/b/wcamb/archive/2010/05/07/computa-o-em-nuvem-algumas-perguntas-sobre-desafios-em-projetos.aspx>. Acessado em Maio de 2010.

CAPRAROLI, E. (2009). O Futuro é Nublado. Disponível 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. Disponível

em: <http://depositodeartigos.blogspot.com/2010/03/parte-4-vantagens-e-desvantagens.html>. Acessado em Março de 2010.

CARVALHO, Davi. Cloud da Amazon: US$ 220 milhões/ano. Disponível 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). Computação em Nuvem. Disponível 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. Disponível em: <http://blogs.msdn.com/otavio>. Acessado em Novembro de 2010.

DELMIRO, E. (2010). Você sabe o que é computação em nuvem?. Disponível em:

<http://www.sapienzae.com.br/?p=847>. Acessado em junho de 2010.

Page 80: Introdução a cloud computing

80

DUARTE, R. (2009). FinancialWeb: ABC da computação em nuvem. Disponível 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 Organizações. Disponível

em: <http://www.managerbrazil.com.br/?FuseAction=Biblioteca>. Acessado em Maio de 2009.

FREZENDE, R. (2009). A Relação entre Computação em Nuvem e SaaS. Disponível 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 Computação em Nuvem. Disponível 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. Disponível em: <http://escalabilidade.com/2010/02/23/escolhendo-sua-plataforma-de-cloud-computing-parte-1-amazon-ec2/>. Acessado em Fevereiro de 2010.

GONÇALVES, D.; JUNIOR, J. (2008). Integração de Aplicações ao SalesForce. White Papers.

Digital Assets. GUN, M. (2008). Software como Serviço: benefícios e precauções. Disponível em:

<http://webinsider.uol.com.br/2008/05/20/software-como-servico-beneficios-e-precaucoes/>. Acessado em Maio de 2009.

JOBSTRAIBIZER, F. Cloud Computing. São Paulo: Linux Magazine. Editora Linux New

Midia. Edição 69. Agosto, 2010. P 31. LIMA, J. (2009). Porquê Inovar nas Empresas?. Disponível em:

<http://aportar.blogspot.com/2009/04/porque-inovar-nas-empresas.html>. Acessado em Abril de 2010.

LUIZ, A. Google Apps na INFOGLOBO. Disponível 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

O’Reilly Media; Setembro, 2009.

Page 81: Introdução a cloud computing

81

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 computação. IDG

Now. OLIVEIRA, R.; MAÇADA, A. C.; VANTI, A.. (2009). Infra-estrutura de Tecnologia de

Informação – Análise da Visão e Conjunto de Serviços - Estudo Piloto. Universidade Federal do Rio Grande do Sul (UFRGS) – Porto Alegre, RS.

ORTEGA, A. (2010). NASA e Cisco: Nuvem dentro de containers. Disponível em:

<http://www.brainwork.com.br/blog/tag/nebula/>. Acessado em Junho de 2010. PRADO, B. (2010). O que é Cloud Computing?. Disponível em:

<http://bloglog.globo.com/blog/blog.do?act=loadSite&id=221&postId=23389&permalink=true>. Acessado em Junho de 2010.

PIGATTO, D. F.(2009) Estudo e Implementação de Uma Solução de Softwares Aplicativos

Utilizando Computação nas Nuvens. Universidade Regional Integrada do Alto Uruguai e das Missões. Erechim, RS.

PINA, A. C. (2010). Cloud Computing. São Paulo: Linux Magazine. Editora Linux New Midia.

Edição 69. Agosto, 2010. P 30. PUPIM, M. (2010). Cloud Computing: cinco erros conceituais. Disponível em:

<http://www.estudameufilho.com.br/?p=410>. Acessado em Maio de 2010. RUSCHEL, H; ZANOTTO, M; MOTA, W. (2008). Computação em Nuvem. Especialização

em Redes e Segurança de Sistemas – 2008/2. Pontifícia Universidade Católica do Paraná (PUC). Curitiba, PR.

SISNEMA. (2009). Cloud Computing – Novo Modelo de Computação. Disponível em:

<http://sisnema.com.br/Materias/idmat019433.htm>. Acessado em Fevereiro de 2010.

SLACK, S. E.(2009). Há Valor na Computação em Nuvem? A computação em nuvem e seu impacto no futuro da arquitetura. Disponível em: < http://www.ibm.com/developerworks/br/library/ar-valuecloudcomputing/#blue_cloud >. Acessado em Maio de 2010.

SOUZA, F; MOREIRA, L; MACHADO, J. (2009). Computação em Nuvem: Conceitos,

Tecnologias, Aplicações e Desafios. Capítulo 7. Universidade Federal do Piauí (UFPI).

Page 82: Introdução a cloud computing

82

SPOSITO, R. Nuvem Pública ou Privada?. Disponível em:

<http://epocanegocios.globo.com/Revista/Common/0,,EMI96465-17453,00-NUVEM+PUBLICA+OU+PRIVADA.html>. Acessado em Abril de 2010.

SUN, Microsystems. (2009). Take your business to a higher level. Disponível em:

<http://www.scribd.com/doc/13892125/Everything-You-Need-to-Know-About-Cloud-Computing>. Acessado em Agosto de 2010

TAURION, Cezar. Cloud Computing Computação em Nuvem: Transformando o mundo da

Tecnologia da Informação. 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?. Disponível 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; MAGALHÃES, M. F.. (2010). Novas

Arquiteturas de Data Center para Cloud Computing. Universidade Federal de São Carlos – UFSCar. Faculdade de Engenharia Elétrica e Computação (FEEC) - Unicamp

VIEIRA, A. L.; PEREIRA, F.; TOLEDO, M. B.; CARNEIRO, P.; ARANHA, R.. (2009).

Computação em Nuvem. Universidade Federal Fluminense (UFF). ZUNINO, M..(2008). Microsoft Anuncia Windows Azure. Disponível em:

<http://www.guiadopc.com.br/noticias/4933/microsoft-anuncia-windows-azure.html>.

Acessado em Novembro de 2010.