21
ESCOLA TÉCNICA ESTADUAL “LAURO GOMES” ENSINO TÉCNICO - QUÍMICA COMPUTAÇÃO EM NUVEM

Computação em nuvem

Embed Size (px)

Citation preview

Page 1: Computação em nuvem

ESCOLA TÉCNICA ESTADUAL “LAURO GOMES”

ENSINO TÉCNICO - QUÍMICA

COMPUTAÇÃO EM NUVEM

SÃO BERNARDO

2010

Page 2: Computação em nuvem

ESCOLA TÉCNICA ESTADUAL “LAURO GOMES”

ENSINO TÉCNICO - QUÍMICA

COMPUTAÇÃO EM NUVEM

Turma: 2º F

Amanda Martins Jordão 03

Giselaine Alves dos Santos 18

SÃO BERNARDO

2010

2

Page 3: Computação em nuvem

INTRODUÇÃO..................................................................................................4

1 – DEFINIÇÃO.................................................................................................5

2 – HISTÓRIA...................................................................................................7

3 – GRID x NUVEM...........................................................................................8

4 – COMPONENTES........................................................................................9

4.1 – Virtualização..................................................................................9

4.2 – Serviços Básicos da Internet.........................................................10

4.3 – Modelo Pay-per-use......................................................................11

4.4 – Software Livre................................................................................12

5- ARQUITETURA............................................................................................13

5.1 – Atores............................................................................................13

5.2 – Camadas.......................................................................................14

REFERÊNCIAS.................................................................................................15

CONCLUSÃO....................................................................................................16

3

Page 4: Computação em nuvem

INTRODUÇÃO

Essa seção tem o objetivo de introduzir o tema de computação nas nuvens,

apresentando a definição do termo, sobre a qual ainda há muitas controvérsias, e a uma

breve história desse novo paradigma da computação. Nas seções seguintes, é realizada

uma comparação entre um grid e uma nuvem, e são mostrados os componentes

principais, os elementos da arquitetura, as vantagens e os desafios enfrentados e as

pesquisas atuais da área.

4

Page 5: Computação em nuvem

1 – DEFINIÇÃO

O termo computação nas nuvens (do inglês cloud computing) está associado a um

novo paradigma na área de computação. Basicamente, esse novo paradigma tende a

deslocar a localização de toda a infra-estrutura computacional para a rede. Com isso, os

custos de software e principalmente de hardware podem ser consideravelmente

reduzidos.

Embora este assunto esteja sendo amplamente discutido nos dias de hoje, ainda

não há uma definição completa do termo. Na literatura, podemos encontrar uma infinidade

de definições que em algumas vezes podem ser semelhantes, e em outras podem

apresentar conceitos diferentes. Por exemplo, alguns autores defendem que a

escalabilidade e o uso otimizado dos recursos são características chave da computação

nas nuvens, enquanto outros discordam, afirmando que esses elementos não são

características, e sim requerimentos de uma infra-estrutura que suporta esse novo

paradigma da computação.

A definição universal que foi elaborada considera principalmente três conceitos:

virtualização, ou seja, a criação de ambientes virtuais para os usuários, escondendo as

características físicas da plataforma computacional; escalabilidade, que diz respeito à

capacidade de aumento ou redução do tamanho dos ambientes virtuais, caso seja

necessário; e, por último, modelo pay-per-use , em que o usuário só paga por aquele

serviço que consome. Essa definição encontra-se a seguir:

“Computação nas Nuvens, como o próprio nome sugere, engloba as chamadas nuvens, que

são ambientes que possuem recursos (hardware, plataformas de desenvolvimento e/ou

serviços) acessados virtualmente e de fácil utilização. Esses recursos, devido à

virtualização, podem ser reconfigurados dinamicamente de modo a se ajustar a uma

determinada variável, permitindo, assim, um uso otimizado dos recursos. Esses ambientes

são, em geral, explorados através de um modelo pay-per-use.”

De modo que a infra-estrutura computacional se localize na rede, os aplicativos e

os dados dos computadores pessoais e portáteis são movidos para grandes centros de

processamento de dados, mais conhecidos como data centers. Os sistemas de hardware

e software presentes nos data centers provêem aplicações na forma de serviços na

Internet. Cria-se, assim, uma camada conceitual que esconde a infra-estrutura e todos os

recursos, mas que apresenta uma interface padrão que disponibiliza uma infinidade de

5

Page 6: Computação em nuvem

serviços. Uma vez que o usuário consiga se conectar a Internet, ele possui todos os

recursos a sua disposição, sugerindo um poder e uma capacidade infinita.

Figura 1. A nuvem é uma camada conceitual que engloba todos os serviços disponíveis, abstraindo toda a infra-

estrutura para o usuário.

Em suma, podemos destacar três principais aspectos que são novos na

computação nas nuvens, em relação aos modelos anteriores:

A ilusão da disponibilidade de recursos infinitos, ilimitados: o conceito da

nuvem sugere que o usuário tem em suas mãos toda a Internet e os seus serviços;

A eliminação de um comprometimento com antecedência por parte dos

usuários: uma empresa pode começar usando poucos recursos de hardware, e, à

medida que for crescendo, ou seja, à medida que for necessário, pode ir

aumentando a quantidade de recursos usados, sem que haja um comprometimento

anterior em relação a essa quantidade; a escalabilidade é uma das características

responsáveis por esse aspecto;

A habilidade de pagar pelo uso dos recursos à medida que eles são

utilizados: o modelo pay-per-use pode usar, por exemplo, uma métrica de

processadores por hora, ou de armazenamento por dia, para cobrar pelos serviços;

6

Page 7: Computação em nuvem

isso permite que os recursos sejam liberados caso não sejam utilizados, evitando

um consumo desnecessário.

7

Page 8: Computação em nuvem

2 – HISTÓRIA

O conceito de disponibilizar serviços de software e hardware por uma rede global

não é novo. Já podemos encontrar raízes desse conceito na década de 60, quando

Joseph Carl Robnett Licklider, um dos responsáveis pelo desenvolvimento da ARPANET

(Advanced Research Projects Agency Network), já havia introduzido a idéia de uma rede

de computadores intergaláctica. A sua visão era a de que todos deveriam estar

conectados entre si, acessando programas e dados de qualquer site e de qualquer lugar.

Ainda na década de 60, John McCarthy, um famoso e importante pesquisador da

área da informática, propôs a idéia de que a computação deveria ser organizada na forma

de um serviço de utilidade pública, em que uma agência de serviços o disponibilizaria e

cobraria uma taxa para seu uso.

Porém, um dos primeiros marcos para a computação nas nuvens só apareceu em

1999, com o surgimento da Salesforce.com, a qual foi a pioneira em disponibilizar

aplicações empresariais através da Internet. A partir de então, o termo “computação nas

nuvens” passou a ganhar mais espaço, e outras empresas também começaram a investir

nessa área, como a Amazon, a Google, a IBM e a Microsoft. A seção de Pesquisa e

Desenvolvimento apresenta mais informações referentes aos projetos dessas empresas.

8

Page 9: Computação em nuvem

3 – GRID x NUVEM

Um grid é um sistema que coordena recursos que não estão sujeitos a um controle

centralizado, usando protocolos e interfaces de maneira a garantir um nível elevado de

qualidade de serviço. Dessa forma, a computação nas nuvens e a computação em grid

compartilham alguns objetivos similares, como reduzir os custos de computação e

aumentar a flexibilidade ao usar hardware operado por terceiros. Porém, apesar do

que pode parecer, elas diferem em alguns pontos cruciais, os quais devem ser

claramente esclarecidos. Alguns desses pontos mais importantes são apresentados a

seguir.

Alocação dos recursos: enquanto a computação em grid realiza um

compartilhamento por igual dos recursos entre os usuários, a computação nas

nuvens só aloca um recurso a um determinado usuário caso ele queira usá-lo;

logo, isso sugere a idéia de que o recurso é totalmente dedicado àquele usuário;

além disso, não ocorre propriamente um compartilhamento de recursos na

computação nas nuvens, devido ao isolamento realizado através da virtualização;

Virtualização: ambos realizam a virtualização de dados e aplicativos, escondendo

a heterogeneidade dos recursos existentes; todavia, a computação nas nuvens

também possui a virtualização dos recursos de hardware;

Plataformas e dependências: as nuvens permitem que os usuários usem

softwares independentes de um determinado domínio; ou seja, os softwares rodam

em ambientes customizados, e não padronizados; os grids, ao contrário, só

aceitam aplicações que sejam executáveis em seu sistema (aplicações que sejam

“gridified”);

Escalabilidade: tanto os grids como as nuvens lidam com as questões de

escalabilidade; nos grids, o usuário manualmente habilita a escalabilidade através

do aumento do número de nós utilizados; nas nuvens, por outro lado, a

escalabilidade é automática, requerendo uma reconfiguração que seja dinâmica.

Já existem algumas abordagens que combinam grids e nuvens em um mesmo

sistema. Porém, na computação nas nuvens, o elevado nível de abstração para o

9

Page 10: Computação em nuvem

usuário permite a existência de somente um conjunto limitado de recursos explícitos, o

que pode restringir consideravelmente a capacidade dos grid.

10

Page 11: Computação em nuvem

4 – COMPONENTES

Os principais componentes sobre os quais a computação nas nuvens se baseia

não são idéias ou conceitos novos, mas sim tendências que já haviam sido

previamente estabelecidas. Portanto, com base nesses componentes, a computação

nas nuvens não é algo novo. Porém, por outro lado, ela é inovadora no sentido de

reunir todos esses componentes em uma infra-estrutura maior com características

singulares.

Os principais componentes são apresentados a seguir.

4.1. Virtualização

Um dos componentes chave da computação nas nuvens é a virtualização. A

virtualização diz respeito à criação de ambientes virtuais, conhecidos como máquinas

virtuais, a fim de abstrair as características físicas do hardware. As máquinas virtuais, por

exemplo, podem ser usadas para emular diversos sistemas operacionais em uma única

plataforma computacional. Assim, forma-se uma camada de abstração dos recursos

dessa plataforma, alocando-se um hardware virtual para cada sistema.

Na computação nas nuvens, os data centers provêem uma rede de serviços que

são utilizados à medida que são requeridos. Logo, a distribuição desses serviços entre os

usuários pode ser rapidamente alterada, o que exige um suporte para tal dinamismo. A

virtualização é o componente responsável pela característica dinâmica dos data centers.

Ou seja, ela permite que os ambientes virtuais de cada usuário possam ser ampliados ou

reduzidos dinamicamente de maneira a atender aos recursos solicitados. A escalabilidade

está diretamente relacionada com essa característica: os recursos são facilmente

escaláveis graças a esse dinamismo. É importante verificar que, com a virtualização, as

aplicações e os serviços podem ser desenvolvidos e implantados sem que haja a

preocupação em relação à camada física dos servidores. As máquinas virtuais são ditas

serem as interfaces de mínimo denominador comum entre os prestadores de infra-

estrutura e os desenvolvedores.

É válido lembrar que a quantidade de data centers presentes na nuvem é muito

grande. Logo, a virtualização ajuda a criar uma camada de abstração que engloba todos

esses data centers, evitando que eles sejam tratados como sistemas discretos, o que

impediria a alocação dinâmica dos recursos.

11

Page 12: Computação em nuvem

Dois tipos de virtualização devem ser suportados na computação nas nuvens:

paravirtualização, que permite que um único servidor físico possa ser tratado como

diversos servidores virtuais, e clustering, que permite que múltiplos servidores físicos

possam ser tratados como um único servidor virtual. A Figura 2 apresenta ambos os

tipos de virtualização (os servidores virtuais estão representados através das linhas

pontilhadas).

(a) (b)

Figura 2. Há dois tipos de virtualização que devem ser suportados na computação nas nuvens: (a) paravirtualização e

(b) clustering.

4.2. Serviços Baseados na Internet

A questão de como fornecer as aplicações e os recursos para todos os usuários

conectados às nuvens é resolvida através da utilização de serviços baseados na Internet

(do inglês Internet-based services), ou seja, serviços que ficam disponíveis pela Internet.

Muitas organizações empresariais já utilizavam, e ainda utilizam, aplicações com

interfaces na Internet direcionadas não só aos seus consumidores, como também aos

seus funcionários e sócios, por exemplo. Como esses serviços podem ser acessados de

qualquer lugar e a qualquer hora, dependendo somente de uma conexão de boa

qualidade com a Internet, eles tornaram-se elementos fundamentais para a computação

nas nuvens.

12

Page 13: Computação em nuvem

Os serviços que as empresas utilizam em seu cotidiano, em geral, usam o

protocolo criptografado SSL (Secure Socket Layer), em conjunto com uma autenticação

forte, a fim de garantir a segurança das comunicações. Entretanto, quando se trata de

computação nas nuvens, o assunto deve ser analisado com um maior cuidado. Alguns

prestadores de serviços, por exemplo, não oferecem a criptografia dos dados. Além disso,

quando se usa criptografia, a grande questão é quem fica responsável pelo

gerenciamento das chaves. É importante lembrar que a quantidade de usuários

conectados uma nuvem é muito grande, e questões de segurança tornam-se essenciais.

A sessão de Vantagens e Desafios apresenta o tema da segurança em computação nas

nuvens com maiores detalhes.

4.3. Modelo Pay-per-use

A computação nas nuvens trabalha sobre o modelo pay-per-use (também

conhecido como pay-as-you-go), que remove o comprometimento, por parte do usuário,

de reservar por uma quantidade exata de recursos. Como o próprio nome já diz, o usuário

paga por aquilo que usa, ou seja, se for necessário, ele tem a possibilidade de aumentar a

quantidade de recursos reservados sem grandes esforços. Com isso, uma aplicação pode

existir por apenas alguns minutos, como também pode existir por um tempo muito mais

longo, provendo serviços aos usuários. A cobrança é baseada no consumo dos recursos,

como, por exemplo, a quantidade de horas utilizadas de CPU e o volume de dados

armazenados.

A virtualização é a principal responsável pela possibilidade de uso desse modelo.

Graças a ela, os recursos são facilmente escaláveis – os ambientes virtuais podem ser

rapidamente ampliados, reduzidos e copiados –, como já foi explicado anteriormente.

Além disso, o custo desses ambientes não é grande devido ao fato de eles poderem

coexistir nos mesmos servidores físicos.

Uma conseqüência muito importante do modelo pay-per-use é a redução dos riscos

de subutilização e de saturação. A subutilização está relacionada ao fato de usar uma

quantidade menor de recursos do que a que foi reservada a priori. Isso acaba gerando

recursos que não são consumidos e que, portanto, ficam ociosos. A saturação ocorre

quando há um excesso de utilização sobre os recursos reservados, o que pode gerar

serviços mais lentos e baixas qualidades de serviço, prejudicando os usuários. Como no

13

Page 14: Computação em nuvem

modelo pay-per-use o usuário paga somente por aquilo que consome, reservando,

portanto, somente o necessário, essas questões são evitadas.

4.4. Software Livre

O software livre (open-source) desempenha um papel muito importante na

computação nas nuvens [SUN 2009a]. Ele permite que os elementos básicos, como as

imagens de máquinas virtuais, sejam criados a partir de ferramentas que são facilmente

acessíveis. Dessa forma, o desenvolvimento das aplicações nas nuvens fica mais simples

de ser realizado e mais bem difundido. Conseqüentemente, a quantidade de

componentes criados tende a aumentar, facilitando o nível sobre o qual os

desenvolvedores programam nas nuvens.

Um exemplo claro dessa importância é o Hadoop, uma implementação de código

aberto do MapReduce. O MapReduce é um arcabouço desenvolvido pela Google cujo

objetivo é permitir a execução de um programa em paralelo. No ambiente da computação

nas nuvens, havia a necessidade de se implementar um algoritmo similar ao MapReduce,

a fim de haver execuções de um conjunto de dados usando paralelismo. Essa

necessidade automaticamente impulsionou o desenvolvimento do Hadoop, que hoje está

sendo amplamente usado nas nuvens por diversos programadores. Ferramentas como

essa ajudam e incentivam o desenvolvimento de novas ferramentas e aplicação nas

nuvens.

14

Page 15: Computação em nuvem

5 – ARQUITETURA

Os elementos principais da arquitetura sobre a qual a computação nas nuvens se

baseia encontram-se mais bem explicados a seguir.

5.1. Atores

A computação nas nuvens é composta por três atores principais: os prestadores

de serviços, mais conhecidos como SPs (do inglês Service Providers), os usuários dos

serviços e os prestadores de infraestrutura, mais conhecidos como IPs (do inglês

Infrastructure Providers). Os SPs são aqueles que desenvolvem e deixam os serviços

acessíveis aos usuários através de interfaces baseadas na Internet. Esses serviços, por

sua vez, necessitam de uma infraestrutura sobre a qual estarão instalados; essa

infraestrutura é fornecida na forma de um serviço pelos IPs. A Figura 3 demonstra essa

relação entre os atores.

15

Page 16: Computação em nuvem

Figura 3. Os prestadores de serviços possuem uma relação de desenvolvimento e gerenciamento com a interface da

infra-estrutura e com os serviços; os usuários, por sua vez, são aqueles que utilizam os serviços instalados na infra-

estrutura.

5.2. Camadas

A arquitetura da computação nas nuvens pode ser dividida em três camadas

abstratas. A camada de infraestrutura é a camada mais baixa. É através dela que os

prestadores de infraestrutura disponibilizam os serviços de rede e armazenamento da

nuvem. Dessa forma, fazem parte dela servidores, sistemas de armazenamento, como os

data centers, e roteadores, por exemplo. A camada de plataforma possui uma abstração

mais elevada e provê serviços para que as aplicações possam ser desenvolvidas,

testadas, implantadas e mantidas no ambiente da nuvem pelos prestadores de serviços.

Finalmente, a camada de aplicação é a de mais alto nível de abstração, e aquela que

oferece diversas aplicações como serviços para os usuários.

Figura 4. 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, os prestadores de serviços e os prestadores de infra-estrutura.

É importante lembrar que a nuvem esconde toda a infraestrutura para o usuário. O

elemento Interface da Infra-estrutura é o responsável por fazer a ligação entre a infra-

estrutura e os prestadores de serviços. É através dele que tanto a infra-estrutura como a

plataforma é oferecida como serviços, de modo que haja o desenvolvimento das

aplicações que serão disponibilizadas aos usuários.

16

Page 17: Computação em nuvem

REFERÊNCIAS

http://www.google.com.br/

http://www.gta.ufrj.br/ensino/eel879/trabalhos_v1_2009_2/seabra/introducao.html

17

Page 18: Computação em nuvem

CONCLUSÃO

A navegação em nuvem tem vantagens plausíveis, quando relacionada a Sistemas

Operacionais, sendo de mais fácil acesso e de baixo custo. Ela não precisa de

computadores potencializados para funcionar. Basta que o mesmo possua acesso à

rede.

Todos os programas que um Sistema Operacional pode oferecer, a computação

em nuvem também oferece, com uma área mais abrangente e sem ocupar mais

espaço em um HD. Além de proporcionar mais facilidades para o usuário que poderá

estar em contato com os seus arquivos de qualquer lugar que contenha Web, também

torna mais seguro o armazenamento dos seus arquivos desde que não há risco de

perdas por inutilidade do micro.

Mesmo sendo bastante recomendada, a navegação em nuvem ainda é uma

tecnologia em fase de desenvolvimento.

18