• Nenhum resultado encontrado

Estudo de caso : cloud computing - computação em nuvem

N/A
N/A
Protected

Academic year: 2021

Share "Estudo de caso : cloud computing - computação em nuvem"

Copied!
82
0
0

Texto

(1)

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

(2)

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

(3)

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.

(4)

"...É incansável buscar o conhecimento ! Interminável é sua procura ! Aos mestres, que nos abreviam esta procura ! O Reconhecimento sempre !!!!..."

(5)

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.

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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).

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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).

(17)

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).

(18)

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).

(19)

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

(20)

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

(21)

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).

(22)

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).

(23)

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

(24)

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

(25)

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

(26)

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

(27)

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

(28)

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

(29)

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

(30)

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).

(31)

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).

(32)

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,

(33)

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

(34)

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.

(35)

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.

(36)

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).

(37)

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 estrutura para os prestadores de infra-estrutura da nuvem. Há ainda a possibilidade de destinar algumas porções da nuvem pública

(38)

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

Referências

Documentos relacionados

Exceto se de outra forma especificado no contrato, sob pena de responder por perdas e danos, não poderá o depositário, sem licença expressa do depositante, utilizar, tratar ou

* A tecnologia Cloud Computing (computação na nuvem) é caracterizada por possibilitar às organizações o acesso a recursos de software e/ou hardware remotos (cloud), dedicados

O toxicômano não suporta qualquer coisa que barre seu gozo, não tolera a frustração, suprimindo-a pelo objeto droga e, a partir de então, encontrando uma solução para

A computação em nuvem possui múltiplos atributos para o campo da Ciência da Informação, pois com ela podemos potencializar o armazenamento de dados, trafego de dados em

A Direção-Geral de Estatísticas da Educação e Ciência (DGEEC) divulga nesta publicação indicadores de serviços de Computação em Nuvem (Cloud Computing), apurados a partir

Portanto, o presente trabalho de pesquisa objetiva apresentar as iniciativas de políticas públicas de com- putação em nuvem desenvolvidas no Brasil, ainda assim, pretende localizá-lo

Os softwares utilizados atuaram na verificação de dois testes importantes de escaneamento e uma simulação de quebra de segurança, onde os softwares irão simular um

Nuvem pública: As nuvens públicas pertencem a um provedor de serviço de nuvem terceirizado e são administradas por ele, que fornece recursos de computação (tais como servidores